Class: Enumerable::Enumerator::TransformWithIndex

Inherits:
Transform show all
Defined in:
lib/enumerable_lz/transform_18.rb

Overview

private

Instance Method Summary collapse

Methods inherited from Transform

#with_index

Constructor Details

#initialize(obj, offset = 0, &transformer) ⇒ TransformWithIndex

Returns a new instance of TransformWithIndex.



57
58
59
60
61
# File 'lib/enumerable_lz/transform_18.rb', line 57

def initialize obj, offset = 0, &transformer
  @org_enum = obj
  @transformer = transformer.nil? ? nil : [transformer]
  @offset = offset
end

Instance Method Details

#eachObject



63
64
65
66
67
68
69
70
# File 'lib/enumerable_lz/transform_18.rb', line 63

def each
  return self unless block_given?
  the_transformer = @transformer[0] || Proc.new{|el,i|el}
  i = @offset - 1
  @org_enum.each do |el|
    yield the_transformer.call(el, i+=1)
  end
end

#transform(&block) ⇒ Object Also known as: transform!

override


73
74
75
# File 'lib/enumerable_lz/transform_18.rb', line 73

def transform &block
  Transform.new self, &block
end