class HTTP::Headers::Normalizer
def call(name)
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)
-
(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