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
- A
- B
- C
- D
- G
- L
- M
- N
- P
- R
- S
- T
- V
Instance Public methods
app() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 91 def app directory "app" empty_directory_with_keep_file "app/assets/images" keep_file "app/controllers/concerns" keep_file "app/models/concerns" end
bin() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 100 def bin directory "bin" do |content| "#{shebang}\n" + content end chmod "bin", 0755 & ~File.umask, verbose: false end
bin_when_updating() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 107 def bin_when_updating bin end
config() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 111 def config empty_directory "config" inside "config" do template "routes.rb" unless options[:update] template "application.rb" template "environment.rb" template "cable.yml" unless options[:update] || options[:skip_action_cable] template "puma.rb" unless options[:update] template "storage.yml" unless options[:update] || skip_active_storage? directory "environments" directory "initializers" directory "locales" unless options[:update] end end
config_target_version() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 261 def config_target_version defined?(@config_target_version) ? @config_target_version : Rails::VERSION::STRING.to_f end
config_when_updating() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 128 def config_when_updating action_cable_config_exist = File.exist?("config/cable.yml") active_storage_config_exist = File.exist?("config/storage.yml") rack_cors_config_exist = File.exist?("config/initializers/cors.rb") assets_config_exist = File.exist?("config/initializers/assets.rb") asset_manifest_exist = File.exist?("app/assets/config/manifest.js") asset_app_stylesheet_exist = File.exist?("app/assets/stylesheets/application.css") csp_config_exist = File.exist?("config/initializers/content_security_policy.rb") permissions_policy_config_exist = File.exist?("config/initializers/permissions_policy.rb") @config_target_version = Rails.application.config.loaded_config_version || "5.0" config if !options[:skip_action_cable] && !action_cable_config_exist template "config/cable.yml" end if !skip_active_storage? && !active_storage_config_exist template "config/storage.yml" end if skip_sprockets? && skip_propshaft? && !assets_config_exist remove_file "config/initializers/assets.rb" end if skip_sprockets? && !asset_manifest_exist remove_file "app/assets/config/manifest.js" end if skip_sprockets? && !asset_app_stylesheet_exist remove_file "app/assets/stylesheets/application.css" end unless rack_cors_config_exist remove_file "config/initializers/cors.rb" end if options[:api] unless csp_config_exist remove_file "config/initializers/content_security_policy.rb" end unless permissions_policy_config_exist remove_file "config/initializers/permissions_policy.rb" end end if !skip_sprockets? insert_into_file "config/application.rb", %(require "sprockets/railtie"), after: /require\(["']rails\/all["']\)\n/ end end
configru() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 65 def configru template "config.ru" end
credentials() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 190 def credentials return if options[:pretend] || options[:dummy_app] require "rails/generators/rails/credentials/credentials_generator" Rails::Generators::CredentialsGenerator.new([], quiet: true).add_credentials_file end
credentials_diff_enroll() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 197 def credentials_diff_enroll return if options[:skip_decrypted_diffs] || options[:dummy_app] || options[:pretend] @generator.shell.mute do rails_command "credentials:diff --enroll", inline: true, shell: @generator.shell end end
database_yml() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 205 def database_yml template "config/databases/#{options[:database]}.yml", "config/database.yml" end
db() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 209 def db directory "db" end
dockerfiles() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 77 def dockerfiles template "Dockerfile" template "dockerignore", ".dockerignore" template "docker-entrypoint", "bin/docker-entrypoint" chmod "bin/docker-entrypoint", 0755 & ~File.umask, verbose: false end
gemfile() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 61 def gemfile template "Gemfile" end
gitattributes() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 73 def gitattributes template "gitattributes", ".gitattributes" end
gitignore() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 69 def gitignore template "gitignore", ".gitignore" end
lib() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 213 def lib empty_directory "lib" empty_directory_with_keep_file "lib/tasks" empty_directory_with_keep_file "lib/assets" end
log() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 219 def log empty_directory_with_keep_file "log" end
master_key() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 181 def master_key return if options[:pretend] || options[:dummy_app] require "rails/generators/rails/master_key/master_key_generator" master_key_generator = Rails::Generators::MasterKeyGenerator.new([], quiet: options[:quiet], force: options[:force]) master_key_generator.add_master_key_file_silently master_key_generator.ignore_master_key_file_silently end
node_version() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 57 def node_version template "node-version", ".node-version" end
public_directory() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 223 def public_directory directory "public", "public", recursive: false end
rakefile() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 45 def rakefile template "Rakefile" end
readme() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 49 def readme copy_file "README.md", "README.md" end
ruby_version() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 53 def ruby_version template "ruby-version", ".ruby-version" end
storage() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 227 def storage empty_directory_with_keep_file "storage" empty_directory_with_keep_file "tmp/storage" end
system_test() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 244 def system_test empty_directory_with_keep_file "test/system" template "test/application_system_test_case.rb" end
test() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 232 def test 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/channels/application_cable/connection_test.rb" template "test/test_helper.rb" end
tmp() Link
Source: show
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 250 def tmp empty_directory_with_keep_file "tmp" empty_directory_with_keep_file "tmp/pids" empty_directory "tmp/cache" empty_directory "tmp/cache/assets" end