Module: Philiprehberger::Etag::Parser

Defined in:
lib/philiprehberger/etag/parser.rb

Overview

Parses ETag header values into structured data.

Class Method Summary collapse

Class Method Details

.parse(header) ⇒ Hash+

Parses an ETag header value into a hash or array of hashes. Handles single ETags, comma-separated lists, weak validators, and quoted strings.

Parameters:

  • header (String)

    the ETag header value

Returns:

  • (Hash, Array<Hash>)

    a hash with :weak and :value keys, or an array of such hashes for multi-value headers



13
14
15
16
17
18
19
20
# File 'lib/philiprehberger/etag/parser.rb', line 13

def self.parse(header)
  return { weak: false, value: '' } if header.nil? || header.strip.empty?

  etags = split_etags(header)
  parsed = etags.map { |raw| parse_single(raw) }

  parsed.length == 1 ? parsed.first : parsed
end