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.
class CustomAppBuilder < Rails::AppBuilder
def test
@generator.gem "rspec-rails", group: [:development, :test]
run "bundle install"
generate "rspec:install"
end
end
Methods
- A
- B
- C
- D
- G
- L
- P
- R
- S
- T
- V
Instance Public methods
app()
Link
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 70 def app directory "app" keep_file "app/assets/images" empty_directory_with_keep_file "app/assets/javascripts/channels" unless options[:skip_action_cable] keep_file "app/controllers/concerns" keep_file "app/models/concerns" end
bin()
Link
bin_when_updating()
Link
config()
Link
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 97 def config empty_directory "config" inside "config" do template "routes.rb" template "application.rb" template "environment.rb" template "secrets.yml" template "cable.yml" unless options[:skip_action_cable] template "puma.rb" unless options[:skip_puma] template "spring.rb" if spring_install? directory "environments" directory "initializers" directory "locales" end end
config_when_updating()
Link
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 115 def config_when_updating cookie_serializer_config_exist = File.exist?("config/initializers/cookies_serializer.rb") action_cable_config_exist = File.exist?("config/cable.yml") rack_cors_config_exist = File.exist?("config/initializers/cors.rb") assets_config_exist = File.exist?("config/initializers/assets.rb") new_framework_defaults_5_1_exist = File.exist?("config/initializers/new_framework_defaults_5_1.rb") config unless cookie_serializer_config_exist gsub_file "config/initializers/cookies_serializer.rb", /json(?!,)/, "marshal" end unless action_cable_config_exist template "config/cable.yml" end unless rack_cors_config_exist remove_file "config/initializers/cors.rb" end if options[:api] unless cookie_serializer_config_exist remove_file "config/initializers/cookies_serializer.rb" end unless assets_config_exist remove_file "config/initializers/assets.rb" end # Sprockets owns the only new default for 5.1: # In API-only Applications, we don't want the file. unless new_framework_defaults_5_1_exist remove_file "config/initializers/new_framework_defaults_5_1.rb" end end end
configru()
Link
database_yml()
Link
db()
Link
gemfile()
Link
gitignore()
Link
lib()
Link
log()
Link
public_directory()
Link
rakefile()
Link
readme()
Link
system_test()
Link
test()
Link
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 175 def test empty_directory_with_keep_file "test/fixtures" empty_directory_with_keep_file "test/fixtures/files" 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()
Link
vendor()
Link