## Sticks a service on a URL, using mongrel to do the HTTP work
class TSimpleMongrelHTTPServer
class Handler < Mongrel::HttpHandler
- def initialize processor, protocol_factory
+ def initialize(processor, protocol_factory)
@processor = processor
@protocol_factory = protocol_factory
end
- def process request, response
+ def process(request, response)
unless request.params["REQUEST_METHOD"] == "POST"
response.start(404) { } # better way?
return
end
end
- def initialize processor, opts={}
+ def initialize(processor, opts={})
port = opts[:port] || 80
ip = opts[:ip] || "0.0.0.0"
path = opts[:path] || ""
## Very simple HTTP client
class THttpClient < TTransport
- def initialize url
+ def initialize(url)
@url = URI url
@outbuf = ""
end
def isOpen; true end
- def read sz; @inbuf.read sz end
- def write buf; @outbuf << buf end
+ def read(sz); @inbuf.read sz end
+ def write(buf); @outbuf << buf end
def flush
http = Net::HTTP.new @url.host, @url.port
resp, data = http.post(@url.path, @outbuf)
##
## Assumes both objects are open, remain open, don't require flushing, etc.
class TIOStreamTransport < TTransport
- def initialize input, output
+ def initialize(input, output)
@input = input
@output = output
end
- def isOpen(); true end
+ def isOpen; true end
def read(sz); @input.read(sz) end
def write(buf); @output.write(buf) end
end