Module: Rack::Acceptable::Headers

Included in:
Request
Defined in:
lib/rack/acceptable/mixin/headers.rb

Instance Method Summary collapse

Instance Method Details

#acceptable_charsetsObject

Returns

An Array with wildcards / downcased Charsets and associated quality factors (qvalues). Default qvalue is 1.0.

Raises

ArgumentError

Syntax of the Accept-Charset request-header is bad. For example, one of Charsets is not a ‘token’, one of quality factors is malformed etc.



36
37
38
39
40
41
42
43
# File 'lib/rack/acceptable/mixin/headers.rb', line 36

def acceptable_charsets
  Utils.parse_header(
    env[Const::ENV_HTTP_ACCEPT_CHARSET].to_s.downcase,
    Utils::HTTP_ACCEPT_TOKEN_REGEX)
rescue
  raise ArgumentError,
  "Malformed Accept-Charset header: #{env[Const::ENV_HTTP_ACCEPT_CHARSET].inspect}"
end

#acceptable_encodingsObject

Returns

An Array with wildcards / downcased Content-Codings and associated quality factors (qvalues). Default qvalue is 1.0.

Raises

ArgumentError

Syntax of the Accept-Encoding request-header is bad. For example, one of Content-Codings is not a ‘token’, one of quality factors is malformed etc.



17
18
19
20
21
22
23
24
# File 'lib/rack/acceptable/mixin/headers.rb', line 17

def acceptable_encodings
  Utils.parse_header(
    env[Const::ENV_HTTP_ACCEPT_ENCODING].to_s.downcase,
    Utils::HTTP_ACCEPT_TOKEN_REGEX)
rescue
  raise ArgumentError,
  "Malformed Accept-Encoding header: #{env[Const::ENV_HTTP_ACCEPT_ENCODING].inspect}"
end

#acceptable_language_rangesObject

Returns

An Array with wildcards / Language-Tags (as Strings) and associated quality factors (qvalues). Default qvalue is 1.0.

Raises

ArgumentError

Syntax of the Accept-Language request-header is bad. For example, one of Language-Ranges is not in a RFC ‘Language-Range’ pattern, one of quality factors is malformed etc.

Notes

  • It uses Extended Language-Range pattern.

  • It does not perform ‘convenient transformations’ (downcasing of primary tags etc). In other words, it parses Accept-Language header in unpretentious manner.



60
61
62
63
64
65
66
67
# File 'lib/rack/acceptable/mixin/headers.rb', line 60

def acceptable_language_ranges
  Utils.parse_header(
    env[Const::ENV_HTTP_ACCEPT_LANGUAGE].to_s,
    Utils::HTTP_ACCEPT_LANGUAGE_REGEX)
rescue
  raise ArgumentError,
  "Malformed Accept-Language header: #{env[Const::ENV_HTTP_ACCEPT_LANGUAGE].inspect}"
end

#acceptable_media_rangesObject

Returns

An Array with Media-Ranges (as Strings) / wildcards and associated qvalues. Default qvalue is 1.0.

Raises

ArgumentError

There’s a malformed qvalue in header.



77
78
79
80
81
82
# File 'lib/rack/acceptable/mixin/headers.rb', line 77

def acceptable_media_ranges
  Utils.extract_qvalues(env[Const::ENV_HTTP_ACCEPT].to_s)
rescue
  raise ArgumentError,
  "Malformed Accept header: #{env[Const::ENV_HTTP_ACCEPT].inspect}"
end