i18n_strategy 0.0.2 → 0.0.3

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: e0610e8edc1c6552d8556bf0b54885ec77e8606c
4
- data.tar.gz: c03f6f08627db8d606ebf08f823f00b8d30fedb8
3
+ metadata.gz: b9fc1d2a94f64ccd3870735db85194c5f9e5a8a3
4
+ data.tar.gz: 7df0d69f52325135fb136c69293c932a249032b6
5
5
  SHA512:
6
- metadata.gz: 5e76b93fe160582906aa17b487ecf6bd72b4d8b3a17c72568dabcd9e6a6d1ab5f3693f3080cce3130d209f96337cfd3c3a29eaad7c68fec07e5afc7ddebf65ce
7
- data.tar.gz: 66cc05e927d31f48a1856c63c9d9a3fe489c42abccefba2143379bfd429481f0caa90d039a47ab373e669ec6939edc0de062ea1a3eadffb39d40fb254625dfe0
6
+ metadata.gz: cebe8451beb95867607626687ff5c5c97c1cc6b6985d3e6b3ae0fac6af432c473670fe92bef5ab0147eb60cd0bb5d2a80c833afbf889f6f05e80c31d1a5151e4
7
+ data.tar.gz: ceda354a65cec73626d7f62cf85e50949bc750c11b0e5b07df8744b142a8147dcf7bffeafb422f9b62769ac4cf1b742ac00945d5cfabfa72765fc3d7ee0cd1da
@@ -3,7 +3,7 @@ module I18nStrategy
3
3
 
4
4
  class Initializer
5
5
  def self.init(app)
6
- I18nStrategy.strategy ||= I18nStrategy::Strategy::Default
6
+ I18nStrategy.strategy ||= I18nStrategy::Strategy
7
7
 
8
8
  ActiveSupport.on_load(:action_controller) do
9
9
  ActionController::Base.send(:include, Filter)
@@ -2,20 +2,18 @@ require 'http_accept_language/parser'
2
2
 
3
3
  module I18nStrategy
4
4
  module Strategy
5
- module Default
6
- def detect_locale
7
- lang = nil
8
- available = I18nStrategy.available_languages || []
5
+ def detect_locale
6
+ lang = nil
7
+ available = I18nStrategy.available_languages || []
9
8
 
10
- if params[:locale] && available.include?(params[:locale])
11
- lang = params[:locale]
12
- else
13
- parser = HttpAcceptLanguage::Parser.new(request.env['HTTP_ACCEPT_LANGUAGE'])
14
- lang = parser.preferred_language_from(available)
15
- end
16
-
17
- lang || I18n.default_locale
9
+ if params[:locale] && available.include?(params[:locale])
10
+ lang = params[:locale]
11
+ else
12
+ parser = HttpAcceptLanguage::Parser.new(request.env['HTTP_ACCEPT_LANGUAGE'])
13
+ lang = parser.preferred_language_from(available)
18
14
  end
15
+
16
+ lang || I18n.default_locale
19
17
  end
20
18
  end
21
19
  end
@@ -1,3 +1,3 @@
1
1
  module I18nStrategy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe RootController do
4
4
  before {
5
- I18nStrategy.strategy = I18nStrategy::Strategy::Default
5
+ I18nStrategy.strategy = I18nStrategy::Strategy
6
6
  I18nStrategy.available_languages = %w[en ja fr]
7
7
  }
8
8
 
@@ -15,43 +15,69 @@ describe RootController do
15
15
  }
16
16
  end
17
17
 
18
- context 'with preferred language' do
19
- context 'en' do
20
- before {
21
- request.env['HTTP_ACCEPT_LANGUAGE'] = 'en'
22
- get :index
23
- }
18
+ context 'with preferred language from HTTP header' do
19
+ context 'and it is valid' do
20
+ context 'en (default language)' do
21
+ before {
22
+ request.env['HTTP_ACCEPT_LANGUAGE'] = 'en'
23
+ get :index
24
+ }
25
+
26
+ it {
27
+ expect(response.body).to be == 'en'
28
+ }
29
+ end
24
30
 
25
- it {
26
- expect(response.body).to be == 'en'
27
- }
31
+ context 'ja' do
32
+ before {
33
+ request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
34
+ get :index
35
+ }
36
+
37
+ it {
38
+ expect(response.body).to be == 'ja'
39
+ }
40
+ end
28
41
  end
29
42
 
30
- context 'ja' do
31
- before {
32
- request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
33
- get :index
34
- }
43
+ context 'and it is valid' do
44
+ before {
45
+ request.env['HTTP_ACCEPT_LANGUAGE'] = 'no_such_language'
46
+ get :index
47
+ }
35
48
 
36
- it {
37
- expect(response.body).to be == 'ja'
38
- }
49
+ it {
50
+ expect(response.body).to be == 'en'
51
+ }
39
52
  end
40
53
  end
41
54
 
42
55
  context 'with preferred language from query param' do
43
- context 'with valid language' do
44
- before {
45
- request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
46
- get :index, :locale => 'fr'
47
- }
56
+ context 'and it is valid' do
57
+ context 'en (default language)' do
58
+ before {
59
+ request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
60
+ get :index, :locale => 'en'
61
+ }
62
+
63
+ it {
64
+ expect(response.body).to be == 'en'
65
+ }
66
+ end
48
67
 
49
- it {
50
- expect(response.body).to be == 'fr'
51
- }
68
+ context 'fr' do
69
+ before {
70
+ request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
71
+ get :index, :locale => 'fr'
72
+ }
73
+
74
+ it {
75
+ expect(response.body).to be == 'fr'
76
+ }
77
+ end
52
78
  end
53
79
 
54
- context 'with invalid language' do
80
+ context 'and it is invalid' do
55
81
  before {
56
82
  request.env['HTTP_ACCEPT_LANGUAGE'] = 'ja'
57
83
  get :index, :locale => 'no_such_language'
@@ -74,9 +100,12 @@ describe RootController do
74
100
  end
75
101
  end
76
102
 
103
+ before {
104
+ I18nStrategy.strategy = MyStrategy
105
+ }
106
+
77
107
  context 'with no preferred method' do
78
108
  before {
79
- I18nStrategy.strategy = MyStrategy
80
109
  get :index
81
110
  }
82
111
 
@@ -87,7 +116,6 @@ describe RootController do
87
116
 
88
117
  context 'with preferred method' do
89
118
  before {
90
- I18nStrategy.strategy = MyStrategy
91
119
  I18nStrategy.method_to_detect_locale = :another_detect_locale
92
120
  get :index
93
121
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_strategy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaro Kuribayashi