aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-12-22 18:23:37 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-12-22 18:23:37 +0000
commitc64a29f6f1e7e7d95193862ab571e2b03f648b34 (patch)
treed5a2cef426af9cda65e68ef3f29305170527a96e
parent8b5f4e474f30560da85f52dd64dc3b45d0338b93 (diff)
downloadrails-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
-rw-r--r--activesupport/lib/active_support/core_ext/module/introspection.rb6
-rw-r--r--activesupport/lib/active_support/dependencies.rb6
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|