Class Rack::Accept::Language
In: lib/rack/accept/language.rb
Parent: Object

Represents an HTTP Accept-Language header according to the HTTP 1.1 specification, and provides several convenience methods for determining acceptable content languages.

www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4

Methods

matches   name   qvalue  

Included Modules

Header

Public Instance methods

Returns an array of languages from this header that match the given language, ordered by precedence.

[Source]

    # File lib/rack/accept/language.rb, line 25
25:     def matches(language)
26:       values.select {|v|
27:         v == language || v == '*' || (language.match(/^(.+?)-/) && v == $1)
28:       }.sort {|a, b|
29:         # "*" gets least precedence, any others are compared based on length.
30:         a == '*' ? -1 : (b == '*' ? 1 : a.length <=> b.length)
31:       }.reverse
32:     end

The name of this header.

[Source]

    # File lib/rack/accept/language.rb, line 11
11:     def name
12:       'Accept-Language'
13:     end

Determines the quality factor (qvalue) of the given language.

[Source]

    # File lib/rack/accept/language.rb, line 16
16:     def qvalue(language)
17:       return 1 if @qvalues.empty?
18:       m = matches(language)
19:       return 0 if m.empty?
20:       normalize_qvalue(@qvalues[m.first])
21:     end

[Validate]