123456789_123456789_123456789_123456789_123456789_

Class: Gem::Resolver::RequirementList

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Instance Chain:
self, Enumerable
Inherits: Object
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.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.newRequirementList

Creates a new RequirementList.

[ GitHub ]

  
# File 'lib/rubygems/resolver/requirement_list.rb', line 15

def initialize
  @exact = []
  @list = []
end

Instance Attribute Details

#empty?Boolean (readonly)

Is the list empty?

[ GitHub ]

  
# File 'lib/rubygems/resolver/requirement_list.rb', line 62

def empty?
  @exact.empty? && @list.empty?
end

Instance Method Details

#add(req)

Adds DependencyRequest req to this requirements list.

[ GitHub ]

  
# 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

#next5

Returns the oldest five entries from the list.

[ GitHub ]

  
# File 'lib/rubygems/resolver/requirement_list.rb', line 77

def next5
  x = @exact[0,5]
  x + @list[0,5 - x.size]
end

#remove

Remove the oldest DependencyRequest from the list.

[ GitHub ]

  
# File 'lib/rubygems/resolver/requirement_list.rb', line 69

def remove
  return @exact.shift unless @exact.empty?
  @list.shift
end

#size

How many elements are in the list

[ GitHub ]

  
# File 'lib/rubygems/resolver/requirement_list.rb', line 55

def size
  @exact.size + @list.size
end