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/request_set | |
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/request_set')
-rw-r--r-- | lib/rubygems/request_set/lockfile.rb | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/lib/rubygems/request_set/lockfile.rb b/lib/rubygems/request_set/lockfile.rb index 918aa971e5..4f2fa0933f 100644 --- a/lib/rubygems/request_set/lockfile.rb +++ b/lib/rubygems/request_set/lockfile.rb @@ -200,6 +200,8 @@ class Gem::RequestSet::Lockfile platforms = @requests.map { |request| request.spec.platform }.uniq + platforms = platforms.sort_by { |platform| platform.to_s } + platforms.sort.each do |platform| out << " #{platform}" end @@ -277,14 +279,7 @@ class Gem::RequestSet::Lockfile when :bang then get :bang - spec = @set.sets.select { |set| - Gem::Resolver::GitSet === set or - Gem::Resolver::VendorSet === set - }.map { |set| - set.specs[name] - }.compact.first - - requirements << spec.version + requirements << pinned_requirement(name) when :l_paren then get :l_paren @@ -300,6 +295,13 @@ class Gem::RequestSet::Lockfile end get :r_paren + + if peek[0] == :bang then + requirements.clear + requirements << pinned_requirement(name) + + get :bang + end end @set.gem name, *requirements @@ -507,6 +509,17 @@ class Gem::RequestSet::Lockfile @tokens.first || [:EOF] end + def pinned_requirement name # :nodoc: + spec = @set.sets.select { |set| + Gem::Resolver::GitSet === set or + Gem::Resolver::VendorSet === set + }.map { |set| + set.specs[name] + }.compact.first + + spec.version + end + def skip type # :nodoc: get while not @tokens.empty? and peek.first == type end |