rails_locale_detection 1.0.0 → 1.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.
data/Gemfile CHANGED
@@ -9,8 +9,8 @@ gem 'http_accept_language'
9
9
  group :development do
10
10
  gem 'i18n'
11
11
  gem 'timecop'
12
- gem 'actionpack', '~> 3.1.1'
13
- gem 'activesupport', '~> 3.1.1'
12
+ gem 'actionpack', '~> 3.2.2'
13
+ gem 'activesupport', '~> 3.2.2'
14
14
  gem "rspec", "~> 2.3.0"
15
15
  gem "bundler", "~> 1.0.0"
16
16
  gem "jeweler", "~> 1.6.4"
data/Gemfile.lock CHANGED
@@ -1,22 +1,21 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- actionpack (3.1.3)
5
- activemodel (= 3.1.3)
6
- activesupport (= 3.1.3)
4
+ actionpack (3.2.3)
5
+ activemodel (= 3.2.3)
6
+ activesupport (= 3.2.3)
7
7
  builder (~> 3.0.0)
8
8
  erubis (~> 2.7.0)
9
- i18n (~> 0.6)
10
- rack (~> 1.3.5)
11
- rack-cache (~> 1.1)
12
- rack-mount (~> 0.8.2)
9
+ journey (~> 1.0.1)
10
+ rack (~> 1.4.0)
11
+ rack-cache (~> 1.2)
13
12
  rack-test (~> 0.6.1)
14
- sprockets (~> 2.0.3)
15
- activemodel (3.1.3)
16
- activesupport (= 3.1.3)
13
+ sprockets (~> 2.1.2)
14
+ activemodel (3.2.3)
15
+ activesupport (= 3.2.3)
17
16
  builder (~> 3.0.0)
17
+ activesupport (3.2.3)
18
18
  i18n (~> 0.6)
19
- activesupport (3.1.3)
20
19
  multi_json (~> 1.0)
21
20
  builder (3.0.0)
22
21
  diff-lcs (1.1.3)
@@ -29,12 +28,11 @@ GEM
29
28
  bundler (~> 1.0)
30
29
  git (>= 1.2.5)
31
30
  rake
32
- multi_json (1.0.3)
33
- rack (1.3.5)
34
- rack-cache (1.1)
31
+ journey (1.0.3)
32
+ multi_json (1.3.5)
33
+ rack (1.4.1)
34
+ rack-cache (1.2)
35
35
  rack (>= 0.4)
36
- rack-mount (0.8.3)
37
- rack (>= 1.0.0)
38
36
  rack-test (0.6.1)
39
37
  rack (>= 1.0)
40
38
  rake (0.9.2.2)
@@ -47,10 +45,10 @@ GEM
47
45
  rspec-expectations (2.3.0)
48
46
  diff-lcs (~> 1.1.2)
49
47
  rspec-mocks (2.3.0)
50
- sprockets (2.0.3)
48
+ sprockets (2.1.3)
51
49
  hike (~> 1.2)
52
50
  rack (~> 1.0)
53
- tilt (~> 1.1, != 1.3.0)
51
+ tilt (!= 1.3.0, ~> 1.1)
54
52
  tilt (1.3.3)
55
53
  timecop (0.3.5)
56
54
 
@@ -58,8 +56,8 @@ PLATFORMS
58
56
  ruby
59
57
 
60
58
  DEPENDENCIES
61
- actionpack (~> 3.1.1)
62
- activesupport (~> 3.1.1)
59
+ actionpack (~> 3.2.2)
60
+ activesupport (~> 3.2.2)
63
61
  bundler (~> 1.0.0)
64
62
  http_accept_language
65
63
  i18n
data/README.rdoc CHANGED
@@ -23,6 +23,15 @@ Call set_locale as a filter in your controllers
23
23
 
24
24
  end
25
25
 
26
+ == Configuration
27
+
28
+ There are two configuration options:
29
+
30
+ Rails::LocaleDetection.config do |config|
31
+ config.locale_expiry = 3.months # This sets how long the locale cookie lasts.
32
+ config.set_default_url_option = true # sets the default_url_options[:locale] to the current locale when set_locale is called
33
+ end
34
+
26
35
  == Contributing to rails_locale_detection
27
36
 
28
37
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
@@ -35,6 +44,6 @@ Call set_locale as a filter in your controllers
35
44
 
36
45
  == Copyright
37
46
 
38
- Copyright (c) 2011 Mateo Murphy. See LICENSE.txt for
47
+ Copyright (c) 2012 Mateo Murphy. See LICENSE.txt for
39
48
  further details.
40
49
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
@@ -3,6 +3,13 @@ module Rails
3
3
  mattr_accessor :locale_expiry
4
4
  @@locale_expiry = 3.months
5
5
 
6
+ mattr_accessor :set_default_url_option
7
+ @@set_default_url_option = true
8
+
9
+ def self.config
10
+ yield self
11
+ end
12
+
6
13
  def available_locales
7
14
  I18n.available_locales
8
15
  end
@@ -35,7 +42,9 @@ module Rails
35
42
  # set I18n.locale, default_url_options[:locale] and cookies[:locale] to the value returned by
36
43
  # get_locale
37
44
  def set_locale
38
- default_url_options[:locale] = I18n.locale = get_locale
45
+ I18n.locale = get_locale
46
+
47
+ default_url_options[:locale] = I18n.locale if set_default_url_option
39
48
 
40
49
  cookies[:locale] = { :value => I18n.locale, :expires => locale_expiry.from_now }
41
50
 
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{rails_locale_detection}
8
- s.version = "1.0.0"
7
+ s.name = "rails_locale_detection"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mateo Murphy"]
12
- s.date = %q{2011-12-16}
13
- s.description = %q{Sets the current locale of a request using a combination of params, cookies, and http headers}
14
- s.email = %q{mateo.murphy@gmail.com}
12
+ s.date = "2012-05-26"
13
+ s.description = "Sets the current locale of a request using a combination of params, cookies, and http headers"
14
+ s.email = "mateo.murphy@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -32,11 +32,11 @@ Gem::Specification.new do |s|
32
32
  "spec/spec_helper.rb",
33
33
  "spec/support/mock.rb"
34
34
  ]
35
- s.homepage = %q{http://github.com/mateomurphy/rails_locale_detection}
35
+ s.homepage = "http://github.com/mateomurphy/rails_locale_detection"
36
36
  s.licenses = ["MIT"]
37
37
  s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.5.2}
39
- s.summary = %q{locale setting for rails project}
38
+ s.rubygems_version = "1.8.21"
39
+ s.summary = "locale setting for rails project"
40
40
 
41
41
  if s.respond_to? :specification_version then
42
42
  s.specification_version = 3
@@ -45,8 +45,8 @@ Gem::Specification.new do |s|
45
45
  s.add_runtime_dependency(%q<http_accept_language>, [">= 0"])
46
46
  s.add_development_dependency(%q<i18n>, [">= 0"])
47
47
  s.add_development_dependency(%q<timecop>, [">= 0"])
48
- s.add_development_dependency(%q<actionpack>, ["~> 3.1.1"])
49
- s.add_development_dependency(%q<activesupport>, ["~> 3.1.1"])
48
+ s.add_development_dependency(%q<actionpack>, ["~> 3.2.2"])
49
+ s.add_development_dependency(%q<activesupport>, ["~> 3.2.2"])
50
50
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
51
51
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
52
52
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -55,8 +55,8 @@ Gem::Specification.new do |s|
55
55
  s.add_dependency(%q<http_accept_language>, [">= 0"])
56
56
  s.add_dependency(%q<i18n>, [">= 0"])
57
57
  s.add_dependency(%q<timecop>, [">= 0"])
58
- s.add_dependency(%q<actionpack>, ["~> 3.1.1"])
59
- s.add_dependency(%q<activesupport>, ["~> 3.1.1"])
58
+ s.add_dependency(%q<actionpack>, ["~> 3.2.2"])
59
+ s.add_dependency(%q<activesupport>, ["~> 3.2.2"])
60
60
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
61
61
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
62
62
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -66,8 +66,8 @@ Gem::Specification.new do |s|
66
66
  s.add_dependency(%q<http_accept_language>, [">= 0"])
67
67
  s.add_dependency(%q<i18n>, [">= 0"])
68
68
  s.add_dependency(%q<timecop>, [">= 0"])
69
- s.add_dependency(%q<actionpack>, ["~> 3.1.1"])
70
- s.add_dependency(%q<activesupport>, ["~> 3.1.1"])
69
+ s.add_dependency(%q<actionpack>, ["~> 3.2.2"])
70
+ s.add_dependency(%q<activesupport>, ["~> 3.2.2"])
71
71
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
72
72
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
73
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
@@ -1,5 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
+ I18n.default_locale = :en
3
4
  I18n.available_locales = [:en, :fr]
4
5
  Timecop.freeze
5
6
 
@@ -8,119 +9,145 @@ describe Rails::LocaleDetection do
8
9
  let(:controller) { MockController.new(request) }
9
10
 
10
11
  describe '.locale_expiry' do
11
- it "should be set to 3 months be default" do
12
- Rails::LocaleDetection.locale_expiry.should eq(3.months)
12
+ it "is set to 3 months by default" do
13
+ Rails::LocaleDetection.config do |c|
14
+ c.locale_expiry.should eq(3.months)
15
+ end
13
16
  end
14
17
  end
15
18
 
16
19
  describe '#available_locales' do
17
- it "should shadow I18n available_locales" do
20
+ it "shadows I18n.available_locales" do
18
21
  controller.available_locales.should eq([:en, :fr])
19
22
  end
20
23
  end
21
24
 
22
25
  describe '#default_locale' do
23
- it "should shadow I18n default locale" do
24
- I18n.default_locale = :en
26
+ it "shadows I18n.default locale" do
25
27
  controller.default_locale.should eq(:en)
26
28
  end
27
29
  end
28
30
 
29
31
  describe '#validate_locale' do
30
- it "should return the passed locale if it's valid" do
32
+ it "returns the passed locale if it's valid" do
31
33
  controller.validate_locale(:en).should eq(:en)
32
34
  end
33
35
 
34
- it "should return nil if the passed locale isn't valid" do
36
+ it "returns nil if the passed locale isn't valid" do
35
37
  controller.validate_locale(:es).should be_nil
36
38
  end
37
39
  end
38
40
 
39
41
  describe '#locale_from_param' do
40
- it "should return en if the param set was valid" do
42
+ it "returns en if the param set was valid" do
41
43
  controller.params[:locale] = 'en'
42
44
  controller.locale_from_param.should eq(:en)
43
45
  end
44
46
 
45
- it "should return nil if the param set was not" do
47
+ it "returns nil if the param set was not" do
46
48
  controller.params[:locale] = 'es'
47
49
  controller.locale_from_param.should be_nil
48
50
  end
49
51
 
50
- it "should return nil if not locale was set" do
52
+ it "returns nil if not locale was set" do
51
53
  controller.locale_from_param.should be_nil
52
54
  end
53
55
  end
54
56
 
55
57
  describe '#locale_from_cookie' do
56
- it "should return en if the param set was valid" do
58
+ it "returns en if the param set was valid" do
57
59
  controller.cookies[:locale] = 'en'
58
60
  controller.locale_from_cookies.should eq(:en)
59
61
  end
60
62
 
61
- it "should return nil if the param set was not" do
63
+ it "returns nil if the param set was not" do
62
64
  controller.cookies[:locale] = 'es'
63
65
  controller.locale_from_cookies.should be_nil
64
66
  end
65
67
 
66
- it "should return nil if not locale was set" do
68
+ it "returns nil if not locale was set" do
67
69
  controller.locale_from_cookies.should be_nil
68
70
  end
69
71
  end
70
72
 
71
73
  describe '#locale_from_request' do
72
- it "should return en if the param set was valid" do
74
+ it "returns en if the param set was valid" do
73
75
  request.env['HTTP_ACCEPT_LANGUAGE'] = 'en-us,en-gb;q=0.8,en;q=0.6'
74
76
  controller.locale_from_request.should eq(:en)
75
77
  end
76
78
 
77
- it "should return nil if the param set was not" do
79
+ it "returns nil if the param set was not" do
78
80
  request.env['HTTP_ACCEPT_LANGUAGE'] = 'es'
79
81
  controller.locale_from_request.should be_nil
80
82
  end
81
83
 
82
- it "should return nil if not locale was set" do
84
+ it "returns nil if not locale was set" do
83
85
  controller.locale_from_request.should be_nil
84
86
  end
85
87
  end
86
88
 
87
89
  describe '#get_locale' do
88
- it "should return nil if nothing is set" do
90
+ it "returns nil if nothing is set" do
89
91
  controller.get_locale.should eq(:en)
90
92
  end
91
93
 
92
- it "should return en if the params is set to en" do
94
+ it "returns en if the params is set to en" do
93
95
  controller.params[:locale] = "en"
94
96
  controller.get_locale.should eq(:en)
95
97
  end
96
98
 
97
- it "should return fr if the cookie is set to fr" do
99
+ it "returns fr if the cookie is set to fr" do
98
100
  controller.cookies[:locale] = "fr"
99
101
  controller.get_locale.should eq(:fr)
100
102
  end
101
103
 
102
- it "should return en if the request is set to en" do
104
+ it "returns en if the request is set to en" do
103
105
  request.env['HTTP_ACCEPT_LANGUAGE'] = 'en-us,en-gb;q=0.8,en;q=0.6'
104
106
  controller.get_locale.should eq(:en)
105
107
  end
106
108
  end
107
109
 
108
110
  describe '#set_locale' do
109
- before :all do
110
- controller.params[:locale] = "fr"
111
- controller.set_locale
112
- end
111
+ context "with set default_url_option true" do
112
+ before :all do
113
+ Rails::LocaleDetection.set_default_url_option = true
114
+ controller.params[:locale] = "fr"
115
+ controller.set_locale
116
+ end
113
117
 
114
- it "should set the current locale to the locale param" do
115
- I18n.locale.should eq(:fr)
116
- end
118
+ it "sets the current locale to the locale param" do
119
+ I18n.locale.should eq(:fr)
120
+ end
117
121
 
118
- it "should set the language" do
119
- controller.cookies[:locale].should eq(:fr)
120
- end
122
+ it "sets the language" do
123
+ controller.cookies[:locale].should eq(:fr)
124
+ end
121
125
 
122
- it "should set the default_url_options" do
123
- controller.default_url_options[:locale].should eq(:fr)
126
+ it "sets the default_url_options" do
127
+ controller.default_url_options[:locale].to_s.should eq('fr')
128
+ end
124
129
  end
130
+
131
+ context "with set default_url_option false" do
132
+ before :all do
133
+ Rails::LocaleDetection.set_default_url_option = false
134
+ controller.default_url_options = {}
135
+ controller.params[:locale] = "fr"
136
+ controller.set_locale
137
+ end
138
+
139
+ it "sets the current locale to the locale param" do
140
+ I18n.locale.should eq(:fr)
141
+ end
142
+
143
+ it "sets the language" do
144
+ controller.cookies[:locale].should eq(:fr)
145
+ end
146
+
147
+ it "doesn't set the default_url_options" do
148
+ controller.default_url_options[:locale].should be_nil
149
+ end
150
+ end
125
151
  end
152
+
126
153
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_locale_detection
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 1.0.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mateo Murphy
@@ -15,12 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-16 00:00:00 -05:00
19
- default_executable:
18
+ date: 2012-05-26 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: http_accept_language
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ type: :runtime
22
+ requirement: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
25
  - - ">="
@@ -29,12 +28,12 @@ dependencies:
29
28
  segments:
30
29
  - 0
31
30
  version: "0"
31
+ version_requirements: *id001
32
+ name: http_accept_language
32
33
  prerelease: false
33
- type: :runtime
34
- requirement: *id001
35
34
  - !ruby/object:Gem::Dependency
36
- name: i18n
37
- version_requirements: &id002 !ruby/object:Gem::Requirement
35
+ type: :development
36
+ requirement: &id002 !ruby/object:Gem::Requirement
38
37
  none: false
39
38
  requirements:
40
39
  - - ">="
@@ -43,12 +42,12 @@ dependencies:
43
42
  segments:
44
43
  - 0
45
44
  version: "0"
45
+ version_requirements: *id002
46
+ name: i18n
46
47
  prerelease: false
47
- type: :development
48
- requirement: *id002
49
48
  - !ruby/object:Gem::Dependency
50
- name: timecop
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
49
+ type: :development
50
+ requirement: &id003 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
54
53
  - - ">="
@@ -57,44 +56,44 @@ dependencies:
57
56
  segments:
58
57
  - 0
59
58
  version: "0"
59
+ version_requirements: *id003
60
+ name: timecop
60
61
  prerelease: false
61
- type: :development
62
- requirement: *id003
63
62
  - !ruby/object:Gem::Dependency
64
- name: actionpack
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
63
+ type: :development
64
+ requirement: &id004 !ruby/object:Gem::Requirement
66
65
  none: false
67
66
  requirements:
68
67
  - - ~>
69
68
  - !ruby/object:Gem::Version
70
- hash: 1
69
+ hash: 11
71
70
  segments:
72
71
  - 3
73
- - 1
74
- - 1
75
- version: 3.1.1
72
+ - 2
73
+ - 2
74
+ version: 3.2.2
75
+ version_requirements: *id004
76
+ name: actionpack
76
77
  prerelease: false
77
- type: :development
78
- requirement: *id004
79
78
  - !ruby/object:Gem::Dependency
80
- name: activesupport
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
79
+ type: :development
80
+ requirement: &id005 !ruby/object:Gem::Requirement
82
81
  none: false
83
82
  requirements:
84
83
  - - ~>
85
84
  - !ruby/object:Gem::Version
86
- hash: 1
85
+ hash: 11
87
86
  segments:
88
87
  - 3
89
- - 1
90
- - 1
91
- version: 3.1.1
88
+ - 2
89
+ - 2
90
+ version: 3.2.2
91
+ version_requirements: *id005
92
+ name: activesupport
92
93
  prerelease: false
93
- type: :development
94
- requirement: *id005
95
94
  - !ruby/object:Gem::Dependency
96
- name: rspec
97
- version_requirements: &id006 !ruby/object:Gem::Requirement
95
+ type: :development
96
+ requirement: &id006 !ruby/object:Gem::Requirement
98
97
  none: false
99
98
  requirements:
100
99
  - - ~>
@@ -105,12 +104,12 @@ dependencies:
105
104
  - 3
106
105
  - 0
107
106
  version: 2.3.0
107
+ version_requirements: *id006
108
+ name: rspec
108
109
  prerelease: false
109
- type: :development
110
- requirement: *id006
111
110
  - !ruby/object:Gem::Dependency
112
- name: bundler
113
- version_requirements: &id007 !ruby/object:Gem::Requirement
111
+ type: :development
112
+ requirement: &id007 !ruby/object:Gem::Requirement
114
113
  none: false
115
114
  requirements:
116
115
  - - ~>
@@ -121,12 +120,12 @@ dependencies:
121
120
  - 0
122
121
  - 0
123
122
  version: 1.0.0
123
+ version_requirements: *id007
124
+ name: bundler
124
125
  prerelease: false
125
- type: :development
126
- requirement: *id007
127
126
  - !ruby/object:Gem::Dependency
128
- name: jeweler
129
- version_requirements: &id008 !ruby/object:Gem::Requirement
127
+ type: :development
128
+ requirement: &id008 !ruby/object:Gem::Requirement
130
129
  none: false
131
130
  requirements:
132
131
  - - ~>
@@ -137,12 +136,12 @@ dependencies:
137
136
  - 6
138
137
  - 4
139
138
  version: 1.6.4
139
+ version_requirements: *id008
140
+ name: jeweler
140
141
  prerelease: false
141
- type: :development
142
- requirement: *id008
143
142
  - !ruby/object:Gem::Dependency
144
- name: rcov
145
- version_requirements: &id009 !ruby/object:Gem::Requirement
143
+ type: :development
144
+ requirement: &id009 !ruby/object:Gem::Requirement
146
145
  none: false
147
146
  requirements:
148
147
  - - ">="
@@ -151,9 +150,9 @@ dependencies:
151
150
  segments:
152
151
  - 0
153
152
  version: "0"
153
+ version_requirements: *id009
154
+ name: rcov
154
155
  prerelease: false
155
- type: :development
156
- requirement: *id009
157
156
  description: Sets the current locale of a request using a combination of params, cookies, and http headers
158
157
  email: mateo.murphy@gmail.com
159
158
  executables: []
@@ -178,7 +177,6 @@ files:
178
177
  - spec/rails_locale_detection_spec.rb
179
178
  - spec/spec_helper.rb
180
179
  - spec/support/mock.rb
181
- has_rdoc: true
182
180
  homepage: http://github.com/mateomurphy/rails_locale_detection
183
181
  licenses:
184
182
  - MIT
@@ -208,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
206
  requirements: []
209
207
 
210
208
  rubyforge_project:
211
- rubygems_version: 1.5.2
209
+ rubygems_version: 1.8.21
212
210
  signing_key:
213
211
  specification_version: 3
214
212
  summary: locale setting for rails project