class Enumerator
Public Class Methods
new(*args, &block)
click to toggle source
Provides the ruby-1.9 block form of Enumerator
, where you can write:
obj = Enumerator.new do |yielder| # ... yielder.yield(data) # or: yielder << data # ... end
When obj.each is called, the block is run once. It should call yielder.yield with each item it wishes to generate.
Example:
fib = Enumerator.new { |y| a = b = 1 loop { y << a a, b = b, a + b } } fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
# File lib/core/facets/enumerator.rb, line 37 def initialize(*args, &block) if block @body = block old_initialize(self, :_start) else old_initialize(*args) end end
Also aliased as: old_initialize
Public Instance Methods
fx()
click to toggle source
# File lib/core/facets/enumerator/fx.rb, line 8 def fx Functor.new do |op, *a, &b| map{ |e| e.send(op, *a, &b) } end end