Permalink
Browse files

Fixed Dependencies so all modules are able to load missing constants #…

…1173 [Nicholas Seckar]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1331 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
dhh committed May 19, 2005
1 parent 71b6f76 commit 4a7225a1bdf693af9e0e22bec5b61061179fdb1f
Showing with 17 additions and 15 deletions.
  1. +2 −0 activesupport/CHANGELOG
  2. +15 −15 activesupport/lib/active_support/dependencies.rb
View
@@ -1,5 +1,7 @@
*SVN*
+* Fixed Dependencies so all modules are able to load missing constants #1173 [Nicholas Seckar]
+
* Fixed the Inflector to underscore strings containing numbers, so Area51Controller becomes area51_controller #1176 [Nicholas Seckar]
* Fixed that HashWithIndifferentAccess stringified all keys including symbols, ints, objects, and arrays #1162 [Nicholas Seckar]
@@ -167,24 +167,24 @@ def const_name_to_module_name(name)
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)
-class Object #:nodoc:
- class << self
- # Use const_missing to autoload associations so we don't have to
- # require_association when using single-table inheritance.
- def const_missing(class_id)
- if Object.const_defined?(:Controllers) and Object::Controllers.const_available?(class_id)
- return Object::Controllers.const_get(class_id)
- end
-
- begin
- require_dependency(class_id.to_s.demodulize.underscore)
- if Object.const_defined?(class_id) then return Object.const_get(class_id) else raise LoadError end
- rescue LoadError => e
- raise NameError.new("uninitialized constant #{class_id}").copy_blame!(e)
- end
+class Module #:nodoc:
+ # Use const_missing to autoload associations so we don't have to
+ # require_association when using single-table inheritance.
+ def const_missing(class_id)
+ if Object.const_defined?(:Controllers) and Object::Controllers.const_available?(class_id)
+ return Object::Controllers.const_get(class_id)
+ end
+
+ begin
+ require_dependency(class_id.to_s.demodulize.underscore)
+ if Object.const_defined?(class_id) then return Object.const_get(class_id) else raise LoadError end
+ rescue LoadError => e
+ raise NameError.new("uninitialized constant #{class_id}").copy_blame!(e)
end
end
+end
+class Object #:nodoc:
def load(file, *extras)
begin super(file, *extras)
rescue Object => exception

0 comments on commit 4a7225a

Please sign in to comment.