rails_locale_detection 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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