mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Fix Dependencies.autoloaded? to ignore anonymous modules. Closes #6561.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5811 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Fix Dependencies.autoloaded? to ignore anonymous modules. Closes #6561. [Nicholas Seckar]
|
||||
|
||||
* Update load once paths to prevent nested once constants from being detected and claimed by an external non-once load. [Nicholas Seckar]
|
||||
|
||||
* Deprecation: silence warnings when reporting test errors. [Jeremy Kemper]
|
||||
|
||||
@@ -278,6 +278,7 @@ 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.
|
||||
name = to_constant_name desc
|
||||
return false unless qualified_const_defined? name
|
||||
return autoloaded_constants.include?(name)
|
||||
|
||||
@@ -305,6 +305,8 @@ class DependenciesTest < Test::Unit::TestCase
|
||||
assert Dependencies.autoloaded?("::ModuleFolder")
|
||||
assert Dependencies.autoloaded?(:ModuleFolder)
|
||||
|
||||
assert ! Dependencies.autoloaded?(Module.new)
|
||||
|
||||
Object.send :remove_const, :ModuleFolder
|
||||
end
|
||||
end
|
||||
@@ -705,7 +707,7 @@ class DependenciesTest < Test::Unit::TestCase
|
||||
def test_load_once_constants_should_not_be_unloaded
|
||||
with_loading 'autoloading_fixtures' do
|
||||
Dependencies.load_once_paths = Dependencies.load_paths
|
||||
::A
|
||||
::A.to_s
|
||||
assert defined?(A)
|
||||
Dependencies.clear
|
||||
assert defined?(A)
|
||||
|
||||
Reference in New Issue
Block a user