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|
   .. 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
Also aliased as: old_initialize

Public Instance Methods

old_initialize(*args, &block)
Alias for: new
to_h(mode=nil) click to toggle source

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
to_h_assoc() click to toggle source

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
to_h_auto() click to toggle source

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
to_h_flat() click to toggle source

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
to_h_multi() click to toggle source

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
to_h_splat() click to toggle source

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