Provides the ruby-1.9 block form of Enumerator, where you can write:
obj = Enumerator.new do |yielder|
.. do stuff
yielder.yield data # or: yielder << data
.. etc
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
}
}
assert_equal [1, 1, 2, 3, 5, 8, 13, 21, 34, 55], fib.take(10)
# File lib/core/facets/enumerator.rb, line 33
33: def initialize(*args, &block)
34: if block_given?
35: @body = block
36: old_initialize(self, :_start)
37: else
38: old_initialize(*args)
39: end
40: end
# File lib/core/facets/enumerator/fx.rb, line 13
13: def fx
14: Functor.new do |op, *a|
15: each{ |e| e.send(op, *a) }
16: end
17: end
Convert an Enumerator object into a hash. This is equivalent to Array#to_h.
e1 = [[1,:a],[2,:b],[3,:c]].to_enum
e1.to_h #=> { 1=>:a, 2=>:b, 3=>:c }
e2 = [1,2,3,4,5].to_enum
e2.to_h #=> {5=>nil, 1=>2, 3=>4}
e3 = [1,2,1,3,1,5].to_enum
e3.to_h #=> {1=>5}
CREDIT: Sandor Szücs
# File lib/core/facets/to_hash.rb, line 285
285: def to_h(mode=nil)
286: to_a.to_h(mode)
287: end
This is equivalent to Array#to_h_assoc.
# File lib/core/facets/to_hash.rb, line 309
309: def to_h_assoc
310: to_a.to_h_assoc
311: end
This is equivalent to Array#to_h_auto.
# File lib/core/facets/to_hash.rb, line 291
291: def to_h_auto
292: to_a.to_h_auto
293: end
This is equivalent to Array#to_h_flat.
# File lib/core/facets/to_hash.rb, line 303
303: def to_h_flat
304: to_a.to_h_flat
305: end
This is equivalent to Array#to_h_multi.
# File lib/core/facets/to_hash.rb, line 315
315: def to_h_multi
316: to_a.to_h_multi
317: end
This is equivalent to Array#to_h_splat.
# File lib/core/facets/to_hash.rb, line 297
297: def to_h_splat
298: to_a.to_h_splat
299: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.