diff options
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 9 | ||||
-rw-r--r-- | railties/lib/rails/plugin.rb | 4 | ||||
-rw-r--r-- | railties/lib/rails/railtie.rb | 7 | ||||
-rw-r--r-- | railties/test/railties/engine_test.rb | 1 |
4 files changed, 19 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index ef1bee106a..b437d7a17d 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -277,8 +277,13 @@ module ActionDispatch private def app_name(app) return unless app.respond_to?(:routes) - class_name = app.class.is_a?(Class) ? app.name : app.class.name - ActiveSupport::Inflector.underscore(class_name).gsub("/", "_") + + if app.respond_to?(:railtie_name) + app.railtie_name + else + class_name = app.class.is_a?(Class) ? app.name : app.class.name + ActiveSupport::Inflector.underscore(class_name).gsub("/", "_") + end end def define_generate_prefix(app, name) diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb index 22a0eb10a8..c07ff2f9cf 100644 --- a/railties/lib/rails/plugin.rb +++ b/railties/lib/rails/plugin.rb @@ -48,6 +48,10 @@ module Rails attr_reader :name, :path + def railtie_name + name.to_s + end + def load_tasks super load_deprecated_tasks diff --git a/railties/lib/rails/railtie.rb b/railties/lib/rails/railtie.rb index 0514e425fd..3e2a3c5231 100644 --- a/railties/lib/rails/railtie.rb +++ b/railties/lib/rails/railtie.rb @@ -164,8 +164,15 @@ module Rails def abstract_railtie? ABSTRACT_RAILTIES.include?(name) end + + def railtie_name(name = nil) + @railtie_name = name if name + @railtie_name ||= ActiveSupport::Inflector.underscore(self.name).gsub("/", "_") + end end + delegate :railtie_name, :to => "self.class" + def config @config ||= Railtie::Configuration.new end diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb index 3df6e110d5..d83c2e92ba 100644 --- a/railties/test/railties/engine_test.rb +++ b/railties/test/railties/engine_test.rb @@ -28,6 +28,7 @@ module RailtiesTest plugin.write "lib/bukkits.rb", <<-RUBY class Bukkits class Engine < ::Rails::Engine + railtie_name "bukkits" end end RUBY |