class Rodimus::BufferedStep

Attributes

buffer[R]
buffer_size[RW]

The maximum size of the buffer

Public Class Methods

new(buffer_size = 100) click to toggle source
Calls superclass method
# File lib/rodimus/buffered_step.rb, line 8
def initialize(buffer_size = 100)
  super()
  @buffer_size = buffer_size
  @buffer      = []
end

Public Instance Methods

close_descriptors() click to toggle source
Calls superclass method
# File lib/rodimus/buffered_step.rb, line 14
def close_descriptors # override
  flush if buffer.any?
  super
end
flush() click to toggle source

Flush the contents of the buffer to the outgoing data stream

# File lib/rodimus/buffered_step.rb, line 28
def flush
  outgoing.puts(buffer.join("\n"))
  @buffer = []
end
handle_output(transformed_row) click to toggle source
# File lib/rodimus/buffered_step.rb, line 19
def handle_output(transformed_row) # override
  buffer << transformed_row

  if buffer.length >= buffer_size
    flush
  end
end