http_accept_language 2.0.5 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08549bc678f764b0ee83c4520257c29165e16cab
4
- data.tar.gz: 840fc4179bd28f157fd4eaf2d5feb4b0da2a2789
3
+ metadata.gz: 64deaf476a87d9192739905f051cd546124d358e
4
+ data.tar.gz: 5afdaecd6f46c4df2240ae700c0bd66bc131eba1
5
5
  SHA512:
6
- metadata.gz: 53ce0048473fcee968b6fca1f832b7422281a0cfabdedacfdab8abb081674049e17c9c04f784e649bc78bc4d93f72a26dc5362d78379367b61e7937e9208358d
7
- data.tar.gz: 2cc635241d1980aee9ef20e6997a6a235c9f674470e5b2c6f2b93a585fb9cd1e360e1fedc072fd1183fb40d5e72f31cc3adc2989f3dbc2e92cf1d12789b70720
6
+ metadata.gz: 077e921e1398f9925a8498c6bf0c77f54b65c8d7cf6082e77613da8f7599c07d732ef3610f965a276a6529c586e659542ba2c16dd28b04d8d42a9abd5df4fcc8
7
+ data.tar.gz: 99a4e05c30bc9102686dc890ac5acd63af862eeecfe679e96514aecdbdc6d7380a328c384eba2f8ecb00c32803cbba62d511e384b1b3b4df70f9629815790a48
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ cache: bundler
3
+ sudo: false
4
+ rvm:
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1
8
+ - 2.2
9
+ script: bundle exec rspec spec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # HttpAcceptLanguage
1
+ # HttpAcceptLanguage [![Build Status](https://travis-ci.org/iain/http_accept_language.svg?branch=master)](https://travis-ci.org/iain/http_accept_language)
2
2
 
3
3
  A gem which helps you detect the users preferred language, as sent by the "Accept-Language" HTTP header.
4
4
 
@@ -53,6 +53,12 @@ class ApplicationController < ActionController::Base
53
53
  end
54
54
  ```
55
55
 
56
+ Then set available locales in `config/application.rb`:
57
+
58
+ ```ruby
59
+ config.i18n.available_locales = %w(en nl de fr)
60
+ ```
61
+
56
62
  To use the middleware in any Rack application, simply add the middleware:
57
63
 
58
64
  ``` ruby
@@ -11,7 +11,7 @@ module HttpAcceptLanguage
11
11
  private
12
12
 
13
13
  def set_locale
14
- I18n.locale = http_accept_language.compatible_language_from(I18n.available_locales)
14
+ I18n.locale = http_accept_language.compatible_language_from(I18n.available_locales) || I18n.default_locale
15
15
  end
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module HttpAcceptLanguage
2
- VERSION = '2.0.5'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -6,19 +6,24 @@ require 'http_accept_language/middleware'
6
6
  describe HttpAcceptLanguage::AutoLocale do
7
7
  let(:controller_class) do
8
8
  Class.new do
9
+ def initialize(header = nil)
10
+ super()
11
+ @header = header
12
+ end
13
+
9
14
  def self.before_filter(dummy)
10
15
  # dummy method
11
16
  end
12
17
 
13
18
  def http_accept_language
14
- HttpAcceptLanguage::Parser.new("ja,en-us;q=0.7,en;q=0.3")
19
+ @http_accept_language ||= HttpAcceptLanguage::Parser.new(@header)
15
20
  end
16
21
 
17
22
  include HttpAcceptLanguage::AutoLocale
18
23
  end
19
24
  end
20
25
 
21
- let(:controller) { controller_class.new }
26
+ let(:controller) { controller_class.new("ja,en-us;q=0.7,en;q=0.3") }
22
27
 
23
28
  context "available languages includes accept_languages" do
24
29
  before do
@@ -31,4 +36,32 @@ describe HttpAcceptLanguage::AutoLocale do
31
36
  expect(I18n.locale).to eq(:ja)
32
37
  end
33
38
  end
39
+
40
+ context "available languages do not include accept_languages" do
41
+ before do
42
+ I18n.available_locales = [:es]
43
+ I18n.default_locale = :es
44
+ end
45
+
46
+ it "set the locale to default" do
47
+ no_accept_language_controller.send(:set_locale)
48
+
49
+ expect(I18n.locale).to eq(:es)
50
+ end
51
+ end
52
+
53
+ let(:no_accept_language_controller) { controller_class.new() }
54
+
55
+ context "default locale is ja" do
56
+ before do
57
+ I18n.available_locales = [:en, :ja]
58
+ I18n.default_locale = :ja
59
+ end
60
+
61
+ it "set the locale to default" do
62
+ no_accept_language_controller.send(:set_locale)
63
+
64
+ expect(I18n.locale).to eq(:ja)
65
+ end
66
+ end
34
67
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_accept_language
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-25 00:00:00.000000000 Z
11
+ date: 2016-10-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -118,6 +118,7 @@ extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
120
  - ".rspec"
121
+ - ".travis.yml"
121
122
  - Gemfile
122
123
  - Guardfile
123
124
  - README.md
@@ -156,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
157
  version: '0'
157
158
  requirements: []
158
159
  rubyforge_project: http_accept_language
159
- rubygems_version: 2.2.2
160
+ rubygems_version: 2.5.1
160
161
  signing_key:
161
162
  specification_version: 4
162
163
  summary: Find out which locale the user preferes by reading the languages they specified
@@ -168,4 +169,3 @@ test_files:
168
169
  - spec/auto_locale_spec.rb
169
170
  - spec/middleware_spec.rb
170
171
  - spec/parser_spec.rb
171
- has_rdoc: