diff options
Diffstat (limited to 'lib/rubygems/core_ext/kernel_gem.rb')
-rw-r--r-- | lib/rubygems/core_ext/kernel_gem.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/rubygems/core_ext/kernel_gem.rb b/lib/rubygems/core_ext/kernel_gem.rb index edce4ee10b..61e77fe3c5 100644 --- a/lib/rubygems/core_ext/kernel_gem.rb +++ b/lib/rubygems/core_ext/kernel_gem.rb @@ -55,7 +55,14 @@ module Kernel gem_name = gem_name.name end - spec = Gem::Dependency.new(gem_name, *requirements).to_spec + dep = Gem::Dependency.new(gem_name, *requirements) + + loaded = Gem.loaded_specs[gem_name] + + return false if loaded && dep.matches_spec?(loaded) + + spec = dep.to_spec + Gem::LOADED_SPECS_MUTEX.synchronize { spec.activate } if spec |