命名空間
- 模組 Rails::Generators::Actions
- 模組 Rails::Generators::Db
- 模組 Rails::Generators::Migration
- 模組 Rails::Generators::Testing
- 類別 Rails::Generators::ActiveModel
- 類別 Rails::Generators::AppBase
- 類別 Rails::Generators::AppGenerator
- 類別 Rails::Generators::Base
- 類別 Rails::Generators::BenchmarkGenerator
- 類別 Rails::Generators::Database
- 類別 Rails::Generators::NamedBase
- 類別 Rails::Generators::ScriptGenerator
- 類別 Rails::Generators::TestCase
方法
- A
- C
- F
- H
- I
- L
- P
- S
常數
DEFAULT_ALIASES | = | { rails: { actions: "-a", orm: "-o", javascripts: ["-j", "--js"], resource_controller: "-c", scaffold_controller: "-c", stylesheets: "-y", template_engine: "-e", test_framework: "-t" }, test_unit: { fixture_replacement: "-r", } } |
DEFAULT_OPTIONS | = | { rails: { api: false, assets: true, force_plural: false, helper: true, integration_tool: nil, orm: false, resource_controller: :controller, resource_route: true, scaffold_controller: :scaffold_controller, system_tests: nil, test_framework: nil, template_engine: :erb } } |
類別公開方法
api_only!() 連結
設定僅限 API
應用程式的產生器。它基本上隱藏了所有通常與瀏覽器相關的內容,例如資源檔和session遷移產生器,並完全停用輔助方法和資源檔,以便 scaffold 等產生器不會建立它們。
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 116 def api_only! hide_namespaces "assets", "helper", "css", "js" options[:rails].merge!( api: true, assets: false, helper: false, template_engine: nil ) options[:mailer] ||= {} options[:mailer][:template_engine] ||= :erb end
fallbacks() 連結
保存已設定的產生器後備方案。如果插件開發人員希望產生器群組在缺少產生器的情況下 fallback 到另一個群組,則可以新增後備方案。
例如,shoulda 被認為是一個 test_framework,並且是 test_unit 的擴展。但是,大多數 shoulda 產生器都與 test_unit 產生器相似。
然後,Shoulda 可以通過新增後備方案來告知產生器在某些產生器不可用時搜尋 test_unit 產生器
Rails::Generators.fallbacks[:shoulda] = :test_unit
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 108 def fallbacks @fallbacks ||= {} end
help(command = "generate") 連結
顯示說明訊息以及可用的產生器。
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 170 def help(command = "generate") puts "Usage:" puts " bin/rails #{command} GENERATOR [args] [options]" puts puts "General options:" puts " -h, [--help] # Print generator's options and usage" puts " -p, [--pretend] # Run but do not make any changes" puts " -f, [--force] # Overwrite files that already exist" puts " -s, [--skip] # Skip files that already exist" puts " -q, [--quiet] # Suppress status output" puts puts "Please choose a generator below." puts print_generators end
hidden_namespaces() 連結
返回隱藏的產生器命名空間陣列。產生器命名空間可能由於各種原因而被隱藏。有些命名空間有別名,例如「rails:migration」,可以使用較短的「migration」來呼叫。
來源:在 GitHub 上
|hide_namespaces(*namespaces) 連結
也稱為:hide_namespace
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 164 def hide_namespaces(*namespaces) hidden_namespaces.concat(namespaces) end
invoke(namespace, args = ARGV, config = {}) 連結
接收命名空間、參數和行為以調用產生器。它被用作 generate、destroy 和 update 命令的預設入口點。
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 261 def invoke(namespace, args = ARGV, config = {}) names = namespace.to_s.split(":") if klass = find_by_namespace(names.pop, names.any? && names.join(":")) args << "--help" if args.empty? && klass.arguments.any?(&:required?) klass.start(args, config) run_after_generate_callback if config[:behavior] == :invoke else options = sorted_groups.flat_map(&:last) error = Command::CorrectableNameError.new("Could not find generator '#{namespace}'.", namespace, options) puts <<~MSG #{error.detailed_message} Run `bin/rails generate --help` for more options. MSG exit 1 end end
print_generators() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 192 def print_generators sorted_groups.each { |b, n| print_list(b, n) } end
public_namespaces() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 187 def public_namespaces lookup! subclasses.map(&:namespace) end
sorted_groups() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 196 def sorted_groups namespaces = public_namespaces namespaces.sort! groups = Hash.new { |h, k| h[k] = [] } namespaces.each do |namespace| base = namespace.split(":").first groups[base] << namespace end rails = groups.delete("rails") rails.map! { |n| n.delete_prefix("rails:") } rails.delete("app") rails.delete("plugin") rails.delete("encrypted_file") rails.delete("encryption_key_file") rails.delete("master_key") rails.delete("credentials") rails.delete("db:system:change") hidden_namespaces.each { |n| groups.delete(n.to_s) } [[ "rails", rails ]] + groups.sort.to_a end
類別私有方法
command_type() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 306 def command_type # :doc: @command_type ||= "generator" end
file_lookup_paths() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 314 def file_lookup_paths # :doc: @file_lookup_paths ||= [ "{#{lookup_paths.join(',')}}", "**", "*_generator.rb" ] end
lookup_paths() 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 310 def lookup_paths # :doc: @lookup_paths ||= %w( rails/generators generators ) end
print_list(base, namespaces) 連結
來源:顯示 | 在 GitHub 上
# File railties/lib/rails/generators.rb, line 285 def print_list(base, namespaces) # :doc: namespaces = namespaces.reject { |n| hidden_namespaces.include?(n) } super end