The application builder allows you to override elements of the application generator without being forced to reverse the operations of the default generator.
This allows you to override entire operations, like the creation of the Gemfile, README, or JavaScript files, without needing to know exactly what those operations do so you can create another template action.
# File lib/rails/generators/rails/app/app_generator.rb, line 56 def app directory 'app' git_keep 'app/mailers' git_keep 'app/models' end
# File lib/rails/generators/rails/app/app_generator.rb, line 62 def config empty_directory "config" inside "config" do template "routes.rb" template "application.rb" template "environment.rb" directory "environments" directory "initializers" directory "locales" end end
# File lib/rails/generators/rails/app/app_generator.rb, line 48 def configru template "config.ru" end
# File lib/rails/generators/rails/app/app_generator.rb, line 76 def database_yml template "config/databases/#{options[:database]}.yml", "config/database.yml" end
# File lib/rails/generators/rails/app/app_generator.rb, line 80 def db directory "db" end
# File lib/rails/generators/rails/app/app_generator.rb, line 84 def doc directory "doc" end
# File lib/rails/generators/rails/app/app_generator.rb, line 44 def gemfile template "Gemfile" end
# File lib/rails/generators/rails/app/app_generator.rb, line 52 def gitignore copy_file "gitignore", ".gitignore" end
# File lib/rails/generators/rails/app/app_generator.rb, line 88 def lib empty_directory "lib" empty_directory_with_gitkeep "lib/tasks" empty_directory_with_gitkeep "lib/assets" end
# File lib/rails/generators/rails/app/app_generator.rb, line 94 def log empty_directory_with_gitkeep "log" end
# File lib/rails/generators/rails/app/app_generator.rb, line 98 def public_directory directory "public", "public", :recursive => false end
# File lib/rails/generators/rails/app/app_generator.rb, line 36 def rakefile template "Rakefile" end
# File lib/rails/generators/rails/app/app_generator.rb, line 40 def readme copy_file "README", "README.rdoc" end
# File lib/rails/generators/rails/app/app_generator.rb, line 102 def script directory "script" do |content| "#{shebang}\n" + content end chmod "script", 0755 & ~File.umask, :verbose => false end
# File lib/rails/generators/rails/app/app_generator.rb, line 109 def test empty_directory_with_gitkeep "test/fixtures" empty_directory_with_gitkeep "test/functional" empty_directory_with_gitkeep "test/integration" empty_directory_with_gitkeep "test/unit" template "test/performance/browsing_test.rb" template "test/test_helper.rb" end
# File lib/rails/generators/rails/app/app_generator.rb, line 119 def tmp empty_directory "tmp/cache" empty_directory "tmp/cache/assets" end
# File lib/rails/generators/rails/app/app_generator.rb, line 124 def vendor vendor_javascripts vendor_stylesheets vendor_plugins end
# File lib/rails/generators/rails/app/app_generator.rb, line 130 def vendor_javascripts empty_directory_with_gitkeep "vendor/assets/javascripts" end
# File lib/rails/generators/rails/app/app_generator.rb, line 138 def vendor_plugins empty_directory_with_gitkeep "vendor/plugins" end
# File lib/rails/generators/rails/app/app_generator.rb, line 134 def vendor_stylesheets empty_directory_with_gitkeep "vendor/assets/stylesheets" end