mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #15764 from arthurnn/dependencies_name_error
Make dependencies.rb add a name to NameError
This commit is contained in:
commit
081eec4ba6
3 changed files with 11 additions and 5 deletions
|
@ -1,3 +1,6 @@
|
|||
* Make Dependencies pass a name to NameError error.
|
||||
*arthurnn*
|
||||
|
||||
* Fixed `ActiveSupport::Cache::FileStore` exploding with long paths.
|
||||
*Adam Panzer / Michael Grosser*
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ module ActiveSupport #:nodoc:
|
|||
# top-level constant.
|
||||
def guess_for_anonymous(const_name)
|
||||
if Object.const_defined?(const_name)
|
||||
raise NameError, "#{const_name} cannot be autoloaded from an anonymous class or module"
|
||||
raise NameError.new "#{const_name} cannot be autoloaded from an anonymous class or module", const_name.to_s
|
||||
else
|
||||
Object
|
||||
end
|
||||
|
@ -516,9 +516,9 @@ module ActiveSupport #:nodoc:
|
|||
end
|
||||
end
|
||||
|
||||
raise NameError,
|
||||
"uninitialized constant #{qualified_name}",
|
||||
caller.reject { |l| l.starts_with? __FILE__ }
|
||||
name_error = NameError.new("uninitialized constant #{qualified_name}", qualified_name)
|
||||
name_error.set_backtrace(caller.reject {|l| l.starts_with? __FILE__ })
|
||||
raise name_error
|
||||
end
|
||||
|
||||
# Remove the constants that have been autoloaded, and those that have been
|
||||
|
|
|
@ -367,9 +367,11 @@ class DependenciesTest < ActiveSupport::TestCase
|
|||
with_autoloading_fixtures do
|
||||
e = assert_raise(NameError) { A::DoesNotExist.nil? }
|
||||
assert_equal "uninitialized constant A::DoesNotExist", e.message
|
||||
assert_equal "A::DoesNotExist", e.name
|
||||
|
||||
e = assert_raise(NameError) { A::B::DoesNotExist.nil? }
|
||||
assert_equal "uninitialized constant A::B::DoesNotExist", e.message
|
||||
assert_equal "A::B::DoesNotExist", e.name
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -537,6 +539,7 @@ class DependenciesTest < ActiveSupport::TestCase
|
|||
mod = Module.new
|
||||
e = assert_raise(NameError) { mod::E }
|
||||
assert_equal 'E cannot be autoloaded from an anonymous class or module', e.message
|
||||
assert_equal 'E', e.name
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -954,7 +957,7 @@ class DependenciesTest < ActiveSupport::TestCase
|
|||
assert_kind_of Class, A::B # Necessary to load A::B for the test
|
||||
ActiveSupport::Dependencies.mark_for_unload(A::B)
|
||||
ActiveSupport::Dependencies.remove_unloadable_constants!
|
||||
|
||||
|
||||
A::B # Make sure no circular dependency error
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue