Sha256: 805210e00eef9ecfa6bab07dfc8f83352121b51d3cff1aee29784defcf361fc0
Contents?: true
Size: 1.04 KB
Versions: 5
Compression:
Stored size: 1.04 KB
Contents
class FnordMetric::Web def initialize(opts) @opts = opts @opts[:server] ||= "thin" @opts[:host] ||= "0.0.0.0" @opts[:port] ||= "4242" FnordMetric.register(self) end def initialized server = @opts[:server].downcase middleware_stack = @opts[:use] || [] websocket = FnordMetric::WebSocket.new webapp = FnordMetric::App.new(@opts) dispatch = Rack::Builder.app do use Rack::CommonLogger use Rack::ShowExceptions map "/stream" do run websocket end map "/" do middleware_stack.each do |middleware| use(*middleware[0..1], &middleware[2]) end run webapp end end unless ["thin", "hatetepe"].include? server raise "Need an EventMachine webserver, but #{server} isn't" end host = @opts[:host] port = @opts[:port] Rack::Server.start( :app => dispatch, :server => server, :Host => host, :Port => port ) && FnordMetric.log("listening on http://#{host}:#{port}") end end
Version data entries
5 entries across 5 versions & 1 rubygems