diff options
-rw-r--r-- | activesupport/lib/active_support/core_ext/module/introspection.rb | 6 | ||||
-rw-r--r-- | activesupport/lib/active_support/dependencies.rb | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/core_ext/module/introspection.rb b/activesupport/lib/active_support/core_ext/module/introspection.rb index 36481927aa..7e4d8e44fc 100644 --- a/activesupport/lib/active_support/core_ext/module/introspection.rb +++ b/activesupport/lib/active_support/core_ext/module/introspection.rb @@ -32,4 +32,10 @@ class Module ! inherited.key?(const) || inherited[const].object_id != const_get(const).object_id end end + + # Returns the names of the constants defined locally rather than the + # constants themselves. See <tt>local_constants</tt>. + def local_constant_names + local_constants.map(&:to_s) + end end diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb index 6a5cfbf2e5..0cd0a6ca1f 100644 --- a/activesupport/lib/active_support/dependencies.rb +++ b/activesupport/lib/active_support/dependencies.rb @@ -318,13 +318,13 @@ module Dependencies #:nodoc: watch_frames = descs.collect do |desc| if desc.is_a? Module mod_name = desc.name - initial_constants = desc.local_constants + initial_constants = desc.local_constant_names elsif desc.is_a?(String) || desc.is_a?(Symbol) mod_name = desc.to_s # Handle the case where the module has yet to be defined. initial_constants = if qualified_const_defined?(mod_name) - mod_name.constantize.local_constants + mod_name.constantize.local_constant_names else [] end @@ -349,7 +349,7 @@ module Dependencies #:nodoc: mod = mod_name.constantize next [] unless mod.is_a? Module - new_constants = mod.local_constants - prior_constants + new_constants = mod.local_constant_names - prior_constants # Make sure no other frames takes credit for these constants. constant_watch_stack.each do |frame_name, constants| |