aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/dependencies.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-09-14 00:34:43 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-09-14 00:34:43 +0000
commit041b9b8a1c1661f90e8e586fddce981bfdb17f11 (patch)
treeef4778f501ee2a64b47d3eb2cc60236e8266e94d /activesupport/lib/active_support/dependencies.rb
parente6941149abbee39dbbe9898b0dc45e95046f7a70 (diff)
downloadrails-041b9b8a1c1661f90e8e586fddce981bfdb17f11.tar.gz
rails-041b9b8a1c1661f90e8e586fddce981bfdb17f11.tar.bz2
rails-041b9b8a1c1661f90e8e586fddce981bfdb17f11.zip
Some 1.9 forward compatibility
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7474 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport/lib/active_support/dependencies.rb')
-rw-r--r--activesupport/lib/active_support/dependencies.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb
index eee2e46865..076df426d7 100644
--- a/activesupport/lib/active_support/dependencies.rb
+++ b/activesupport/lib/active_support/dependencies.rb
@@ -114,7 +114,7 @@ module Dependencies #:nodoc:
raise NameError, "#{path.inspect} is not a valid constant name!" unless
/^(::)?([A-Z]\w*)(::[A-Z]\w*)*$/ =~ path
- names = path.split('::')
+ names = path.to_s.split('::')
names.shift if names.first.empty?
# We can't use defined? because it will invoke const_missing for the parent
@@ -411,7 +411,7 @@ protected
return false unless qualified_const_defined? const
const = $1 if /\A::(.*)\Z/ =~ const.to_s
- names = const.split('::')
+ names = const.to_s.split('::')
if names.size == 1 # It's under Object
parent = Object
else
@@ -419,7 +419,7 @@ protected
end
log "removing constant #{const}"
- parent.send :remove_const, names.last
+ parent.instance_eval { remove_const names.last }
return true
end
@@ -438,9 +438,11 @@ protected
end
-Object.send(:define_method, :require_or_load) { |file_name| Dependencies.require_or_load(file_name) } unless Object.respond_to?(:require_or_load)
-Object.send(:define_method, :require_dependency) { |file_name| Dependencies.depend_on(file_name) } unless Object.respond_to?(:require_dependency)
-Object.send(:define_method, :require_association) { |file_name| Dependencies.associate_with(file_name) } unless Object.respond_to?(:require_association)
+Object.instance_eval do
+ define_method(:require_or_load) { |file_name| Dependencies.require_or_load(file_name) } unless Object.respond_to?(:require_or_load)
+ define_method(:require_dependency) { |file_name| Dependencies.depend_on(file_name) } unless Object.respond_to?(:require_dependency)
+ define_method(:require_association) { |file_name| Dependencies.associate_with(file_name) } unless Object.respond_to?(:require_association)
+end
class Module #:nodoc:
# Rename the original handler so we can chain it to the new one