class Cramp::Generators::Application
Public Class Methods
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