http_accept_language 2.0.5 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![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
|
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:
|