Delete AS::Dependencies.autoloaded?
This commit is contained in:
parent
39a7658b61
commit
b99b14a1cf
@ -70,11 +70,6 @@ def eager_load?(path)
|
|||||||
def clear
|
def clear
|
||||||
end
|
end
|
||||||
|
|
||||||
# Is the provided constant path defined?
|
|
||||||
def qualified_const_defined?(path)
|
|
||||||
Object.const_defined?(path, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Search for a file in autoload_paths matching the provided suffix.
|
# Search for a file in autoload_paths matching the provided suffix.
|
||||||
def search_for_file(path_suffix)
|
def search_for_file(path_suffix)
|
||||||
path_suffix += ".rb" unless path_suffix.end_with?(".rb")
|
path_suffix += ".rb" unless path_suffix.end_with?(".rb")
|
||||||
@ -85,33 +80,5 @@ def search_for_file(path_suffix)
|
|||||||
end
|
end
|
||||||
nil # Gee, I sure wish we had first_match ;-)
|
nil # Gee, I sure wish we had first_match ;-)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Determine if the given constant has been automatically loaded.
|
|
||||||
def autoloaded?(desc)
|
|
||||||
return false if desc.is_a?(Module) && real_mod_name(desc).nil?
|
|
||||||
name = to_constant_name desc
|
|
||||||
return false unless qualified_const_defined?(name)
|
|
||||||
autoloaded_constants.include?(name)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Convert the provided const desc to a qualified constant name (as a string).
|
|
||||||
# A module, class, symbol, or string may be provided.
|
|
||||||
def to_constant_name(desc) # :nodoc:
|
|
||||||
case desc
|
|
||||||
when String then desc.delete_prefix("::")
|
|
||||||
when Symbol then desc.to_s
|
|
||||||
when Module
|
|
||||||
real_mod_name(desc) ||
|
|
||||||
raise(ArgumentError, "Anonymous modules have no name to be referenced by")
|
|
||||||
else raise TypeError, "Not a valid constant descriptor: #{desc.inspect}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
# Returns the original name of a class or module even if `name` has been
|
|
||||||
# overridden.
|
|
||||||
def real_mod_name(mod)
|
|
||||||
UNBOUND_METHOD_MODULE_NAME.bind_call(mod)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -20,11 +20,6 @@ def autoloaded_constants
|
|||||||
Rails.autoloaders.main.unloadable_cpaths
|
Rails.autoloaders.main.unloadable_cpaths
|
||||||
end
|
end
|
||||||
|
|
||||||
def autoloaded?(object)
|
|
||||||
cpath = object.is_a?(Module) ? real_mod_name(object) : object.to_s
|
|
||||||
Rails.autoloaders.main.unloadable_cpath?(cpath)
|
|
||||||
end
|
|
||||||
|
|
||||||
def verbose=(verbose)
|
def verbose=(verbose)
|
||||||
l = verbose ? logger || Rails.logger : nil
|
l = verbose ? logger || Rails.logger : nil
|
||||||
Rails.autoloaders.each { |autoloader| autoloader.logger = l }
|
Rails.autoloaders.each { |autoloader| autoloader.logger = l }
|
||||||
|
@ -34,25 +34,6 @@ def test_smart_name_error_strings
|
|||||||
end
|
end
|
||||||
assert_includes "uninitialized constant ImaginaryObject", e.message
|
assert_includes "uninitialized constant ImaginaryObject", e.message
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_qualified_const_defined
|
|
||||||
assert ActiveSupport::Dependencies.qualified_const_defined?("Object")
|
|
||||||
assert ActiveSupport::Dependencies.qualified_const_defined?("::Object")
|
|
||||||
assert ActiveSupport::Dependencies.qualified_const_defined?("::Object::Kernel")
|
|
||||||
assert ActiveSupport::Dependencies.qualified_const_defined?("::ActiveSupport::TestCase")
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_qualified_const_defined_should_not_call_const_missing
|
|
||||||
ModuleWithMissing.missing_count = 0
|
|
||||||
assert_not ActiveSupport::Dependencies.qualified_const_defined?("ModuleWithMissing::A")
|
|
||||||
assert_equal 0, ModuleWithMissing.missing_count
|
|
||||||
assert_not ActiveSupport::Dependencies.qualified_const_defined?("ModuleWithMissing::A::B")
|
|
||||||
assert_equal 0, ModuleWithMissing.missing_count
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_qualified_const_defined_explodes_with_invalid_const_name
|
|
||||||
assert_raises(NameError) { ActiveSupport::Dependencies.qualified_const_defined?("invalid") }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class RequireDependencyTest < ActiveSupport::TestCase
|
class RequireDependencyTest < ActiveSupport::TestCase
|
||||||
|
@ -62,14 +62,6 @@ class RESTfulController < ApplicationController
|
|||||||
assert RESTfulController
|
assert RESTfulController
|
||||||
end
|
end
|
||||||
|
|
||||||
test "autoloaded? and overridden class names" do
|
|
||||||
invalid_constant_name = Module.new do
|
|
||||||
def self.name
|
|
||||||
"MyModule::SchemaMigration"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
assert_not deps.autoloaded?(invalid_constant_name)
|
|
||||||
end
|
|
||||||
|
|
||||||
test "the once autoloader can autoload from initializers" do
|
test "the once autoloader can autoload from initializers" do
|
||||||
app_file "extras0/x.rb", "X = 0"
|
app_file "extras0/x.rb", "X = 0"
|
||||||
@ -126,10 +118,6 @@ def self.name
|
|||||||
|
|
||||||
assert Post
|
assert Post
|
||||||
|
|
||||||
assert deps.autoloaded?("Post")
|
|
||||||
assert deps.autoloaded?(Post)
|
|
||||||
assert_not deps.autoloaded?("User")
|
|
||||||
|
|
||||||
assert_equal ["Post"], deps.autoloaded_constants
|
assert_equal ["Post"], deps.autoloaded_constants
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -141,10 +129,6 @@ def self.name
|
|||||||
|
|
||||||
assert Foo
|
assert Foo
|
||||||
|
|
||||||
assert_not deps.autoloaded?("Foo")
|
|
||||||
assert_not deps.autoloaded?(Foo)
|
|
||||||
assert_not deps.autoloaded?("Bar")
|
|
||||||
|
|
||||||
assert_empty deps.autoloaded_constants
|
assert_empty deps.autoloaded_constants
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -155,10 +139,6 @@ def self.name
|
|||||||
|
|
||||||
assert Post
|
assert Post
|
||||||
|
|
||||||
assert_not deps.autoloaded?("Post")
|
|
||||||
assert_not deps.autoloaded?(Post)
|
|
||||||
assert_not deps.autoloaded?("User")
|
|
||||||
|
|
||||||
assert_empty deps.autoloaded_constants
|
assert_empty deps.autoloaded_constants
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user