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 +4 -4
- data/.travis.yml +9 -0
- data/README.md +7 -1
- data/lib/http_accept_language/auto_locale.rb +1 -1
- data/lib/http_accept_language/version.rb +1 -1
- data/spec/auto_locale_spec.rb +35 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64deaf476a87d9192739905f051cd546124d358e
|
4
|
+
data.tar.gz: 5afdaecd6f46c4df2240ae700c0bd66bc131eba1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 077e921e1398f9925a8498c6bf0c77f54b65c8d7cf6082e77613da8f7599c07d732ef3610f965a276a6529c586e659542ba2c16dd28b04d8d42a9abd5df4fcc8
|
7
|
+
data.tar.gz: 99a4e05c30bc9102686dc890ac5acd63af862eeecfe679e96514aecdbdc6d7380a328c384eba2f8ecb00c32803cbba62d511e384b1b3b4df70f9629815790a48
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# HttpAcceptLanguage
|
1
|
+
# HttpAcceptLanguage [](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
|
data/spec/auto_locale_spec.rb
CHANGED
@@ -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(
|
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
|
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:
|
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.
|
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:
|