class Enumerator::Chain

Public Class Methods

new(*enums) click to toggle source
# File lib/backports/2.6.0/enumerable/chain.rb, line 11
def initialize(*enums)
  @enums = enums
  @rewindable = -1
  self
end

Public Instance Methods

each(*args, &block) click to toggle source
# File lib/backports/2.6.0/enumerable/chain.rb, line 17
def each(*args, &block)
  @enums.each_with_index do |enum, i|
    @rewindable = i
    enum.each(*args, &block)
  end
end
inspect() click to toggle source
# File lib/backports/2.6.0/enumerable/chain.rb, line 34
def inspect
  detail = @enums.map(&:inspect).join(', ')
  "#<Enumerator::Chain: [#{detail}]>"
end
rewind() click to toggle source
# File lib/backports/2.6.0/enumerable/chain.rb, line 39
def rewind
  @rewindable.downto(0) do |i|
    enum = @enums[i]
    enum.rewind if enum.respond_to? :rewind
  end
  self
end
size() click to toggle source
# File lib/backports/2.6.0/enumerable/chain.rb, line 24
def size
  sum = 0
  @enums.each do |enum|
    s = enum.size
    return s if s == nil || s == Float::INFINITY
    sum += s
  end
  sum
end