Class Enumerable::Enumerator
In: lib/generator.rb
Parent: Object

Methods

next   rewind  

Public Instance methods

Returns the next object in the enumerator, and move the internal position forward. When the position reached at the end, internal position is rewinded then StopIteration is raised.

Note that enumeration sequence by next method does not affect other non-external enumeration methods, unless underlying iteration methods itself has side-effect, e.g. IO#each_line.

Caution: This feature internally uses Generator, which uses callcc to stop and resume enumeration to fetch each value. Use with care and be aware of the performance loss.

[Source]

# File lib/generator.rb, line 188
  def next
    g = __generator
    return g.next unless g.end?

    g.rewind
    raise StopIteration, 'iteration reached at end' 
  end

Rewinds the enumeration sequence by the next method.

[Source]

# File lib/generator.rb, line 200
  def rewind
    __generator.rewind
    self
  end

[Validate]