Class Enumerable::Enumerator
In: lib/lore/facets/enumerator.rb
lib/more/facets/elementor.rb
Parent: Object

Methods

new   to_elem  

External Aliases

initialize -> old_initialize

Public Class methods

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)

[Source]

# File lib/lore/facets/enumerator.rb, line 34
      def initialize(*args, &block)
        if block_given?
          @body = block
          old_initialize(self, :_start)
        else
          old_initialize(*args)
        end
      end

Public Instance methods

Create Elementor.

[Source]

# File lib/more/facets/elementor.rb, line 124
  def to_elem(meth=nil)
    Elementor.new(self, meth || :each)
  end

[Validate]