diff options
author | Xavier Noria <fxn@hashref.com> | 2010-05-09 11:46:45 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2010-05-09 11:46:45 +0200 |
commit | e1a0d86fe0355ddff8c86db0f42f3824ffe14c02 (patch) | |
tree | 5833022ca41905f243c15c8a5ffdf864de69bfa6 /railties/lib/rails/generators.rb | |
parent | 1ff3d951e620ddeeb97e87e2024391470e886467 (diff) | |
parent | df508bd97062b871fe25eda8d1bb61cd43d79bc4 (diff) | |
download | rails-e1a0d86fe0355ddff8c86db0f42f3824ffe14c02.tar.gz rails-e1a0d86fe0355ddff8c86db0f42f3824ffe14c02.tar.bz2 rails-e1a0d86fe0355ddff8c86db0f42f3824ffe14c02.zip |
Merge remote branch 'rails/master'
Diffstat (limited to 'railties/lib/rails/generators.rb')
-rw-r--r-- | railties/lib/rails/generators.rb | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index 9bc019b152..fe8a6c0b94 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -166,6 +166,38 @@ module Rails end end + def self.hidden_namespaces + @hidden_namespaces ||= begin + orm = options[:rails][:orm] + test = options[:rails][:test_framework] + template = options[:rails][:template_engine] + + [ + "rails", + "#{orm}:migration", + "#{orm}:model", + "#{orm}:observer", + "#{test}:controller", + "#{test}:helper", + "#{test}:integration", + "#{test}:mailer", + "#{test}:model", + "#{test}:observer", + "#{test}:scaffold", + "#{test}:view", + "#{template}:controller", + "#{template}:scaffold" + ] + end + end + + class << self + def hide_namespaces(*namespaces) + hidden_namespaces.concat(namespaces) + end + alias hide_namespace hide_namespaces + end + # Show help message with available generators. def self.help(command = 'generate') lookup! @@ -197,9 +229,7 @@ module Rails rails.delete("app") print_list("rails", rails) - groups.delete("active_record") if options[:rails][:orm] == :active_record - groups.delete("test_unit") if options[:rails][:test_framework] == :test_unit - groups.delete("erb") if options[:rails][:template_engine] == :erb + hidden_namespaces.each {|n| groups.delete(n.to_s) } groups.sort.each { |b, n| print_list(b, n) } end @@ -208,9 +238,17 @@ module Rails # Prints a list of generators. def self.print_list(base, namespaces) #:nodoc: + namespaces = namespaces.reject do |n| + hidden_namespaces.include?(n) + end + return if namespaces.empty? puts "#{base.camelize}:" - namespaces.each { |namespace| puts(" #{namespace}") } + + namespaces.each do |namespace| + puts(" #{namespace}") + end + puts end |