aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/dependencies.rb3
-rw-r--r--activesupport/test/dependencies_test.rb7
2 files changed, 8 insertions, 2 deletions
diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb
index 98f74453f0..f141cddc4a 100644
--- a/activesupport/lib/active_support/dependencies.rb
+++ b/activesupport/lib/active_support/dependencies.rb
@@ -278,7 +278,8 @@ module Dependencies #:nodoc:
# Determine if the given constant has been automatically loaded.
def autoloaded?(desc)
- return false if desc.is_a?(Module) && desc.name.empty? # Empty name => anonymous module.
+ # No name => anonymous module.
+ return false if desc.is_a?(Module) && desc.name.blank?
name = to_constant_name desc
return false unless qualified_const_defined? name
return autoloaded_constants.include?(name)
diff --git a/activesupport/test/dependencies_test.rb b/activesupport/test/dependencies_test.rb
index 95a5380dbd..c0b6d89c66 100644
--- a/activesupport/test/dependencies_test.rb
+++ b/activesupport/test/dependencies_test.rb
@@ -305,7 +305,12 @@ class DependenciesTest < Test::Unit::TestCase
assert Dependencies.autoloaded?("::ModuleFolder")
assert Dependencies.autoloaded?(:ModuleFolder)
- assert ! Dependencies.autoloaded?(Module.new)
+ # Anonymous modules aren't autoloaded.
+ assert !Dependencies.autoloaded?(Module.new)
+
+ nil_name = Module.new
+ def nil_name.name() nil end
+ assert !Dependencies.autoloaded?(nil_name)
Object.send :remove_const, :ModuleFolder
end