This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Mon Dec 08 21:22:46 -0800 2008 | |
| |
COPYING | Sun Nov 30 21:28:09 -0800 2008 | |
| |
README.rdoc | Fri Jun 05 22:51:47 -0700 2009 | |
| |
Rakefile | Sat Mar 07 03:56:05 -0800 2009 | |
| |
lib/ | Sun Oct 04 16:30:05 -0700 2009 | |
| |
rack-contrib.gemspec | Sun Oct 04 16:28:38 -0700 2009 | |
| |
test/ | Sun Oct 04 16:30:05 -0700 2009 |
README.rdoc
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::Signals - Installs signal handlers that are safely processed after a request
- Rack::StaticCache - Modifies the response headers to facilitiate client and proxy caching for static files that minimizes http requests and improves overall load times for second time visitors.
- 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.
- Rack::CSSHTTPRequest - Adds CSSHTTPRequest support by encoding responses as CSS for cross-site AJAX-style data loading
- Rack::Deflect - Helps protect against DoS attacks.
- Rack::ResponseCache - Caches responses to requests without query strings to Disk or a user provider Ruby object. Similar to Rails’ page caching.
- Rack::RelativeRedirect - Transforms relative paths in redirects to absolute URLs.
- Rack::Backstage - Returns content of specified file if it exists, which makes it convenient for putting up maintenance pages.
- Rack::AcceptFormat - Adds a format extension at the end of the URI when there is none, corresponding to the mime-type given in the Accept HTTP header.
- Rack::HostMeta - Configures /host-meta using a block
- Rack::Cookies - Adds simple cookie jar hash to env
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> |







