Class: Streamingly::SerDeIterable

Inherits:
Object
  • Object
show all
Defined in:
lib/streamingly/serde_iterable.rb

Instance Method Summary collapse

Constructor Details

#initialize(iterable, error_handler = nil) ⇒ SerDeIterable

Returns a new instance of SerDeIterable.



4
5
6
7
8
9
# File 'lib/streamingly/serde_iterable.rb', line 4

def initialize(iterable, error_handler = nil)
  @iterable = iterable
  @error_handler = error_handler
  @error_callback_defined = @error_handler &&
                            @error_handler.respond_to?(:on_error)
end

Instance Method Details

#eachObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/streamingly/serde_iterable.rb', line 11

def each
  @iterable.each do |line|
    begin
      yield Streamingly::SerDe.from_tabbed_csv(line)
    rescue => error
      if @error_callback_defined
        @error_handler.on_error(error, line: line)
      else
        raise error
      end
    end
  end
end