應用程式建置器允許您覆寫應用程式產生器的元素,而無需強制還原預設產生器的操作。
這允許您覆寫整個操作,例如 Gemfile、README 或 JavaScript 檔案的建立,而無需確切知道這些操作的執行方式,以便您可以建立另一個範本動作。
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
執行個體公開方法
app() 連結
來源:顯示 | 在 GitHub 上
# 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() 連結
來源:顯示 | 在 GitHub 上
# 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 107 def bin_when_updating bin end
config() 連結
來源:顯示 | 在 GitHub 上
# 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 257 def config_target_version defined?(@config_target_version) ? @config_target_version : Rails::VERSION::STRING.to_f end
config_when_updating() 連結
來源:顯示 | 在 GitHub 上
# 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 end
configru() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 65 def configru template "config.ru" end
credentials() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 186 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 193 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 201 def database_yml template "config/databases/#{options[:database]}.yml", "config/database.yml" end
db() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 205 def db directory "db" end
dockerfiles() 連結
來源:顯示 | 在 GitHub 上
# 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 61 def gemfile template "Gemfile" end
gitattributes() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 73 def gitattributes template "gitattributes", ".gitattributes" end
gitignore() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 69 def gitignore template "gitignore", ".gitignore" end
lib() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 209 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 215 def log empty_directory_with_keep_file "log" end
master_key() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 177 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 57 def node_version template "node-version", ".node-version" end
public_directory() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 219 def public_directory directory "public", "public", recursive: false end
rakefile() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 45 def rakefile template "Rakefile" end
readme() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 49 def readme copy_file "README.md", "README.md" end
ruby_version() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 53 def ruby_version template "ruby-version", ".ruby-version" end
storage() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 223 def storage empty_directory_with_keep_file "storage" empty_directory_with_keep_file "tmp/storage" end
system_test() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 240 def system_test empty_directory_with_keep_file "test/system" template "test/application_system_test_case.rb" end
test() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 228 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() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 246 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
vendor() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 253 def vendor empty_directory_with_keep_file "vendor" end
version_control() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 85 def version_control if !options[:skip_git] && !options[:pretend] run git_init_command, capture: options[:quiet], abort_on_failure: false end end