Sunday, August 26, 2007

Mongrel register_proc

Added a register_proc function to mongrel

require 'mongrel'

class MergeResponse
attr_accessor :out, :head
def initialize(head,out)
@head = head
@out = out
end
end

class ProcHandler < Mongrel::HttpHandler
attr_accessor :block
def process(request, response)
response.start(200) do |head,out|
@block.call(request, MergeResponse.new(head,out))
end
end
end

class Mongrel::HttpServer
def register_proc(str, &proc)
hand = ProcHandler.new
hand.block = proc
self.register(str,hand)
end
end

h = Mongrel::HttpServer.new("0.0.0.0", "3000")
h.register("/files", Mongrel::DirHandler.new("."))
h.register_proc('/justin') {|req, res| res.out.write('smile') }
h.run.join

No comments: