rack-user-locale 0.0.0 → 0.0.1
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/README.md +4 -4
- data/VERSION +1 -1
- data/lib/rack-user-locale.rb +5 -10
- data/rack-user-locale.gemspec +75 -0
- data/test/test_rack-user-locale.rb +5 -5
- metadata +3 -2
data/README.md
CHANGED
@@ -5,9 +5,9 @@ A Rack module for getting and setting a user's locale via a cookie or browser de
|
|
5
5
|
|
6
6
|
Credit to these gems for pointing me in the direction I wanted to go in...
|
7
7
|
|
8
|
-
https://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/locale.rb
|
9
|
-
https://github.com/jeremyvdw/rack-locale-selector
|
10
|
-
https://github.com/jeffersongirao/rack-locale_chooser
|
8
|
+
* https://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/locale.rb
|
9
|
+
* https://github.com/jeremyvdw/rack-locale-selector
|
10
|
+
* https://github.com/jeffersongirao/rack-locale_chooser
|
11
11
|
|
12
12
|
Installation
|
13
13
|
============
|
@@ -39,7 +39,7 @@ Your application will now attempt to set the I18n.locale value based on the foll
|
|
39
39
|
* The "HTTP_ACCEPT_LANGUAGE" value
|
40
40
|
* The I18n.default_locale value (basically a fallback)
|
41
41
|
|
42
|
-
Should you wish to overwrite a users locale value
|
42
|
+
Should you wish to overwrite a users locale value then simple rewrite the "user-locale" cookie.
|
43
43
|
|
44
44
|
Contributing to rack-user-locale
|
45
45
|
=======================
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
data/lib/rack-user-locale.rb
CHANGED
@@ -43,16 +43,11 @@ module Rack
|
|
43
43
|
accept_langs = @env["HTTP_ACCEPT_LANGUAGE"]
|
44
44
|
return if accept_langs.nil?
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
lang = languages_and_qvalues.sort_by { |(locale, qvalue)|
|
52
|
-
qvalue.to_f
|
53
|
-
}.last.first
|
54
|
-
|
55
|
-
lang == "*" ? nil : lang
|
46
|
+
lang = accept_langs.split(",").map { |l|
|
47
|
+
l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/
|
48
|
+
l.split(';q=')
|
49
|
+
}.first
|
50
|
+
browser_locale = lang.first.split("-").first
|
56
51
|
end
|
57
52
|
|
58
53
|
def get_default_locale
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "rack-user-locale"
|
8
|
+
s.version = "0.0.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Stuart Chinery", "Dave Hrycyszyn"]
|
12
|
+
s.date = "2013-02-04"
|
13
|
+
s.description = "A Rack module for getting and setting a user's locale via a cookie or browser default language."
|
14
|
+
s.email = "stuart.chinery@headlondon.com"
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".rvmrc",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/rack-user-locale.rb",
|
29
|
+
"rack-user-locale.gemspec",
|
30
|
+
"test/helper.rb",
|
31
|
+
"test/test_rack-user-locale.rb"
|
32
|
+
]
|
33
|
+
s.homepage = "http://github.com/sleepingstu/rack-user-locale"
|
34
|
+
s.licenses = ["MIT"]
|
35
|
+
s.require_paths = ["lib"]
|
36
|
+
s.rubygems_version = "1.8.24"
|
37
|
+
s.summary = "Rack module for getting and setting a user's locale"
|
38
|
+
|
39
|
+
if s.respond_to? :specification_version then
|
40
|
+
s.specification_version = 3
|
41
|
+
|
42
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
|
+
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
44
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
45
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
46
|
+
s.add_development_dependency(%q<debugger>, [">= 0"])
|
47
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
48
|
+
s.add_development_dependency(%q<minitest>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<rack-test>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<turn>, [">= 0"])
|
51
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
54
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
55
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
56
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
57
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
58
|
+
s.add_dependency(%q<minitest>, [">= 0"])
|
59
|
+
s.add_dependency(%q<rack-test>, [">= 0"])
|
60
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
61
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
62
|
+
end
|
63
|
+
else
|
64
|
+
s.add_dependency(%q<rack>, [">= 0"])
|
65
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
66
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
67
|
+
s.add_dependency(%q<debugger>, [">= 0"])
|
68
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
|
+
s.add_dependency(%q<minitest>, [">= 0"])
|
70
|
+
s.add_dependency(%q<rack-test>, [">= 0"])
|
71
|
+
s.add_dependency(%q<turn>, [">= 0"])
|
72
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
@@ -25,21 +25,21 @@ describe "RackUserLocale" do
|
|
25
25
|
|
26
26
|
describe "when from HTTP_ACCEPT_LANGUAGE headers" do
|
27
27
|
before do
|
28
|
-
get 'http://example.com/', {}, 'HTTP_ACCEPT_LANGUAGE' => '
|
28
|
+
get 'http://example.com/', {}, 'HTTP_ACCEPT_LANGUAGE' => 'ar-tu'
|
29
29
|
end
|
30
30
|
|
31
|
-
it "should have I18n.locale set to :
|
32
|
-
assert_equal :
|
31
|
+
it "should have I18n.locale set to :ar" do
|
32
|
+
assert_equal :ar, I18n.locale
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should set a cookie in the response" do
|
36
|
-
assert_equal "user-locale=
|
36
|
+
assert_equal "user-locale=ar; domain=example.com; path=/", last_response["Set-Cookie"]
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
40
|
describe "when both a cooke and HTTP_ACCEPT_LANGUAGE headers are set" do
|
41
41
|
before do
|
42
|
-
get 'http://example.com/', {}, 'HTTP_COOKIE' => 'user-locale=jp', 'HTTP_ACCEPT_LANGUAGE' => 'fr'
|
42
|
+
get 'http://example.com/', {}, 'HTTP_COOKIE' => 'user-locale=jp', 'HTTP_ACCEPT_LANGUAGE' => 'fr-be'
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should have I18n.locale set to :jp" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-user-locale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- Rakefile
|
175
175
|
- VERSION
|
176
176
|
- lib/rack-user-locale.rb
|
177
|
+
- rack-user-locale.gemspec
|
177
178
|
- test/helper.rb
|
178
179
|
- test/test_rack-user-locale.rb
|
179
180
|
homepage: http://github.com/sleepingstu/rack-user-locale
|
@@ -191,7 +192,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
191
192
|
version: '0'
|
192
193
|
segments:
|
193
194
|
- 0
|
194
|
-
hash:
|
195
|
+
hash: 3303822793188182499
|
195
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
196
197
|
none: false
|
197
198
|
requirements:
|