diff --git a/CHANGES b/CHANGES index 31ab05f2..866944ce 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,9 @@ classic style) than `Sinatra::Application` by setting `Delegator.target`. This was mainly introduced to ease testing. (Konstantin Haase) + * Added `request.accept?` and `request.preferred_type` to ease dealing with + `Accept` headers. (Konstantin Haase) + = 1.2.2 / Not Yet Released * The `:provides => :js` condition now matches both `application/javascript` diff --git a/README.rdoc b/README.rdoc index 703d674e..eb952c88 100644 --- a/README.rdoc +++ b/README.rdoc @@ -1099,29 +1099,33 @@ error handlers) through the request method: # app running on http://example.com/example get '/foo' do - request.body # request body sent by the client (see below) - request.scheme # "http" - request.script_name # "/example" - request.path_info # "/foo" - request.port # 80 - request.request_method # "GET" - request.query_string # "" - request.content_length # length of request.body - request.media_type # media type of request.body - request.host # "example.com" - request.get? # true (similar methods for other verbs) - request.form_data? # false - request["SOME_HEADER"] # value of SOME_HEADER header - request.referrer # the referrer of the client or '/' - request.user_agent # user agent (used by :agent condition) - request.cookies # hash of browser cookies - request.xhr? # is this an ajax request? - request.url # "http://example.com/example/foo" - request.path # "/example/foo" - request.ip # client IP address - request.secure? # false (would be true over ssl) - request.forwarded? # true (if running behind a reverse proxy) - request.env # raw env hash handed in by Rack + t = %w[text/css text/html application/javascript] + request.accept # ['text/html', '*/*'] + request.accept? 'text/xml' # true + request.preferred_type(t) # 'text/html' + request.body # request body sent by the client (see below) + request.scheme # "http" + request.script_name # "/example" + request.path_info # "/foo" + request.port # 80 + request.request_method # "GET" + request.query_string # "" + request.content_length # length of request.body + request.media_type # media type of request.body + request.host # "example.com" + request.get? # true (similar methods for other verbs) + request.form_data? # false + request["SOME_HEADER"] # value of SOME_HEADER header + request.referrer # the referrer of the client or '/' + request.user_agent # user agent (used by :agent condition) + request.cookies # hash of browser cookies + request.xhr? # is this an ajax request? + request.url # "http://example.com/example/foo" + request.path # "/example/foo" + request.ip # client IP address + request.secure? # false (would be true over ssl) + request.forwarded? # true (if running behind a reverse proxy) + request.env # raw env hash handed in by Rack end Some options, like script_name or path_info, can also be