Method: Drydock::StreamMonitor#initialize

Defined in:
lib/drydock/stream_monitor.rb

#initialize(event_handler) ⇒ StreamMonitor

Returns a new instance of StreamMonitor.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/drydock/stream_monitor.rb', line 36

def initialize(event_handler)
  @thread = Thread.new do
    previous_ids = {}
    serial_no    = 0

    Docker::Event.stream do |event|
      serial_no += 1

      is_old = previous_ids.key?(event.id)
      event_type = self.class.event_type_for(event.status)
      event_handler.call(event, !is_old, serial_no, event_type)

      previous_ids[event.id] = true
    end
  end
end