diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-12-22 18:23:37 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-12-22 18:23:37 +0000 |
commit | c64a29f6f1e7e7d95193862ab571e2b03f648b34 (patch) | |
tree | d5a2cef426af9cda65e68ef3f29305170527a96e /activesupport | |
parent | 8b5f4e474f30560da85f52dd64dc3b45d0338b93 (diff) | |
download | rails-c64a29f6f1e7e7d95193862ab571e2b03f648b34.tar.gz rails-c64a29f6f1e7e7d95193862ab571e2b03f648b34.tar.bz2 rails-c64a29f6f1e7e7d95193862ab571e2b03f648b34.zip |
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
Diffstat (limited to 'activesupport')
-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| |