Class Index [+]

Quicksearch

ActionDispatch::Http::MimeNegotiation

Public Instance Methods

accepts() click to toggle source

Returns the accepted MIME type for the request.

    # File lib/action_dispatch/http/mime_negotiation.rb, line 23
23:       def accepts
24:         @env["action_dispatch.request.accepts"] ||= begin
25:           header = @env['HTTP_ACCEPT'].to_s.strip
26: 
27:           if header.empty?
28:             [content_mime_type]
29:           else
30:             Mime::Type.parse(header)
31:           end
32:         end
33:       end
content_mime_type() click to toggle source

The MIME type of the HTTP request, such as Mime::XML.

For backward compatibility, the post format is extracted from the X-Post-Data-Format HTTP header if present.

    # File lib/action_dispatch/http/mime_negotiation.rb, line 8
 8:       def content_mime_type
 9:         @env["action_dispatch.request.content_type"] ||= begin
10:           if @env['CONTENT_TYPE'] =~ /^([^,\;]*)/
11:             Mime::Type.lookup($1.strip.downcase)
12:           else
13:             nil
14:           end
15:         end
16:       end
content_type() click to toggle source
    # File lib/action_dispatch/http/mime_negotiation.rb, line 18
18:       def content_type
19:         content_mime_type && content_mime_type.to_s
20:       end
format(view_path = []) click to toggle source

Returns the MIME type for the format used in the request.

  GET /posts/5.xml   | request.format => Mime::XML
  GET /posts/5.xhtml | request.format => Mime::HTML
  GET /posts/5       | request.format => Mime::HTML or MIME::JS, or request.accepts.first depending on the value of <tt>ActionController::Base.use_accept_header</tt>
    # File lib/action_dispatch/http/mime_negotiation.rb, line 41
41:       def format(view_path = [])
42:         formats.first
43:       end
format=(extension) click to toggle source

Sets the format by string extension, which can be used to force custom formats that are not controlled by the extension.

  class ApplicationController < ActionController::Base
    before_filter :adjust_format_for_iphone

    private
      def adjust_format_for_iphone
        request.format = :iphone if request.env["HTTP_USER_AGENT"][/iPhone/]
      end
  end
    # File lib/action_dispatch/http/mime_negotiation.rb, line 69
69:       def format=(extension)
70:         parameters[:format] = extension.to_s
71:         @env["action_dispatch.request.formats"] = [Mime::Type.lookup_by_extension(parameters[:format])]
72:       end
formats() click to toggle source
    # File lib/action_dispatch/http/mime_negotiation.rb, line 45
45:       def formats
46:         accept = @env['HTTP_ACCEPT']
47: 
48:         @env["action_dispatch.request.formats"] ||=
49:           if parameters[:format]
50:             Array(Mime[parameters[:format]])
51:           elsif xhr? || (accept && accept !~ /,\s*\*\/\*/)
52:             accepts
53:           else
54:             [Mime::HTML]
55:           end
56:       end
negotiate_mime(order) click to toggle source

Receives an array of mimes and return the first user sent mime that matches the order array.

    # File lib/action_dispatch/http/mime_negotiation.rb, line 77
77:       def negotiate_mime(order)
78:         formats.each do |priority|
79:           if priority == Mime::ALL
80:             return order.first
81:           elsif order.include?(priority)
82:             return priority
83:           end
84:         end
85: 
86:         order.include?(Mime::ALL) ? formats.first : nil
87:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.