class Rhino::Cli

Public Class Methods

new(args) click to toggle source
# File lib/rhino/cli.rb, line 3
def initialize(args)
  @args = args
  @template_path = File.join(File.dirname(__FILE__), 'generators', 'template_codes')
end

Public Instance Methods

create_application_file(app_name) click to toggle source
# File lib/rhino/cli.rb, line 22
def create_application_file(app_name)
  template_file = File.read(@template_path + '/application.rb.tt')
  new_file_content = template_file.gsub('{{app_name}}', module_app_name(app_name))
  File.open("#{app_name}/config/application.rb", 'w') {|file| file.puts new_file_content }
end
create_config_file(app_name) click to toggle source
# File lib/rhino/cli.rb, line 28
def create_config_file(app_name)
  template_file = File.read(@template_path + '/config.ru.tt')
  new_file_content = template_file.gsub('{{app_name}}', module_app_name(app_name))
  File.open("#{app_name}/config.ru", 'w') {|file| file.puts new_file_content }
end
module_app_name(name) click to toggle source

convert from string to module_name: ‘new_app’ => ‘NewApp’

# File lib/rhino/cli.rb, line 35
def module_app_name(name)
  name.split("_").map!{|x| x.capitalize}.join
end
new_app(app_name) click to toggle source
# File lib/rhino/cli.rb, line 14
def new_app(app_name)
  structure_path = @template_path + '/structure'
  FileUtils.cp_r structure_path, app_name
  create_application_file(app_name)
  create_config_file(app_name)
  p "created app `#{app_name}`"
end
run() click to toggle source
# File lib/rhino/cli.rb, line 8
def run
  if @args[0] == 'new' && !@args[1].nil?
    new_app(@args[1])
  end
end