class Tinybucket::Enumerator

Public Class Methods

new(iterator, block) click to toggle source

Constructor

This method create a enumerator to enumerate each items of iterator.

@note This method return Lazy Enumerator if run on ruby 2.0.0 later.

@param iterator [Tinybucket::Iterator] iterator instance. @param block [Proc] a proc object to handle each item.

Calls superclass method
# File lib/tinybucket/enumerator.rb, line 13
def initialize(iterator, block)
  @iterator = iterator
  @block = block

  super() do |y|
    loop do
      v = @iterator.next
      m = @block ? @block.call(v) : v
      y.yield(m)
    end
  end

  lazy if lazy_enumerable?
end

Public Instance Methods

size() click to toggle source

Get collection size.

@see Tinybucket::Iterator#size

@return [Fixnum, NillClass] collection size.

# File lib/tinybucket/enumerator.rb, line 33
def size
  @iterator.size
end

Private Instance Methods

lazy_enumerable?() click to toggle source
# File lib/tinybucket/enumerator.rb, line 39
def lazy_enumerable?
  ruby_major_version >= 2
end
ruby_major_version() click to toggle source
# File lib/tinybucket/enumerator.rb, line 43
def ruby_major_version
  RUBY_VERSION.split('.')[0].to_i
end