Module: Philiprehberger::LocaleKit::AcceptLanguage
- Defined in:
- lib/philiprehberger/locale_kit/accept_language.rb
Overview
Parses HTTP Accept-Language headers into structured locale/quality pairs.
Handles the full Accept-Language syntax as defined in RFC 7231:
Accept-Language: en-US,en;q=0.9,zh-Hant;q=0.8,*;q=0.1
Class Method Summary collapse
-
.parse(header) ⇒ Array<Hash>
Parses an Accept-Language header string.
Class Method Details
.parse(header) ⇒ Array<Hash>
Parses an Accept-Language header string.
16 17 18 19 20 21 22 23 |
# File 'lib/philiprehberger/locale_kit/accept_language.rb', line 16 def self.parse(header) raise ArgumentError, "header must be a String, got: #{header.class}" unless header.is_a?(String) return [] if header.strip.empty? entries = header.split(',').filter_map { |part| parse_entry(part.strip) } entries.sort_by { |e| [-e[:quality], entries.index(e)] } end |