Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 31370b78d7
Fetching contributors…

Cannot retrieve contributors at this time

63 lines (48 sloc) 2.631 kB

Contributed Rack Middleware and Utilities

This package includes a variety of add-on components for Rack, a Ruby web server interface:

  • Rack::ETag - Automatically sets the ETag header on all String bodies.

  • Rack::JSONP - Adds JSON-P support by stripping out the callback param and padding the response with the appropriate callback format.

  • Rack::LighttpdScriptNameFix - Fixes how lighttpd sets the SCRIPT_NAME and PATH_INFO variables in certain configurations.

  • Rack::Locale - Detects the client locale using the Accept-Language request header and sets a rack.locale variable in the environment.

  • Rack::MailExceptions - Rescues exceptions raised from the app and sends a useful email with the exception, stacktrace, and contents of the environment.

  • Rack::NestedParams - parses form params with subscripts (e.g., * “post[title]=Hello”) into a nested/recursive Hash structure (based on Rails' implementation).

  • Rack::PostBodyContentTypeParser - Adds support for JSON request bodies. The Rack parameter hash is populated by deserializing the JSON data provided in the request body when the Content-Type is application/json.

  • Rack::ProcTitle - Displays request information in process title ($0) for monitoring/inspection with ps(1).

  • Rack::Profiler - Uses ruby-prof to measure request time.

  • Rack::Sendfile - Enables X-Sendfile support for bodies that can be served from file.

  • Rack::TimeZone - Detects the clients timezone using JavaScript and sets a variable in Rack's environment with the offset from UTC.

  • Rack::Evil - Lets the rack application return a response to the client from any place.

  • Rack::Callbacks - Implements DLS for pure before/after filter like Middlewares.

  • Rack::Config - Shared configuration for cooperative middleware.

  • Rack::NotFound - A default 404 application.

Use

Git is the quickest way to the rack-contrib sources:

git clone git://github.com/rack/rack-contrib.git

Gems are currently available from GitHub clones:

gem install rack-rack-contrib --source=http://gems.github.com/

Requiring 'rack/contrib' will add autoloads to the Rack modules for all of the components included. The following example shows what a simple rackup (config.ru) file might look like:

require 'rack'
require 'rack/contrib'

use Rack::Profiler if ENV['RACK_ENV'] == 'development'

use Rack::ETag
use Rack::MailExceptions

run theapp

Links

rack-contrib on GitHub

<github.com/rack/rack-contrib>

Rack

<rack.rubyforge.org/>

Rack On GitHub

<github.org/rack/rack>

rack-devel mailing list

<groups.google.com/group/rack-devel>

Jump to Line
Something went wrong with that request. Please try again.