Skip to content
🔩 Utility to parse and sort the "Accept-Language" HTTP Header
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea 🔥 version 0.2.0 Feb 16, 2019
bin 👶 initial commit Feb 15, 2019
lib/http_headers 🐛 fix bug with private method call May 2, 2019
test 👶 initial commit Feb 15, 2019
.gitignore Ignore some files Feb 15, 2019
.travis.yml 👶 initial commit Feb 15, 2019
CHANGELOG.md 🐛 fix bug with private method call May 2, 2019
CODE_OF_CONDUCT.md 👶 initial commit Feb 15, 2019
Gemfile
Gemfile.lock 🐛 fix bug with private method call May 2, 2019
LICENSE.txt 👶 initial commit Feb 15, 2019
README.md Add related section Feb 16, 2019
Rakefile 👶 initial commit Feb 15, 2019
http_headers-accept_language.gemspec Move version into its own file Feb 16, 2019

README.md

HttpHeaders::AcceptLanguage

Build Status: master Gem Version MIT license

🔩 Utility to parse and sort the "Accept-Language" HTTP Header

Installation

Add this line to your application's Gemfile:

gem 'http_headers-accept_language'

And then execute:

$ bundle

Or install it yourself as:

$ gem install http_headers-accept_language

Usage

You can parse the "Accept-Language" header. As per the RFCs, you should really have one (delimited) value but the current implementation accepts an array of values.

require 'http_headers/accept_language'

parsed = HttpHeaders::AcceptLanguage.new('nl-NL, nl, en-US; q=0.4, en; q=0.1')
parsed.first.region
# => 'NL' 
parsed.last.q
# => 0.1
 
 
parsed = HttpHeaders::AcceptLanguage.new([
  'eo; q=0.1', 
  'es-ES; foo=bar, es-MX; q=0.9'
])
parsed.first[:foo]
# => bar
parsed.last.to_s
# => 'eo; q=0.1'
parsed[1].locale
# => 'es-MX' 

Each parsed entry has the following methods:

  • locale: the parsed locale
  • language: the language part of the locale
  • region: the region part of the locale
  • q: the quality parameter as float, or 1.0
  • [](parameter): accessor for the parameter; throws if it does not exist
  • to_s: encode back to an entry to be used in a Accept-Language header

Related

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at XPBytes/http_headers-accept.

You can’t perform that action at this time.