class Gem::Resolver::RequirementList

RequirementList 用于在解析一组 gem 时保存正在考虑的需求。

RequirementList 的行为类似于队列,其中最旧的项首先被删除。

公共类方法

new() 点击切换源代码

创建一个新的 RequirementList

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

公共实例方法

add(req) 点击切换源代码

将 Resolver::DependencyRequest req 添加到此需求列表。

# File 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?() 点击切换源代码

列表是否为空?

# File rubygems/resolver/requirement_list.rb, line 63
def empty?
  @exact.empty? && @list.empty?
end
next5() 点击切换源代码

从列表中返回最旧的五个条目。

# File rubygems/resolver/requirement_list.rb, line 78
def next5
  x = @exact[0,5]
  x + @list[0,5 - x.size]
end
remove() 点击切换源代码

从列表中删除最旧的 DependencyRequest。

# File rubygems/resolver/requirement_list.rb, line 70
def remove
  return @exact.shift unless @exact.empty?
  @list.shift
end
size() 点击切换源代码

列表中有多少个元素

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