此外掛程式建構器可讓您覆寫外掛程式產生器的元素,而無需強制您還原預設產生器的操作。
這可讓您覆寫整個操作,例如 Gemfile、README 或 JavaScript 檔案的建立,而無需確切知道這些操作的作用,以便您可以建立另一個範本動作。
- A
- B
- C
- G
- L
- R
- S
- T
- V
常數
DUMMY_IGNORE_OPTIONS | = | %i[dev edge master template] |
執行個體公開方法
app() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 20 def app if mountable? if api? directory "app", exclude_pattern: %r{app/(views|helpers)} else directory "app" empty_directory_with_keep_file "app/assets/images/#{namespaced_name}" end empty_directory_with_keep_file "app/models/concerns" empty_directory_with_keep_file "app/controllers/concerns" remove_dir "app/mailers" if options[:skip_action_mailer] remove_dir "app/jobs" if options[:skip_active_job] elsif full? empty_directory_with_keep_file "app/models" empty_directory_with_keep_file "app/controllers" empty_directory_with_keep_file "app/models/concerns" empty_directory_with_keep_file "app/controllers/concerns" empty_directory_with_keep_file "app/mailers" unless options[:skip_action_mailer] empty_directory_with_keep_file "app/jobs" unless options[:skip_active_job] unless api? empty_directory_with_keep_file "app/assets/images/#{namespaced_name}" empty_directory_with_keep_file "app/helpers" empty_directory_with_keep_file "app/views" end end end
assets_manifest() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 157 def assets_manifest template "rails/engine_manifest.js", "app/assets/config/#{underscored_name}_manifest.js" end
bin(force = false) 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 170 def bin(force = false) bin_file = engine? ? "bin/rails.tt" : "bin/test.tt" template bin_file, force: force do |content| "#{shebang}\n" + content end chmod "bin", 0755, verbose: false end
config() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 87 def config template "config/routes.rb" if engine? end
gemfile() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 53 def gemfile template "Gemfile" end
gemfile_entry() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 178 def gemfile_entry return unless inside_application? gemfile_in_app_path = File.join(rails_app_path, "Gemfile") if File.exist? gemfile_in_app_path entry = "\ngem '#{name}', path: '#{relative_path}'" append_file gemfile_in_app_path, entry end end
gemspec() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 61 def gemspec template "%name%.gemspec" end
generate_test_dummy(force = false) 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 112 def generate_test_dummy(force = false) opts = options.transform_keys(&:to_sym).except(*DUMMY_IGNORE_OPTIONS) opts[:force] = force opts[:skip_bundle] = true opts[:skip_git] = true opts[:skip_hotwire] = true opts[:dummy_app] = true invoke Rails::Generators::AppGenerator, [ File.expand_path(dummy_path, destination_root) ], opts end
gitignore() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 65 def gitignore template "gitignore", ".gitignore" end
lib() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 75 def lib template "lib/%namespaced_name%.rb" template "lib/tasks/%namespaced_name%_tasks.rake" template "lib/%namespaced_name%/version.rb" if engine? template "lib/%namespaced_name%/engine.rb" else template "lib/%namespaced_name%/railtie.rb" end end
license() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 57 def license template "MIT-LICENSE" unless inside_application? end
rakefile() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 16 def rakefile template "Rakefile" end
readme() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 49 def readme template "README.md" end
stylesheets() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 161 def stylesheets if mountable? copy_file "rails/stylesheets.css", "app/assets/stylesheets/#{namespaced_name}/application.css" elsif full? empty_directory_with_keep_file "app/assets/stylesheets/#{namespaced_name}" end end
test() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 91 def test template "test/test_helper.rb" template "test/%namespaced_name%_test.rb" if engine? 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/integration" unless api? empty_directory_with_keep_file "test/helpers" end template "test/integration/navigation_test.rb" end end
test_dummy_clean() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 144 def test_dummy_clean inside dummy_path do remove_file ".ruby-version" remove_file "db/seeds.rb" remove_file "Gemfile" remove_file "lib/tasks" remove_file "public/robots.txt" remove_file "README.md" remove_file "test" remove_file "vendor" end end
test_dummy_config() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 124 def test_dummy_config template "rails/boot.rb", "#{dummy_path}/config/boot.rb", force: true if mountable? template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true end if engine? && !api? insert_into_file "#{dummy_path}/config/application.rb", indent(<<~RUBY, 4), after: /^\s*config\.load_defaults.*\n/ # For compatibility with applications that use this config config.action_controller.include_all_helpers = false RUBY end end
test_dummy_sprocket_assets() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 139 def test_dummy_sprocket_assets template "rails/stylesheets.css", "#{dummy_path}/app/assets/stylesheets/application.css", force: true template "rails/dummy_manifest.js", "#{dummy_path}/app/assets/config/manifest.js", force: true end
version_control() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators/rails/plugin/plugin_generator.rb, line 69 def version_control if !options[:skip_git] && !options[:pretend] run git_init_command, capture: options[:quiet], abort_on_failure: false end end