class Drydock::StreamMonitor
Constants
- CONTAINER_EVENTS
- IMAGE_EVENTS
Public Class Methods
event_type_for(type)
click to toggle source
# File lib/drydock/stream_monitor.rb, line 25 def self.event_type_for(type) case type.to_sym when *CONTAINER_EVENTS :container when *IMAGE_EVENTS :image else :object end end
new(event_handler)
click to toggle source
# 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