class Cramp::Generators::Application

Public Class Methods

banner() click to toggle source
new(*args) click to toggle source
Calls superclass method
# File lib/cramp/generators/application.rb, line 15
def initialize(*args)
  raise Thor::Error, "No application name supplied. Please run: cramp --help" if args[0].blank?

  super
end
source_root() click to toggle source
# File lib/cramp/generators/application.rb, line 21
def self.source_root
  @_source_root ||= File.join(File.dirname(__FILE__), "templates/application")
end

Public Instance Methods

create_config() click to toggle source
# File lib/cramp/generators/application.rb, line 46
def create_config
  empty_directory "config"

  inside "config" do
    template "routes.rb"
    template 'database.yml' if active_record?
  end
end
create_home_action() click to toggle source
# File lib/cramp/generators/application.rb, line 55
def create_home_action
  empty_directory "app/actions"

  inside "app/actions" do
    template "home_action.rb"
  end
end
create_models() click to toggle source
# File lib/cramp/generators/application.rb, line 63
def create_models
  if active_record?
    empty_directory "app/models"
  end
end
create_root() click to toggle source
# File lib/cramp/generators/application.rb, line 29
def create_root
  self.destination_root = File.expand_path(application_path, destination_root)
  valid_const?

  empty_directory '.'
  FileUtils.cd(destination_root)
end
create_root_files() click to toggle source
# File lib/cramp/generators/application.rb, line 37
def create_root_files
  template 'config.ru'
  template 'Gemfile'
  template 'application.rb'

  empty_directory "public"
  empty_directory "public/javascripts"
end

Private Instance Methods

active_record?() click to toggle source
# File lib/cramp/generators/application.rb, line 71
def active_record?
  options[:with_active_record]
end
app_const() click to toggle source
# File lib/cramp/generators/application.rb, line 79
def app_const
  @app_const ||= "#{app_const_base}::Application"
end
app_const_base() click to toggle source
# File lib/cramp/generators/application.rb, line 83
def app_const_base
  @app_const_base ||= ActiveSupport::Inflector.camelize(app_name.gsub(/\W/, '_').squeeze('_'), true)
end
app_name() click to toggle source
# File lib/cramp/generators/application.rb, line 75
def app_name
  @app_name ||= File.basename(destination_root)
end
valid_const?() click to toggle source
# File lib/cramp/generators/application.rb, line 87
def valid_const?
  if app_const =~ /^\d/
    raise Thor::Error, "Invalid application name #{app_name}. Please give a name which does not start with numbers."
  elsif Object.const_defined?(app_const_base)
    raise Thor::Error, "Invalid application name #{app_name}, constant #{app_const_base} is already in use. Please choose another application name."
  end
end