Module: Philiprehberger::HeaderKit::AcceptEncoding

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

Overview

Parses Accept-Encoding headers into structured encoding entries with quality values.

Constant Summary collapse

QUALITY_PATTERN =
/\Aq\z/i

Class Method Summary collapse

Class Method Details

.parse(header) ⇒ Array<Hash>

Parse an Accept-Encoding header string.

Parameters:

  • header (String)

    the Accept-Encoding header value

Returns:

  • (Array<Hash>)

    sorted by quality descending, each with :encoding, :quality



13
14
15
16
17
18
# File 'lib/philiprehberger/header_kit/accept_encoding.rb', line 13

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