Class: Pants::Readers::FileReaderConnection

Inherits:
EventMachine::Connection
  • Object
show all
Includes:
LogSwitch::Mixin
Defined in:
lib/pants/readers/file_reader.rb

Overview

This is the EventMachine connection that reads the source file and puts the read data into the data channel so writers can write as they need to.

Instance Method Summary collapse

Constructor Details

#initialize(write_to_channel, starter, stopper) ⇒ FileReaderConnection



20
21
22
23
24
# File 'lib/pants/readers/file_reader.rb', line 20

def initialize(write_to_channel, starter, stopper)
  @write_to_channel = write_to_channel
  @stopper = stopper
  @starter = starter
end

Instance Method Details

#post_initObject



26
27
28
# File 'lib/pants/readers/file_reader.rb', line 26

def post_init
  @starter.call
end

#receive_data(data) ⇒ Object

Reads the data and writes it to the data channel.



33
34
35
36
# File 'lib/pants/readers/file_reader.rb', line 33

def receive_data(data)
  log "<< #{data.size}"
  @write_to_channel << data
end

#unbindObject

Called when the file is done being read.



39
40
41
42
# File 'lib/pants/readers/file_reader.rb', line 39

def unbind
  log "Unbinding, done writing, and notifying the stopper..."
  @stopper.call
end