From c64a29f6f1e7e7d95193862ab571e2b03f648b34 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 22 Dec 2007 18:23:37 +0000 Subject: Ruby 1.9 compat: dependencies uses Module#local_constant_names. References #1689 [Frederick Cheung] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8482 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/lib/active_support/core_ext/module/introspection.rb | 6 ++++++ 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 local_constants. + 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| -- cgit v1.2.3