mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Make ActiveSupport::Configurable work with modules
[#6486 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
parent
a0629927b2
commit
f42562f97b
2 changed files with 8 additions and 2 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue