diff options
Diffstat (limited to 'railties/lib/rails/generators/base.rb')
-rw-r--r-- | railties/lib/rails/generators/base.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/railties/lib/rails/generators/base.rb b/railties/lib/rails/generators/base.rb index 26abb46644..f4b2bd1ae9 100644 --- a/railties/lib/rails/generators/base.rb +++ b/railties/lib/rails/generators/base.rb @@ -17,7 +17,7 @@ module Rails def self.source_root @_rails_source_root ||= begin if base_name && generator_name - File.expand_path(File.join(File.dirname(__FILE__), base_name, generator_name, 'templates')) + File.expand_path(File.join("../../generators", base_name, generator_name, 'templates'), File.dirname(__FILE__)) end end end @@ -42,7 +42,7 @@ module Rails # def self.namespace(name=nil) return super if name - @namespace ||= super.sub(/_generator$/, '') + @namespace ||= super.sub(/_generator$/, '').sub(/:generators:/, ':') end # Invoke a generator based on the value supplied by the user to the @@ -324,9 +324,13 @@ module Rails # added hook is being used. # def self.prepare_for_invocation(name, value) #:nodoc: + return super unless value.is_a?(String) || value.is_a?(Symbol) + if value && constants = self.hooks[name] value = name if TrueClass === value Rails::Generators.find_by_namespace(value, *constants) + elsif klass = Rails::Generators.find_by_namespace(value) + klass else super end |