Class: Exwiw::RowTransformer::TransformedResult

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/exwiw/row_transformer.rb

Overview

Lazy Enumerable decorator returned by #wrap. Mirrors the adapters' StreamingResult contract (#size COUNT delegation, sized enum_for, #each returning self) so it is a drop-in for both write_inserts and to_copy_from_stdin.

Instance Method Summary collapse

Constructor Details

#initialize(inner, transformer) ⇒ TransformedResult

Returns a new instance of TransformedResult.



83
84
85
86
# File 'lib/exwiw/row_transformer.rb', line 83

def initialize(inner, transformer)
  @inner = inner
  @transformer = transformer
end

Instance Method Details

#eachObject



93
94
95
96
97
98
# File 'lib/exwiw/row_transformer.rb', line 93

def each
  return enum_for(:each) { size } unless block_given?

  @inner.each { |row| yield @transformer.transform(row) }
  self
end

#sizeObject Also known as: length



88
89
90
# File 'lib/exwiw/row_transformer.rb', line 88

def size
  @inner.size
end