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 forcall
response
: aRack::Response
object that is returned bycall
header
: a hash of headers that is part ofresponse
request
: aRack::Request
created from the environement given tocall
query
: 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.