应用程序生成器允许您覆盖应用程序生成器的元素,而无需强制您反转默认生成器的操作。
这使您可以覆盖整个操作,例如创建 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 102 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 111 def bin exclude_pattern = Regexp.union([(/thrust/ if skip_thruster?), (/rubocop/ if skip_rubocop?), (/brakeman/ if skip_brakeman?)].compact) directory "bin", { exclude_pattern: exclude_pattern } 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 119 def bin_when_updating bin end
cifiles() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 86 def cifiles empty_directory ".github/workflows" template "github/ci.yml", ".github/workflows/ci.yml" template "github/dependabot.yml", ".github/dependabot.yml" end
config() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 123 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" 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 261 def 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 140 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_app_stylesheet_exist = File.exist?("app/assets/stylesheets/application.css") csp_config_exist = File.exist?("config/initializers/content_security_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_asset_pipeline? && !assets_config_exist remove_file "config/initializers/assets.rb" end if skip_asset_pipeline? && !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 end end
configru() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 66 def configru template "config.ru" end
credentials() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 188 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 195 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 203 def database_yml template database.template, "config/database.yml" end
db() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 207 def db directory "db" end
devcontainer() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 265 def devcontainer devcontainer_options = { database: options[:database], redis: options[:skip_solid] && !(options[:skip_action_cable] && options[:skip_active_job]), kamal: !options[:skip_kamal], system_test: depends_on_system_test?, active_storage: !options[:skip_active_storage], dev: options[:dev], node: using_node?, app_name: app_name, skip_solid: options[:skip_solid] } Rails::Generators::DevcontainerGenerator.new([], devcontainer_options).invoke_all end
dockerfiles() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 78 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 62 def gemfile template "Gemfile" end
gitattributes() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 74 def gitattributes template "gitattributes", ".gitattributes" end
gitignore() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 70 def gitignore template "gitignore", ".gitignore" end
lib() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 211 def lib empty_directory "lib" empty_directory_with_keep_file "lib/tasks" end
log() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 216 def log empty_directory_with_keep_file "log" end
master_key() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 179 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 58 def node_version template "node-version", ".node-version" end
public_directory() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 220 def public_directory return if options[:update] && options[:api] directory "public", "public", recursive: false end
rakefile() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 46 def rakefile template "Rakefile" end
readme() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 50 def readme copy_file "README.md", "README.md" end
rubocop() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 92 def rubocop template "rubocop.yml", ".rubocop.yml" end
ruby_version() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 54 def ruby_version template "ruby-version", ".ruby-version" end
script() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 226 def script empty_directory_with_keep_file "script" end
storage() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 230 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 246 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 235 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/test_helper.rb" end
tmp() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 252 def tmp empty_directory_with_keep_file "tmp" empty_directory_with_keep_file "tmp/pids" end
vendor() 链接
源代码:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 257 def vendor empty_directory_with_keep_file "vendor" end
version_control() 链接
来源:显示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/app/app_generator.rb, line 96 def version_control if !options[:skip_git] && !options[:pretend] run git_init_command, capture: options[:quiet], abort_on_failure: false end end