aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorStefan Sprenger <stefan.sprenger@dkd.de>2011-06-07 11:21:38 +0200
committerStefan Sprenger <stefan.sprenger@dkd.de>2011-06-07 11:21:38 +0200
commitf18283194bfb43fc020be37d6fa7cd3149fa8b5e (patch)
tree3b9501f6ee44039575f4858b24749967fc7dc898 /railties/lib
parent1a06530aa50e1aed5c7dff6f1256abb555c497b6 (diff)
downloadrails-f18283194bfb43fc020be37d6fa7cd3149fa8b5e.tar.gz
rails-f18283194bfb43fc020be37d6fa7cd3149fa8b5e.tar.bz2
rails-f18283194bfb43fc020be37d6fa7cd3149fa8b5e.zip
Use namespace if it's a mountable engine
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/engine/commands.rb1
-rw-r--r--railties/lib/rails/generators.rb10
-rw-r--r--railties/lib/rails/generators/named_base.rb4
-rw-r--r--railties/lib/rails/railtie.rb5
4 files changed, 17 insertions, 3 deletions
diff --git a/railties/lib/rails/engine/commands.rb b/railties/lib/rails/engine/commands.rb
index 59b7c4d67f..3b0920e213 100644
--- a/railties/lib/rails/engine/commands.rb
+++ b/railties/lib/rails/engine/commands.rb
@@ -15,6 +15,7 @@ engine = ::Rails::Engine.find(ENGINE_ROOT)
case command
when 'generate', 'destroy'
require 'rails/generators'
+ Rails::Generators.namespace = engine.railtie_namespace
engine.load_generators
require "rails/commands/#{command}"
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index 09e505a75b..508d5359ba 100644
--- a/railties/lib/rails/generators.rb
+++ b/railties/lib/rails/generators.rb
@@ -90,6 +90,16 @@ module Rails
@options ||= DEFAULT_OPTIONS.dup
end
+ def self.namespace
+ @namespace ||= if defined?(Rails) && Rails.application
+ Rails.application.class.parents.detect { |n| n.respond_to?(:_railtie) }
+ end
+ end
+
+ def self.namespace=(namespace)
+ @namespace ||= namespace
+ end
+
# Hold configured generators fallbacks. If a plugin developer wants a
# generator group to fallback to another group in case of missing generators,
# they can add a fallback.
diff --git a/railties/lib/rails/generators/named_base.rb b/railties/lib/rails/generators/named_base.rb
index 7e7f8d2d08..c6c0392f43 100644
--- a/railties/lib/rails/generators/named_base.rb
+++ b/railties/lib/rails/generators/named_base.rb
@@ -63,9 +63,7 @@ module Rails
end
def namespace
- @namespace ||= if defined?(Rails) && Rails.application
- Rails.application.class.parents.detect { |n| n.respond_to?(:_railtie) }
- end
+ Rails::Generators.namespace
end
def namespaced?
diff --git a/railties/lib/rails/railtie.rb b/railties/lib/rails/railtie.rb
index 65c567d72f..5f50943626 100644
--- a/railties/lib/rails/railtie.rb
+++ b/railties/lib/rails/railtie.rb
@@ -1,6 +1,7 @@
require 'rails/initializable'
require 'rails/configuration'
require 'active_support/inflector'
+require 'active_support/core_ext/module/introspection'
module Rails
# Railtie is the core of the Rails framework and provides several hooks to extend
@@ -192,5 +193,9 @@ module Rails
def load_generators(app)
self.class.generators.each { |block| block.call(app) }
end
+
+ def railtie_namespace
+ @railtie_namespace ||= self.class.parents.detect { |n| n.respond_to?(:_railtie) }
+ end
end
end