diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb index c180031c61..800a8215b8 100644 --- a/railties/lib/rails/configuration.rb +++ b/railties/lib/rails/configuration.rb @@ -22,15 +22,17 @@ module Rails end end - attr_reader :middleware + attr_reader :middleware, :generator_paths def initialize(base = nil) if base - @options = base.options.dup - @middleware = base.middleware.dup + @options = base.options.dup + @middleware = base.middleware.dup + @generator_paths = base.generator_paths.dup else - @options = Hash.new { |h,k| h[k] = ActiveSupport::OrderedOptions.new } - @middleware = self.class.default_middleware_stack + @options = Hash.new { |h,k| h[k] = ActiveSupport::OrderedOptions.new } + @middleware = self.class.default_middleware_stack + @generator_paths = [] end end diff --git a/railties/test/plugins/configuration_test.rb b/railties/test/plugins/configuration_test.rb index 25bf24eb3b..03c738971f 100644 --- a/railties/test/plugins/configuration_test.rb +++ b/railties/test/plugins/configuration_test.rb @@ -24,6 +24,12 @@ module PluginsTest assert_equal "hello", AppTemplate::Application.config.foo.greetings end + test "plugins can provide generators" do + class Foo < Rails::Railtie ; config.generator_paths << "/foo" ; end + require "#{app_path}/config/application" + assert_eqaul ["/foo"], AppTemplate::Application.config.generator_paths + end + test "plugin config merges are deep" do class Foo < Rails::Railtie ; config.foo.greetings = 'hello' ; end class MyApp < Rails::Application