class HttpHeaders::AcceptLanguage::Entry

Constants

DELIMITER

Attributes

index[RW]
language[RW]
locale[RW]
parameters[RW]
region[RW]

Public Class Methods

new(locale, index:, parameters:) click to toggle source
# File lib/http_headers/accept_language.rb, line 16
def initialize(locale, index:, parameters:)
  self.locale = locale
  # TODO: support extlang correctly, maybe we don't even need this
  self.language, self.region = locale.split(DELIMITER)
  self.parameters = parameters
  self.index = index

  freeze
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/http_headers/accept_language.rb, line 31
def <=>(other)
  quality = other.q <=> q
  return quality unless quality.zero?
  index <=> other.send(:index)
end
[](parameter) click to toggle source
# File lib/http_headers/accept_language.rb, line 37
def [](parameter)
  parameters.fetch(String(parameter).to_sym)
end
q() click to toggle source

noinspection RubyInstanceMethodNamingConvention

# File lib/http_headers/accept_language.rb, line 27
def q
  parameters.fetch(:q) { 1.0 }.to_f
end
to_header() click to toggle source
# File lib/http_headers/accept_language.rb, line 41
def to_header
  to_s
end
to_s() click to toggle source
# File lib/http_headers/accept_language.rb, line 45
def to_s
  [locale].concat(parameters.map { |k, v| "#{k}=#{v}" }).compact.reject(&:empty?).join('; ')
end