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.



122
123
124
125
# File 'lib/exwiw/row_transformer.rb', line 122

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

Instance Method Details

#eachObject



132
133
134
135
136
137
# File 'lib/exwiw/row_transformer.rb', line 132

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

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

#sizeObject Also known as: length



127
128
129
# File 'lib/exwiw/row_transformer.rb', line 127

def size
  @inner.size
end