Skip to content
This repository
Newer
Older
100644 74 lines (59 sloc) 3.259 kb
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
1 = Contributed Rack Middleware and Utilities
2
3 This package includes a variety of add-on components for Rack, a Ruby web server
4 interface:
5
6 * Rack::ETag - Automatically sets the ETag header on all String bodies.
7 * Rack::JSONP - Adds JSON-P support by stripping out the callback param
8 and padding the response with the appropriate callback format.
9 * Rack::LighttpdScriptNameFix - Fixes how lighttpd sets the SCRIPT_NAME
10 and PATH_INFO variables in certain configurations.
11 * Rack::Locale - Detects the client locale using the Accept-Language request
12 header and sets a rack.locale variable in the environment.
13 * Rack::MailExceptions - Rescues exceptions raised from the app and
14 sends a useful email with the exception, stacktrace, and contents of the
15 environment.
86a2ced0 »
2009-01-14 Add Rack::NestedParams; based on Rails UrlEncodedPairParser
16 * Rack::NestedParams - parses form params with subscripts (e.g., * "post[title]=Hello")
17 into a nested/recursive Hash structure (based on Rails' implementation).
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
18 * Rack::PostBodyContentTypeParser - Adds support for JSON request bodies. The
19 Rack parameter hash is populated by deserializing the JSON data provided in
20 the request body when the Content-Type is application/json.
b1a4195a »
2008-12-31 Rack::ProcTitle - request status in $0
21 * Rack::ProcTitle - Displays request information in process title ($0) for
22 monitoring/inspection with ps(1).
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
23 * Rack::Profiler - Uses ruby-prof to measure request time.
24 * Rack::Sendfile - Enables X-Sendfile support for bodies that can be served
25 from file.
4d28e243 »
2009-02-07 Add Signals middleware
26 * Rack::Signals - Installs signal handlers that are safely processed after
27 a request
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
28 * Rack::TimeZone - Detects the clients timezone using JavaScript and sets
29 a variable in Rack's environment with the offset from UTC.
ec0fb58e »
2009-01-14 Add Rack::Callbacks. Example :
30 * Rack::Evil - Lets the rack application return a response to the client from any place.
31 * Rack::Callbacks - Implements DLS for pure before/after filter like Middlewares.
01533a8a »
2009-02-01 Add Rack::Config
32 * Rack::Config - Shared configuration for cooperative middleware.
31370b78 »
2009-02-02 Add Rack::NotFound
33 * Rack::NotFound - A default 404 application.
fe510efd »
2009-01-23 Add Rack::CSSHTTPRequest middleware
34 * Rack::CSSHTTPRequest - Adds CSSHTTPRequest support by encoding responses as
35 CSS for cross-site AJAX-style data loading
82951d3a »
2009-02-04 Added Rack::Deflect - DOS protection middleware
36 * Rack::Deflect - Helps protect against DoS attacks.
43a508f7 »
2009-02-08 Add Rack::RelativeRedirect
37 * Rack::ResponseCache - Caches responses to requests without query strings
38 to Disk or a user provider Ruby object. Similar to Rails' page caching.
39 * Rack::RelativeRedirect - Transforms relative paths in redirects to
40 absolute URLs.
3e1d5f2d »
2009-02-20 Rack::Backstage - maintenance page middleware
41 * Rack::Backstage - Returns content of specified file if it exists, which makes
42 it convenient for putting up maintenance pages.
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
43
44 === Use
45
46 Git is the quickest way to the rack-contrib sources:
47
b5218fe5 »
2008-12-31 README and gemspec update (project URL change, mostly)
48 git clone git://github.com/rack/rack-contrib.git
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
49
50 Gems are currently available from GitHub clones:
51
b5218fe5 »
2008-12-31 README and gemspec update (project URL change, mostly)
52 gem install rack-rack-contrib --source=http://gems.github.com/
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
53
54 Requiring 'rack/contrib' will add autoloads to the Rack modules for all of the
55 components included. The following example shows what a simple rackup
56 (+config.ru+) file might look like:
57
58 require 'rack'
59 require 'rack/contrib'
60
61 use Rack::Profiler if ENV['RACK_ENV'] == 'development'
62
63 use Rack::ETag
64 use Rack::MailExceptions
65
66 run theapp
67
68 === Links
69
b5218fe5 »
2008-12-31 README and gemspec update (project URL change, mostly)
70 rack-contrib on GitHub:: <http://github.com/rack/rack-contrib>
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
71 Rack:: <http://rack.rubyforge.org/>
b5218fe5 »
2008-12-31 README and gemspec update (project URL change, mostly)
72 Rack On GitHub:: <http://github.org/rack/rack>
3560ac04 »
2008-12-08 Flesh out README a bit; rename to README.rdoc
73 rack-devel mailing list:: <http://groups.google.com/group/rack-devel>
Something went wrong with that request. Please try again.