class Gemcon::Cli

Gemcon Cli define tasks using thor

Private Class Methods

source_root() click to toggle source
# File lib/gemcon/cli.rb, line 43
def source_root
  Pathname.new(__FILE__).join('../../../templates')
end

Public Instance Methods

new(app_name = nil) click to toggle source
# File lib/gemcon/cli.rb, line 9
def new(app_name = nil)
  raise Error, 'Usage: gemcon new [APP_NAME]' if app_name.nil?
  path = File.expand_path(app_name)
  raise(
    Error,
    set_color("ERROR: #{path} already exists.", :red)
  ) if File.exist?(path)

  @app_name = app_name
  generate
end
version() click to toggle source
# File lib/gemcon/cli.rb, line 24
def version
  say "Gemcon #{VERSION}"
end

Private Instance Methods

generate() click to toggle source
# File lib/gemcon/cli.rb, line 30
def generate
  template('Gemfile.tt', 'Gemfile')
  template('app/project.tt', "app/#{@app_name}.rb")
  template('config/boot.tt', 'config/boot.rb')
  template('bin/console', 'bin/console')
  chmod "#{@app_name}/bin/console", 0o755
end
template(template, filename) click to toggle source
Calls superclass method
# File lib/gemcon/cli.rb, line 38
def template(template, filename)
  super(template, "#{@app_name}/#{filename}")
end