class FFWD::Debug::MonitorSession
Public Class Methods
new(channel, type)
click to toggle source
# File lib/ffwd/debug/monitor_session.rb, line 20 def initialize channel, type @type = type @clients = {} subs = [] channel.starting do subs << channel.event_subscribe do |event| data = @type.serialize_event event begin send JSON.dump(:id => channel.id, :type => :event, :data => data) rescue => e log.error "Failed to serialize event", e return end end subs << channel.metric_subscribe do |metric| data = @type.serialize_metric metric begin send JSON.dump(:id => channel.id, :type => :metric, :data => data) rescue => e log.error "Failed to serialize metric", e return end end end channel.stopping do subs.each(&:unsubscribe).clear end end
Public Instance Methods
register(peer, client)
click to toggle source
# File lib/ffwd/debug/monitor_session.rb, line 55 def register peer, client @clients[peer] = client end
send(line)
click to toggle source
# File lib/ffwd/debug/monitor_session.rb, line 63 def send line @clients.each do |peer, client| client.send_line line end end
unregister(peer, client)
click to toggle source
# File lib/ffwd/debug/monitor_session.rb, line 59 def unregister peer, client @clients.delete peer end