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.
      15 16 17 18  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 15 def initialize @exact = [] @list = [] end  | 
  
Instance Method Details
#add(req) ⇒ Object
Adds Resolver::DependencyRequest req to this requirements list.
      28 29 30 31 32 33 34 35  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 28 def add(req) if req.requirement.exact? @exact.push req else @list.push req end req end  | 
  
#each ⇒ Object
Enumerates requirements in the list
      40 41 42 43 44 45 46 47 48 49 50  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 40 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?
      62 63 64  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 62 def empty? @exact.empty? && @list.empty? end  | 
  
#initialize_copy(other) ⇒ Object
:nodoc:
      20 21 22 23  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 20 def initialize_copy(other) # :nodoc: @exact = @exact.dup @list = @list.dup end  | 
  
#next5 ⇒ Object
Returns the oldest five entries from the list.
      77 78 79 80  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 77 def next5 x = @exact[0,5] x + @list[0,5 - x.size] end  | 
  
#remove ⇒ Object
Remove the oldest DependencyRequest from the list.
      69 70 71 72  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 69 def remove return @exact.shift unless @exact.empty? @list.shift end  | 
  
#size ⇒ Object
How many elements are in the list
      55 56 57  | 
    
      # File 'lib/rubygems/resolver/requirement_list.rb', line 55 def size @exact.size + @list.size end  |