Rackable is a tiny module that aims to make any Ruby object Rack-friendly and provide it with a REST-like interface.
Basically, what it does is providing an object with a call() method that
uses the Rack environement to dispatch to a method, giving helper objects such
as headers, query parameters, ...
Look in the examples/ folder.
Rackable provides a rack readable attribute which is a struct containing the
following fields:
env: the parameter forcallresponse: aRack::Responseobject that is returned bycallheader: a hash of headers that is part ofresponserequest: aRack::Requestcreated from the environement given tocallquery: a hash of parameters extracted from the query stringdata: a hash of parameters extracted from the request body (POST, PUT)
For both query and data, keys of the hash are symbols.
You can easily handle errors with the provided http_error method. It takes an
error code and an optional message. If no message is given, the standard message
from the HTTP Status Codes list will be used (eg. Not Found for 404)
You can issue a redirect using the provided redirect method. It take the url
to redirect to. If no url is provided, an empty 302 is returned.