Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update hidden namespace mechanism to work better with alternate choic…

…es and to support full namespaces (not just entire groups)
  • Loading branch information...
commit 743d77f405a16cd1cf1d4bbccd6b512463e10a43 1 parent f2072a3
@wycats wycats authored
Showing with 42 additions and 4 deletions.
  1. +42 −4 railties/lib/rails/generators.rb
View
46 railties/lib/rails/generators.rb
@@ -166,6 +166,38 @@ def self.invoke(namespace, args=ARGV, config={})
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 @@ def self.help(command = 'generate')
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 @@ def self.help(command = 'generate')
# 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

2 comments on commit 743d77f

@jocker

I'm sorry, but i can't see metal generator here

@mitchellh

jocker,

Rails metal was removed in a previous commit a couple days ago (see http://github.com/rails/rails/commit/45e60283e733a535d68d499aa20e095c905f43b0)

Please sign in to comment.
Something went wrong with that request. Please try again.