Class: Rails::AppBuilder
Relationships & Source Files | |
Inherits: | Object |
Defined in: | railties/lib/rails/generators/rails/app/app_generator.rb |
Overview
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.
Instance Method Summary
Instance Method Details
#app
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 56
def app directory 'app' keep_file 'app/assets/images' keep_file 'app/mailers' keep_file 'app/models' keep_file 'app/controllers/concerns' keep_file 'app/models/concerns' end
#bin
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 67
def bin directory "bin" do |content| "#{shebang}\n" + content end chmod "bin", 0755 & ~File.umask, verbose: false end
#config
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 74
def config empty_directory "config" inside "config" do template "routes.rb" template "application.rb" template "environment.rb" template "secrets.yml" directory "environments" directory "initializers" directory "locales" end end
#config_when_updating
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 89
def config_when_updating = File.exist?('config/initializers/cookies_serializer.rb') to_time_preserves_timezone_config_exist = File.exist?('config/initializers/to_time_preserves_timezone.rb') config unless gsub_file 'config/initializers/cookies_serializer.rb', /json/, 'marshal' end unless to_time_preserves_timezone_config_exist remove_file 'config/initializers/to_time_preserves_timezone.rb' end end
#configru
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 48
def configru template "config.ru" end
#database_yml
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 104
def database_yml template "config/databases/#{ [:database]}.yml", "config/database.yml" end
#db
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 108
def db directory "db" end
#gemfile
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 44
def gemfile template "Gemfile" end
#gitignore
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 52
def gitignore template "gitignore", ".gitignore" end
#lib
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 112
def lib empty_directory 'lib' empty_directory_with_keep_file 'lib/tasks' empty_directory_with_keep_file 'lib/assets' end
#log
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 118
def log empty_directory_with_keep_file 'log' end
#public_directory
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 122
def public_directory directory "public", "public", recursive: false end
#rakefile
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 36
def rakefile template "Rakefile" end
#readme
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 40
def readme copy_file "README.rdoc", "README.rdoc" end
#test
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 126
def test empty_directory_with_keep_file 'test/fixtures' empty_directory_with_keep_file 'test/controllers' empty_directory_with_keep_file 'test/mailers' empty_directory_with_keep_file 'test/models' empty_directory_with_keep_file 'test/helpers' empty_directory_with_keep_file 'test/integration' template 'test/test_helper.rb' end
#tmp
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 137
def tmp empty_directory "tmp/cache" empty_directory "tmp/cache/assets" end
#vendor
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 142
def vendor vendor_javascripts vendor_stylesheets end
#vendor_javascripts
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 147
def vendor_javascripts unless [:skip_javascript] empty_directory_with_keep_file 'vendor/assets/javascripts' end end
#vendor_stylesheets
[ GitHub ]# File 'railties/lib/rails/generators/rails/app/app_generator.rb', line 153
def vendor_stylesheets empty_directory_with_keep_file 'vendor/assets/stylesheets' end