class Enumerator
new with block, standard in Ruby 1.9
Public Class Methods
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
Source
# File lib/backports/3.2.0/enumerator/product.rb, line 19 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 product = Enumerator::Product.new(*enums) if block_given? product.each(&block) return nil end product end
Public Instance Methods
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