diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-08 01:22:39 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-08 01:22:39 +0000 |
commit | 7ed9b794b4e3f3f9874f2ce19401461596d8a2c0 (patch) | |
tree | 5caaf13685de34b09d2949709a77b4c650b62741 /lib/rubygems/resolver/requirement_list.rb | |
parent | 866b438c21ff05dfeabba8bc9aa9850e415be607 (diff) | |
download | ruby-7ed9b794b4e3f3f9874f2ce19401461596d8a2c0.tar.gz |
* lib/rubygems: Update to RubyGems master 14749ce. This fixes bugs
handling of gem dependencies lockfiles (Gemfile.lock).
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44054 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/resolver/requirement_list.rb')
-rw-r--r-- | lib/rubygems/resolver/requirement_list.rb | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/rubygems/resolver/requirement_list.rb b/lib/rubygems/resolver/requirement_list.rb index fe1d77afc3..a6bfaab307 100644 --- a/lib/rubygems/resolver/requirement_list.rb +++ b/lib/rubygems/resolver/requirement_list.rb @@ -13,10 +13,12 @@ class Gem::Resolver::RequirementList # Creates a new RequirementList. def initialize + @exact = [] @list = [] end def initialize_copy other # :nodoc: + @exact = @exact.dup @list = @list.dup end @@ -24,7 +26,11 @@ class Gem::Resolver::RequirementList # Adds Resolver::DependencyRequest +req+ to this requirements list. def add(req) - @list.push req + if req.requirement.exact? + @exact.push req + else + @list.push req + end req end @@ -34,22 +40,34 @@ class Gem::Resolver::RequirementList def each # :nodoc: return enum_for __method__ unless block_given? + @exact.each do |requirement| + yield requirement + end + @list.each do |requirement| yield requirement end end ## + # How many elements are in the list + + def size + @exact.size + @list.size + end + + ## # Is the list empty? def empty? - @list.empty? + @exact.empty? && @list.empty? end ## # Remove the oldest DependencyRequest from the list. def remove + return @exact.shift unless @exact.empty? @list.shift end @@ -57,6 +75,7 @@ class Gem::Resolver::RequirementList # Returns the oldest five entries from the list. def next5 - @list[0,5] + x = @exact[0,5] + x + @list[0,5 - x.size] end end |