diff options
Diffstat (limited to 'lib/rubygems/resolver/requirement_list.rb')
-rw-r--r-- | lib/rubygems/resolver/requirement_list.rb | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/rubygems/resolver/requirement_list.rb b/lib/rubygems/resolver/requirement_list.rb index 04e437b2a9..fe1d77afc3 100644 --- a/lib/rubygems/resolver/requirement_list.rb +++ b/lib/rubygems/resolver/requirement_list.rb @@ -1,19 +1,28 @@ ## -# Used internally to hold the requirements being considered -# while attempting to find a proper activation set. +# The RequirementList is used to hold the requirements being considered +# while resolving a set of gems. +# +# The RequirementList acts like a queue where the oldest items are removed +# first. class Gem::Resolver::RequirementList include Enumerable + ## + # Creates a new RequirementList. + def initialize @list = [] end - def initialize_copy(other) + def initialize_copy other # :nodoc: @list = @list.dup end + ## + # Adds Resolver::DependencyRequest +req+ to this requirements list. + def add(req) @list.push req req @@ -30,14 +39,23 @@ class Gem::Resolver::RequirementList end end + ## + # Is the list empty? + def empty? @list.empty? end + ## + # Remove the oldest DependencyRequest from the list. + def remove @list.shift end + ## + # Returns the oldest five entries from the list. + def next5 @list[0,5] end |