hoodwink.d enhanced
RSS
2.0
XHTML
1.0

RedHanded

Monday

2006.01.30

Day Camp at Mongrel National Park #

by why in inspect

Zed and I worked over the weekend on smoothing out the divide between Camping (the 4k web framework) and Mongrel (the slim new Ruby web server mentioned last week.) In just a few days, Mongrel has caught the scent and is totally Campnivorous. Development gems await you.

 gem install mongrel camping --source code.whytheluckystiff.net

The Mongrel gem requires a build environment, there are no OSX or Windows binaries yet. You will find two examples in Mongrel’s examples/camping directory. Tepee is a dead-simple versioning wiki which requires the acts_as_versioned gem.

Here’s the relevant handler which is executed with CampingHandler.new(Tepee), if the app is contained in the module Tepee.

 class CampingHandler < Mongrel::HttpHandler
   def initialize(klass)
     @klass = klass
   end
   def process(request, response)
     body = StringIO.new(request.body)
     controller = @klass.run(body, request.params)
     response.start(controller.status) do |head, out|
       controller.headers.each do |k, v|
         [*v].each do |vi|
           head[k] = vi
         end
       end
       out << controller.body
     end
   end
 end

You can then mount these handlers quite readily. Zed’s moving along with handsome stride, so if you’ve got a machine to build this on, do not delay.