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 | Fri May 22 09:50:41 -0700 2009 | |
| |
LICENSE | Thu May 21 18:42:15 -0700 2009 | |
| |
README | Tue Jun 09 12:52:56 -0700 2009 | |
| |
Rakefile | Tue Jun 09 12:54:11 -0700 2009 | |
| |
TODO | Tue Jun 09 12:52:56 -0700 2009 | |
| |
examples/ | Tue Jun 09 08:20:37 -0700 2009 | |
| |
lib/ | Tue Jun 09 12:52:56 -0700 2009 | |
| |
rack-respond_to.gemspec | Tue Jun 09 12:54:11 -0700 2009 | |
| |
test/ | Tue Jun 09 12:33:50 -0700 2009 |
README
===== Summary Rack convenience middleware that allows triggering different actions based on requested media type. Standalone version of the equivalent Rails functionality. RespondTo gets the requested media type from the Accept header, which contains a list of media types accepted/requested by the client, ordered by level of preference (see http://github.com/mynyml/rack-accept-media-types). ===== Features * Based on familiar API (Rails) * Cascades down priority list of accepted media types * Handles wildcard media types * Simple to use * Simple code (~50 LOCs) * Flexible (standalone use) * Decently documented (examples/ dir, source docs/rdocs) * Compatible with other media type handling middleware (uses Rack::AcceptMediaTypes) ===== Installation sudo gem install mynyml-rack-respond_to --source=http://gems.github.com/ ===== Example require 'rubygems' require 'rack' require 'rack/respond_to' class App include Rack::RespondTo def call(env) # Pass in the env, and RespondTo will retrieve the requested media types Rack::RespondTo.env = env # Alternatively, to use standalone you can also assign the media types # directly (this will take precedence over the env) #Rack::RespondTo.media_types = ['text/html'] body = respond_to do |format| format.html { '<em>html</em>' } format.xml { '<body>xml</body>' } end [200, {'Content-Type' => Rack::RespondTo.selected_media_type}, [body]] end end run App.new See examples/simple_app.ru for an executable example. ===== Tips Use together with Rack::AbstractFormat to respond to routes based on url extensions. For example, if you want <tt>example.com/foo.xml</tt> to trigger the <tt>format.xml</tt> block (Rack::AbstractFormat moves the extension's media type into HTTP_ACCEPT and makes it the highest ranked). sudo gem install mynyml-rack-abstract-format --source=http://gems.github.com/ See examples/recommended_use.ru for a complete example. ===== Links source:: http://github.com/mynyml/rack-respond_to rdocs:: http://docs.github.com/mynyml/rack-respond_to







