Class: Gem::Resolver::RequirementList
- Inherits:
 - 
      Object
      
        
- Object
 - Gem::Resolver::RequirementList
 
 
- Includes:
 - Enumerable
 
- Defined in:
 - lib/rubygems/resolver/requirement_list.rb
 
Overview
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.
Instance Method Summary collapse
- 
  
    
      #add(req)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Adds Resolver::DependencyRequest
reqto this requirements list. - 
  
    
      #each  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Enumerates requirements in the list.
 - 
  
    
      #empty?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Is the list empty?.
 - 
  
    
      #initialize  ⇒ RequirementList 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Creates a new RequirementList.
 - 
  
    
      #initialize_copy(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
:nodoc:.
 - 
  
    
      #next5  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns the oldest five entries from the list.
 - 
  
    
      #remove  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Remove the oldest DependencyRequest from the list.
 - 
  
    
      #size  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
How many elements are in the list.
 
Constructor Details
#initialize ⇒ RequirementList
Creates a new RequirementList.
      16 17 18 19  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 16 def initialize @exact = [] @list = [] end  | 
  
Instance Method Details
#add(req) ⇒ Object
Adds Resolver::DependencyRequest req to this requirements list.
      29 30 31 32 33 34 35 36  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 29 def add(req) if req.requirement.exact? @exact.push req else @list.push req end req end  | 
  
#each ⇒ Object
Enumerates requirements in the list
      41 42 43 44 45 46 47 48 49 50 51  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 41 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  | 
  
#empty? ⇒ Boolean
Is the list empty?
      63 64 65  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 63 def empty? @exact.empty? && @list.empty? end  | 
  
#initialize_copy(other) ⇒ Object
:nodoc:
      21 22 23 24  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 21 def initialize_copy(other) # :nodoc: @exact = @exact.dup @list = @list.dup end  | 
  
#next5 ⇒ Object
Returns the oldest five entries from the list.
      78 79 80 81  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 78 def next5 x = @exact[0,5] x + @list[0,5 - x.size] end  | 
  
#remove ⇒ Object
Remove the oldest DependencyRequest from the list.
      70 71 72 73  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 70 def remove return @exact.shift unless @exact.empty? @list.shift end  | 
  
#size ⇒ Object
How many elements are in the list
      56 57 58  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 56 def size @exact.size + @list.size end  |