class FnordMetric::FyrehoseAcceptor
Public Class Methods
new(opts)
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 10 def initialize(opts) reactor = EM.connect(opts[:host], opts[:port], Fyrehose::Reactor) reactor.on_message do |channel, data| event = JSON.parse(data) event["_type"] ||= channel events << event push_next_event end opts[:channels].each do |channel| reactor.subscribe(channel) end end
outboud?()
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 39 def self.outboud? true end
start(opts)
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 3 def self.start(opts) require "fyrehose" require "fyrehose/reactor" new(opts) end
Public Instance Methods
api()
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 35 def api @api ||= FnordMetric::API.new(FnordMetric.options) end
events()
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 31 def events @events ||= [] end
push_next_event()
click to toggle source
# File lib/fnordmetric/acceptors/fyrehose_acceptor.rb, line 25 def push_next_event return true if events.empty? api.event(@events.pop) EM.next_tick(&method(:push_next_event)) end