Module: Rack::Acceptable::Headers
- Included in:
- Request
- Defined in:
- lib/rack/acceptable/mixin/headers.rb
Instance Method Summary collapse
-
#acceptable_charsets ⇒ Object
Returns An Array with wildcards / downcased Charsets and associated quality factors (qvalues).
-
#acceptable_encodings ⇒ Object
Returns An Array with wildcards / downcased Content-Codings and associated quality factors (qvalues).
-
#acceptable_language_ranges ⇒ Object
Returns An Array with wildcards / Language-Tags (as
Strings) and associated quality factors (qvalues). -
#acceptable_media_ranges ⇒ Object
Returns An Array with Media-Ranges (as
Strings) / wildcards and associated qvalues.
Instance Method Details
#acceptable_charsets ⇒ Object
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_encodings ⇒ Object
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_ranges ⇒ Object
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_ranges ⇒ Object
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 |