class Cuba::Generator

Constants

APPROOT
VERSION

Public Class Methods

new(name, type) click to toggle source
# File lib/cuba/generator.rb, line 10
def initialize(name, type)
  @project_name = name.downcase
  @type = type
  create_dir
  create_config_file
  create_cuba_file
  puts "Created your Cuba #{@type} at /#{@project_name} directory. Rock on!"
end

Public Instance Methods

create_config_file() click to toggle source
# File lib/cuba/generator.rb, line 23
def create_config_file
  File.open("./#{@project_name}/config.ru", 'w+') do |file|
    file.write setup_config
  end
end
create_cuba_file() click to toggle source
# File lib/cuba/generator.rb, line 29
def create_cuba_file
  File.open("./#{@project_name}/#{@project_name}.rb", 'w+') do |file|
    file.write setup_cuba
  end
end
create_database_file() click to toggle source
# File lib/cuba/generator.rb, line 35
def create_database_file
  File.open("./#{@project_name}/database.rb", 'w+') do |file|
    file.write setup_database
  end
  File.open("./#{@project_name}/Gemfile", 'w+') do |file|
    file.write setup_gemfile
  end
end
create_dir() click to toggle source
# File lib/cuba/generator.rb, line 19
def create_dir
  Dir.mkdir(@project_name)
end

Private Instance Methods

create_template(name) click to toggle source
# File lib/cuba/generator.rb, line 66
def create_template(name)
  template = File.read File.join(APPROOT, 'templates/', "#{name}.erb")
  erb(template, {project_name: @project_name})
end
erb(template, vars) click to toggle source
# File lib/cuba/generator.rb, line 71
def erb(template, vars)
  ERB.new(template).result(OpenStruct.new(vars).instance_eval { binding })
end
setup_config() click to toggle source
# File lib/cuba/generator.rb, line 54
def setup_config
  create_template 'rack_config'
end
setup_cuba() click to toggle source
# File lib/cuba/generator.rb, line 46
def setup_cuba
  if @type.to_sym == :app
    create_template 'app'
  elsif @type.to_sym == :api
    create_template 'api'
  end
end
setup_database() click to toggle source
# File lib/cuba/generator.rb, line 58
def setup_database
  create_template 'db'
end
setup_gemfile() click to toggle source
# File lib/cuba/generator.rb, line 62
def setup_gemfile
  create_template 'gemfile'
end