diff options
author | Samuel Giddins <segiddins@segiddins.me> | 2017-03-14 12:34:03 -0500 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-08-17 07:35:48 +0900 |
commit | 00cd5d74cecb6aa4a184e57e2b8246ef6e45d458 (patch) | |
tree | 2ff487a4b5e474ddd17bf2e083b4722d1a746b2b /lib/rubygems/core_ext | |
parent | d4feeb19361a4d7addf4779fb6bdc8e8c072093b (diff) | |
download | ruby-00cd5d74cecb6aa4a184e57e2b8246ef6e45d458.tar.gz |
[rubygems/rubygems] [Require] Ensure -I beats a default gem
https://github.com/rubygems/rubygems/commit/6fbda98eb3
Diffstat (limited to 'lib/rubygems/core_ext')
-rwxr-xr-x | lib/rubygems/core_ext/kernel_require.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 014090a16e..89e3e33db2 100755 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -36,6 +36,26 @@ module Kernel path = path.to_path if path.respond_to? :to_path + resolved_path = begin + rp = nil + $LOAD_PATH[0...Gem.load_path_insert_index].each do |lp| + Gem.suffixes.each do |s| + full_path = File.join(lp, "#{path}#{s}") + if File.file?(File.expand_path(full_path)) + rp = full_path + break + end + end + break if rp + end + rp + end + + if resolved_path + RUBYGEMS_ACTIVATION_MONITOR.exit + return gem_original_require(resolved_path) + end + if spec = Gem.find_unresolved_default_spec(path) Gem.remove_unresolved_default_spec(spec) begin |