class HTTP::Headers::Normalizer
Constants
- CANONICAL_NAME_RE
-
Matches
HTTP
header names when in “Canonical-Http-Format” - COMPLIANT_NAME_RE
-
Matches valid header field name according to RFC. @see tools.ietf.org/html/rfc7230#section-3.2
- NAME_PARTS_SEPARATOR_RE
Public Class Methods
Public Instance Methods
Source
# File lib/http/headers/normalizer.rb, line 43 def call(name) name = -name.to_s value = (@cache[name] ||= -normalize_header(name)) value.dup end
Transforms ‘name` to canonical HTTP
header capitalization
Private Instance Methods
Source
# File lib/http/headers/normalizer.rb, line 58 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
Transforms ‘name` to canonical HTTP
header capitalization
@param [String] name @raise [HeaderError] if normalized name does not
match {COMPLIANT_NAME_RE}
@return [String] canonical HTTP
header name