diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-12-07 00:53:01 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-12-07 00:53:01 +0000 |
commit | 97f80207d0f0d13f28a419d8c92e96bb9064096a (patch) | |
tree | de416fff9bbc978434cb4c1185099151df2ac27c /lib/rubygems/core_ext | |
parent | a0b80a44101708b5d66cdd87f16c98277954a77c (diff) | |
download | ruby-97f80207d0f0d13f28a419d8c92e96bb9064096a.tar.gz |
* lib/rubygems: Update to RubyGems 2.4.5.
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/core_ext')
-rw-r--r-- | lib/rubygems/core_ext/kernel_gem.rb | 9 | ||||
-rwxr-xr-x | lib/rubygems/core_ext/kernel_require.rb | 2 |
2 files changed, 9 insertions, 2 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 diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index bf9618d3bf..8f2cddee4d 100755 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -66,7 +66,7 @@ module Kernel begin RUBYGEMS_ACTIVATION_MONITOR.exit - return gem_original_require(path) + return gem_original_require(spec.to_fullpath(path) || path) end if spec # Attempt to find +path+ in any unresolved gems... |