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 12 def Enumerator.product(*enums, &block) kwargs = enums[-1] if kwargs.is_a?(Hash) && !kwargs.empty? raise ArgumentError, "unknown keywords: #{kwargs.keys.map(&:inspect).join(', ')}" end 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