# class Gem::Resolver::RequirementList

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 lib/rubygems/resolver/requirement_list.rb, line 16
    def initialize
      @exact = []
      @list = []
    end

### Public Instance Methods

add(req) click to toggle source

Adds Resolver::DependencyRequest `req` to this requirements list.

    # 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

empty?() click to toggle source

Is the list empty?

    # File lib/rubygems/resolver/requirement_list.rb, line 63
    def empty?
      @exact.empty? && @list.empty?
    end

next5() click to toggle source

Returns the oldest five entries from the list.

    # File lib/rubygems/resolver/requirement_list.rb, line 78
    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 lib/rubygems/resolver/requirement_list.rb, line 70
    def remove
      return @exact.shift unless @exact.empty?
      @list.shift
    end

size() click to toggle source

How many elements are in the list

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