From 3587824d710ffcfd1270be0a354a770a49312b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Thu, 25 Apr 2019 11:48:40 +0200 Subject: [PATCH] [rubygems/rubygems] Don't unregister default specifications I think this should be more efficient? https://github.com/rubygems/rubygems/commit/a1de78104f --- lib/rubygems.rb | 14 ++------------ 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