Module: Philiprehberger::HeaderKit::Accept

Defined in:
lib/philiprehberger/header_kit/accept.rb

Overview

Parses Accept headers into structured media type entries with quality values.

Each entry contains the media type, a quality factor (0.0-1.0), and any additional parameters from the header.

Constant Summary collapse

QUALITY_PATTERN =
/\Aq\z/i

Class Method Summary collapse

Class Method Details

.parse(header) ⇒ Array<Hash>

Parse an Accept header string.

Parameters:

  • header (String)

    the Accept header value

Returns:

  • (Array<Hash>)

    sorted by quality descending, each with :type, :quality, :params



16
17
18
19
20
21
# File 'lib/philiprehberger/header_kit/accept.rb', line 16

def self.parse(header)
  return [] if header.nil? || header.strip.empty?

  entries = header.split(',').map { |entry| parse_entry(entry.strip) }
  entries.compact.sort_by { |e| [-e[:quality], entries.index(e)] }
end