class AcceptHeaders::Language::Negotiator
Constants
- HEADER_PREFIX
- LANGUAGE_TAG_PATTERN
Public Instance Methods
negotiate(supported)
click to toggle source
Calls superclass method
AcceptHeaders::Negotiatable#negotiate
# File lib/accept_headers/language/negotiator.rb, line 12 def negotiate(supported) support, match = super(supported) return nil if support.nil? && match.nil? begin return parse(support).first rescue Language::Error return nil end end
Private Instance Methods
no_header()
click to toggle source
# File lib/accept_headers/language/negotiator.rb, line 23 def no_header [Language.new] end
parse_item(header)
click to toggle source
# File lib/accept_headers/language/negotiator.rb, line 27 def parse_item(header) return nil if header.nil? header.strip! language_string, q_string = header.split(';', 2) raise Error if language_string.nil? language_range = LANGUAGE_TAG_PATTERN.match(language_string) raise Error if language_range.nil? Language.new( language_range[:primary_tag], language_range[:subtag], q: parse_q(q_string) ) end