In Files

  • rubygems/resolver/requirement_list.rb

Parent

Included Modules

Class/Module Index [+]

Quicksearch

Gem::Resolver::RequirementList

frozen_string_literal: true

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.

Public Class Methods

new() click to toggle source

Creates a new RequirementList.

 
               # File rubygems/resolver/requirement_list.rb, line 15
def initialize
  @exact = []
  @list = []
end
            

Public Instance Methods

add(req) click to toggle source

Adds Resolver::DependencyRequest req to this requirements list.

 
               # File rubygems/resolver/requirement_list.rb, line 28
def add(req)
  if req.requirement.exact?
    @exact.push req
  else
    @list.push req
  end
  req
end
            
empty?() click to toggle source

Is the list empty?

 
               # File rubygems/resolver/requirement_list.rb, line 62
def empty?
  @exact.empty? && @list.empty?
end
            
next5() click to toggle source

Returns the oldest five entries from the list.

 
               # File rubygems/resolver/requirement_list.rb, line 77
def next5
  x = @exact[0,5]
  x + @list[0,5 - x.size]
end
            
remove() click to toggle source

Remove the oldest DependencyRequest from the list.

 
               # File rubygems/resolver/requirement_list.rb, line 69
def remove
  return @exact.shift unless @exact.empty?
  @list.shift
end
            
size() click to toggle source

How many elements are in the list

 
               # File rubygems/resolver/requirement_list.rb, line 55
def size
  @exact.size + @list.size
end