Class | Enumerator |
In: |
lib/core/facets/to_hash.rb
lib/more/facets/enumerator.rb |
Parent: | Object |
initialize | -> | old_initialize |
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/more/facets/enumerator.rb, line 35 def initialize(*args, &block) if block_given? @body = block old_initialize(self, :_start) else old_initialize(*args) end 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 def to_h(mode=nil) to_a.to_h(mode) end
This is equivalent to Array#to_h_assoc.
# File lib/core/facets/to_hash.rb, line 309 def to_h_assoc to_a.to_h_assoc end
This is equivalent to Array#to_h_auto.
# File lib/core/facets/to_hash.rb, line 291 def to_h_auto to_a.to_h_auto end
This is equivalent to Array#to_h_flat.
# File lib/core/facets/to_hash.rb, line 303 def to_h_flat to_a.to_h_flat end
This is equivalent to Array#to_h_multi.
# File lib/core/facets/to_hash.rb, line 315 def to_h_multi to_a.to_h_multi end
This is equivalent to Array#to_h_splat.
# File lib/core/facets/to_hash.rb, line 297 def to_h_splat to_a.to_h_splat end