class Enumerator

Constants

NOVALUE

Public Class Methods

generate(initial = NOVALUE) { || ... } click to toggle source
# File lib/enumerator_generate.rb, line 4
def self.generate(initial = NOVALUE)
  raise ArgumentError, "No block given" unless block_given?
  Enumerator.new do |y|
    val = initial == NOVALUE ? yield() : initial
    y << val

    loop do
      val = yield(val)
      y << val
    end
  end
end