Make ActiveSupport::Configurable work with modules

[#6486 state:committed]

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
Oriol Gual and Josep M. Bach 2011-02-28 14:31:29 +01:00 committed by Santiago Pastorino
parent a0629927b2
commit f42562f97b
2 changed files with 8 additions and 2 deletions

View File

@ -26,7 +26,7 @@ module ActiveSupport
module ClassMethods
def config
@_config ||= if superclass.respond_to?(:config)
@_config ||= if respond_to?(:superclass) && superclass.respond_to?(:config)
superclass.config.inheritable_copy
else
# create a new "anonymous" class that will host the compiled reader methods

View File

@ -21,6 +21,12 @@ class ConfigurableActiveSupport < ActiveSupport::TestCase
assert_equal({ :foo => :bar }, Parent.config)
end
test "adds a configuration hash to a module as well" do
mixin = Module.new { include ActiveSupport::Configurable }
mixin.config.foo = :bar
assert_equal({ :foo => :bar }, mixin.config)
end
test "configuration hash is inheritable" do
assert_equal :bar, Child.config.foo
assert_equal :bar, Parent.config.foo
@ -57,4 +63,4 @@ class ConfigurableActiveSupport < ActiveSupport::TestCase
assert_respond_to child.config, :bar
assert_respond_to child.new.config, :bar
end
end
end