diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2019-04-25 11:48:40 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2019-08-17 07:35:48 +0900 |
commit | 3587824d710ffcfd1270be0a354a770a49312b6f (patch) | |
tree | 7b446b5cff5b8e06bc28e386afeed6abae8dbb3b | |
parent | 1ac6890bd05a48e385f564d212765a3a60899659 (diff) | |
download | ruby-3587824d710ffcfd1270be0a354a770a49312b6f.tar.gz |
[rubygems/rubygems] Don't unregister default specifications
I think this should be more efficient?
https://github.com/rubygems/rubygems/commit/a1de78104f
-rw-r--r-- | lib/rubygems.rb | 14 | ||||
-rwxr-xr-x | lib/rubygems/core_ext/kernel_require.rb | 1 |
2 files changed, 2 insertions, 13 deletions
diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 9440ab048a..1e79e408fb 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -1293,18 +1293,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} # Find a Gem::Specification of default gem from +path+ def find_unresolved_default_spec(path) - @path_to_default_spec_map[path] - end - - ## - # Remove needless Gem::Specification of default gem from - # unresolved default gem list - - def remove_unresolved_default_spec(spec) - spec.files.each do |file| - @path_to_default_spec_map.delete(file) - @path_to_default_spec_map.delete(file.sub(suffix_regexp, "")) - end + default_spec = @path_to_default_spec_map[path] + return default_spec if default_spec && loaded_specs[default_spec.name] != default_spec end ## diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 5656524f33..7407c02931 100755 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -57,7 +57,6 @@ module Kernel end if spec = Gem.find_unresolved_default_spec(path) - Gem.remove_unresolved_default_spec(spec) begin Kernel.send(:gem, spec.name, "#{Gem::Requirement.default}.a") rescue Exception |