You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Strips the extension from the requested path (env['PATH_INFO']), casts it to
media type, and prepends it to env['HTTP_ACCEPT']. This allows dealing with path
information separately from format information, which are often different
concerns.
This is especially useful when dealing with routes as it allows a resource to
always point to the same action independently of the requested format.
Install
gem install rack-abstract-format
Usage
require 'rack'
require 'rack/abstract_format'
use Rack::AbstractFormat
run app
The request:
GET /path/resource.xml
Accept: text/html
will become:
GET /path/resource
env['HTTP_ACCEPT'] #=> 'application/xml,text/html'
AbstractFormat also accepts an optional argument, used to set the default
format that should be assumed when none is specified on the URL:
use Rack::AbstractFormat, 'text/html'
#=> GET /path/resource # requested
#=> GET /path/resource.html # assumed
Tip
The abstracted media type can then be easily retrieved with the
Rack::AcceptMediaTypes convenience middleware, which parses env['HTTP_ACCEPT'].