Sha256: 72bc37d9c65bcea7169633a3b0f3862ad2d7ccaa3c1e506e52945d051865843e
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
module Angelo class Server < Reel::Server include Celluloid::Logger def initialize base, host = '127.0.0.1', port = 4567 @base = base info "Angelo #{VERSION} \"#{CODENAME}\"" info "listening on #{host}:#{port}" super host, port, &method(:on_connection) end def on_connection connection # RubyProf.resume connection.each_request do |request| if request.websocket? debug "got websocket request..." route_websocket connection, request else route_request connection, request end end # RubyProf.pause end private def route_request connection, request route! request.method.downcase.to_sym, connection, request end def route_websocket connection, request route! :socket, connection, request end def route! meth, connection, request rs = @base.routes[meth][request.path] if rs responder = rs.dup responder.base = @base.new responder.connection = connection responder.request = request else connection.respond :not_found, DEFAULT_RESPONSE_HEADERS, NOT_FOUND end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
angelo-0.0.7 | lib/angelo/server.rb |