1+ require 'webmachine/constants'
12require 'webmachine/translation'
23require 'webmachine/media_type'
34
@@ -13,7 +14,7 @@ module Conneg
1314 # appropriate media type.
1415 # @api private
1516 def choose_media_type ( provided , header )
16- types = Array ( header ) . map { |h | h . split ( / \s *, \s */ ) } . flatten
17+ types = Array ( header ) . map { |h | h . split ( SPLIT_SEMI ) } . flatten
1718 requested = MediaTypeList . build ( types )
1819 provided = provided . map do |p | # normalize_provided
1920 MediaType . parse ( p )
@@ -31,9 +32,9 @@ def choose_media_type(provided, header)
3132 # @api private
3233 def choose_encoding ( provided , header )
3334 encodings = provided . keys
34- if encoding = do_choose ( encodings , header , "identity" )
35- response . headers [ 'Content-Encoding' ] = encoding unless encoding == 'identity'
36- metadata [ 'Content-Encoding' ] = encoding
35+ if encoding = do_choose ( encodings , header , IDENTITY )
36+ response . headers [ CONTENT_ENCODING ] = encoding unless encoding == IDENTITY
37+ metadata [ CONTENT_ENCODING ] = encoding
3738 end
3839 end
3940
@@ -44,7 +45,7 @@ def choose_charset(provided, header)
4445 if provided && !provided . empty?
4546 charsets = provided . map { |c | c . first }
4647 if charset = do_choose ( charsets , header , HAS_ENCODING ? Encoding . default_external . name : kcode_charset )
47- metadata [ 'Charset' ] = charset
48+ metadata [ CHARSET ] = charset
4849 end
4950 else
5051 true
@@ -56,8 +57,8 @@ def choose_charset(provided, header)
5657 # @api private
5758 def choose_language ( provided , header )
5859 if provided && !provided . empty?
59- requested = PriorityList . build ( header . split ( / \s *, \s */ ) )
60- star_priority = requested . priority_of ( "*" )
60+ requested = PriorityList . build ( header . split ( SPLIT_SEMI ) )
61+ star_priority = requested . priority_of ( STAR )
6162 any_ok = star_priority && star_priority > 0.0
6263 accepted = requested . find do |priority , range |
6364 if priority == 0.0
@@ -98,9 +99,9 @@ def language_match(range, tag)
9899 # @api private
99100 def do_choose ( choices , header , default )
100101 choices = choices . dup . map { |s | s . downcase }
101- accepted = PriorityList . build ( header . split ( / \s *, \s */ ) )
102+ accepted = PriorityList . build ( header . split ( SPLIT_SEMI ) )
102103 default_priority = accepted . priority_of ( default )
103- star_priority = accepted . priority_of ( "*" )
104+ star_priority = accepted . priority_of ( STAR )
104105 default_ok = ( default_priority . nil? && star_priority != 0.0 ) || default_priority
105106 any_ok = star_priority && star_priority > 0.0
106107 chosen = accepted . find do |priority , acceptable |
@@ -118,7 +119,7 @@ def do_choose(choices, header, default)
118119
119120 private
120121 # Matches acceptable items that include 'q' values
121- CONNEG_REGEX = /^\s *(\S +);\s *q=(\S *)\s *$/
122+ CONNEG_REGEX = /^\s *(\S +);\s *q=(\S *)\s *$/ . freeze
122123
123124 # Matches the requested media type (with potential modifiers)
124125 # against the provided types (with potential modifiers).
0 commit comments