class HTTP::Headers::Normalizer

def call(name)

Transforms `name` to canonical HTTP header capitalization
def call(name)
  name  = -name.to_s
  value = (@cache[name] ||= -normalize_header(name))
  value.dup
end

def initialize

def initialize
  @cache = Cache.new
end

def normalize_header(name)

Returns:
  • (String) - canonical HTTP header name

Raises:
  • (HeaderError) - if normalized name does not

Parameters:
  • name (String) --
def normalize_header(name)
  return name if CANONICAL_NAME_RE.match?(name)
  normalized = name.split(NAME_PARTS_SEPARATOR_RE).each(&:capitalize!).join("-")
  return normalized if COMPLIANT_NAME_RE.match?(normalized)
  raise HeaderError, "Invalid HTTP header field name: #{name.inspect}"
end