1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #40517 from eugeneius/depend_on_message

Use LoadError#original_message if available in depend_on
This commit is contained in:
Eugene Kenny 2020-11-03 18:12:24 +00:00 committed by GitHub
commit bc524f16ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View file

@ -375,7 +375,12 @@ module ActiveSupport #:nodoc:
require_or_load(path || file_name)
rescue LoadError => load_error
if file_name = load_error.message[/ -- (.*?)(\.rb)?$/, 1]
load_error.message.replace(message % file_name)
load_error_message = if load_error.respond_to?(:original_message)
load_error.original_message
else
load_error.message
end
load_error_message.replace(message % file_name)
load_error.copy_blame!(load_error)
end
raise

View file

@ -42,6 +42,13 @@ class DependenciesTest < ActiveSupport::TestCase
assert_equal expected.path, e.path
end
def test_depend_on_message
e = assert_raises(LoadError) do
ActiveSupport::Dependencies.depend_on "omgwtfbbq"
end
assert_equal "No such file to load -- omgwtfbbq.rb", e.message
end
def test_require_dependency_accepts_an_object_which_implements_to_path
o = Object.new
def o.to_path; "dependencies/service_one"; end