class Creategem::CLI
Attributes
Public Class Methods
source_root()
click to toggle source
this is where the thor generator templates are found
# File lib/creategem/cli.rb, line 15 def self.source_root File.expand_path('../../../templates', __FILE__) end
Public Instance Methods
gem(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 23 def gem(gem_name) create_gem_scaffold(gem_name) initialize_repository(gem_name) end
plugin(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 34 def plugin(gem_name) @plugin = true @engine = options[:engine] || options[:mountable] @mountable = options[:mountable] create_gem_scaffold(gem_name) create_plugin_scaffold(gem_name) create_engine_scaffold(gem_name) if @engine create_mountable_scaffold(gem_name) if @mountable initialize_repository(gem_name) end
Private Instance Methods
create_engine_scaffold(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 75 def create_engine_scaffold(gem_name) say "Create a rails engine scaffold for gem named: #{gem_name}", :green directory "engine_scaffold", gem_name end
create_gem_scaffold(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 47 def create_gem_scaffold(gem_name) say "Create a gem scaffold for gem named: #{gem_name}", :green @gem_name = gem_name @class_name = Thor::Util.camel_case(gem_name.gsub("-", "_")) @executable = options[:executable] @vendor = options[:bitbucket] ? :bitbucket : :github @repository = Creategem::Repository.new(vendor: @vendor, user: git_repository_user_name(@vendor), name: gem_name, gem_server_url: gem_server_url(@vendor), private: options[:private]) directory "gem_scaffold", gem_name if @executable directory "executable_scaffold", gem_name end if @repository.public? template "LICENCE.txt", "#{gem_name}/LICENCE.txt" end end
create_mountable_scaffold(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 80 def create_mountable_scaffold(gem_name) say "Create a rails mountable engine scaffold for gem named: #{gem_name}", :green directory "mountable_scaffold", gem_name end
create_plugin_scaffold(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 67 def create_plugin_scaffold(gem_name) say "Create a rails plugin scaffold for gem named: #{gem_name}", :green directory "plugin_scaffold", gem_name Dir.chdir gem_name do run "chmod +x test/dummy/bin/*" end end
initialize_repository(gem_name)
click to toggle source
# File lib/creategem/cli.rb, line 85 def initialize_repository(gem_name) Dir.chdir gem_name do run "chmod +x bin/*" run "chmod +x exe/*" if @executable create_local_git_repository run "bundle update" create_remote_git_repository(@repository) if yes?("Do you want me to create #{@vendor} repository named #{gem_name}? (y/n)") end say "The gem #{gem_name} was successfully created.", :green say "Please complete the information in #{gem_name}.gemspec and README.md (look for TODOs).", :blue end