summaryrefslogtreecommitdiff
path: root/lib/nickserver/reel_server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nickserver/reel_server.rb')
-rw-r--r--lib/nickserver/reel_server.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/nickserver/reel_server.rb b/lib/nickserver/reel_server.rb
index c12c402..abda57f 100644
--- a/lib/nickserver/reel_server.rb
+++ b/lib/nickserver/reel_server.rb
@@ -4,25 +4,31 @@ require 'nickserver/adapters/celluloid_http'
require 'nickserver/request_handler'
module Nickserver
- class ReelServer
+ class ReelServer < Reel::Server::HTTP
def self.start(options = {})
- Reel::Server::HTTP.run(options[:host], options[:port]) do |connection|
- # Support multiple keep-alive requests per connection
- connection.each_request do |request|
- handler = handler_for(request)
- handler.respond_to params(request), request.headers
- end
+ new(options[:host], options[:port]).run
+ end
+
+ def initialize(host = "127.0.0.1", port = 3000)
+ super(host, port, &method(:on_connection))
+ end
+
+ def on_connection(connection)
+ connection.each_request do |request|
+ handler = handler_for(request)
+ handler.respond_to params(request), request.headers
end
end
+
protected
- def self.handler_for(request)
+ def handler_for(request)
RequestHandler.new(request, Nickserver::Adapters::CelluloidHttp.new)
end
- def self.params(request)
+ def params(request)
if request.query_string
CGI.parse request.query_string
else