class Enumerator

new with block, standard in Ruby 1.9

Public Class Methods

produce(initial = Backports::Undefined) { || ... } click to toggle source
# File lib/backports/2.7.0/enumerator/produce.rb, line 7
def self.produce(initial = Backports::Undefined)
  raise ArgumentError, 'no block given' unless block_given?

  Enumerator.new do |y|
    val = initial == Backports::Undefined ? yield() : initial

    loop do
      y << val
      val = yield(val)
    end
  end
end
product(*enums, &block) click to toggle source
# File lib/backports/3.2.0/enumerator/product.rb, line 9
def Enumerator.product(*enums, &block)
  Enumerator::Product.new(*enums).each(&block)
end

Public Instance Methods

initialize_with_optional_block(*arg, &block) click to toggle source
# File lib/backports/1.9.1/enumerator/new.rb, line 34
def initialize_with_optional_block(*arg, &block)
  return initialize_without_optional_block(*arg, &nil) unless arg.empty?  # Ruby 1.9 apparently ignores the block if any argument is present
  initialize_without_optional_block(GeneratorBP.new(&block))
end