i18n_plus 0.1.5 → 0.2.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/lib/i18n_plus/country.rb +19 -2
- data/lib/i18n_plus/currency.rb +20 -3
- data/lib/i18n_plus/language.rb +20 -2
- data/lib/i18n_plus/locale.rb +19 -2
- data/lib/i18n_plus/state.rb +19 -2
- data/lib/i18n_plus/version.rb +1 -1
- data/test/country_test.rb +105 -0
- data/test/currency_test.rb +71 -0
- data/test/language_test.rb +78 -0
- data/test/locale_test.rb +69 -0
- data/test/state_test.rb +49 -0
- metadata +55 -47
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2134e91545ff3bc1a416b49b597b960874242ada
|
4
|
+
data.tar.gz: 00b35a09990f9e5e7f8b7bef617c159c05282489
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 86e47aef9e84474b58b7c1b846f13914d2705566f956c50acc724bb71669f1aaf6cc823fc22255ecb1e08e581f9651a5c0f7a987e7e84a2902f1453cf8badbe1
|
7
|
+
data.tar.gz: e1fe7080009999952ae974de5a277e4f524777c9c11b705254b12c9e52dabe2216e5065e224ff7ee116f67bb8bb521295551ec5a89d51b18098a759941eb80a0
|
data/CHANGELOG.md
CHANGED
data/lib/i18n_plus/country.rb
CHANGED
@@ -19,7 +19,13 @@ module ActionView
|
|
19
19
|
module Helpers
|
20
20
|
module FormOptionsHelper
|
21
21
|
def country_select(object, method, priority_country_codes = nil, options = {}, html_options = {})
|
22
|
-
|
22
|
+
tag = if defined?(ActionView::Helpers::InstanceTag) &&
|
23
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
24
|
+
InstanceTag.new(object, method, self, options.delete(:object))
|
25
|
+
else
|
26
|
+
CountrySelect.new(object, method, self, options)
|
27
|
+
end
|
28
|
+
tag.to_country_select_tag(priority_country_codes, options, html_options)
|
23
29
|
end
|
24
30
|
|
25
31
|
def country_options_for_select(selected = nil, *priority_country_codes)
|
@@ -36,7 +42,7 @@ module ActionView
|
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
39
|
-
|
45
|
+
module ToCountrySelectTag
|
40
46
|
def to_country_select_tag(priority_country_codes, options, html_options)
|
41
47
|
html_options = html_options.stringify_keys
|
42
48
|
add_default_name_and_id(html_options)
|
@@ -46,6 +52,17 @@ module ActionView
|
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
55
|
+
if defined?(ActionView::Helpers::InstanceTag) &&
|
56
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
57
|
+
class InstanceTag
|
58
|
+
include ToCountrySelectTag
|
59
|
+
end
|
60
|
+
else
|
61
|
+
class CountrySelect < Tags::Base
|
62
|
+
include ToCountrySelectTag
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
49
66
|
class FormBuilder
|
50
67
|
def country_select(method, priority_country_codes = nil, options = {}, html_options = {})
|
51
68
|
@template.country_select(@object_name, method, priority_country_codes, options.merge(:object => @object), html_options)
|
data/lib/i18n_plus/currency.rb
CHANGED
@@ -18,8 +18,14 @@ end
|
|
18
18
|
module ActionView
|
19
19
|
module Helpers
|
20
20
|
module FormOptionsHelper
|
21
|
-
def currency_select(object, method,
|
22
|
-
|
21
|
+
def currency_select(object, method, priority_currency_codes = nil, options = {}, html_options = {})
|
22
|
+
tag = if defined?(ActionView::Helpers::InstanceTag) &&
|
23
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
24
|
+
InstanceTag.new(object, method, self, options.delete(:object))
|
25
|
+
else
|
26
|
+
CurrencySelect.new(object, method, self, options)
|
27
|
+
end
|
28
|
+
tag.to_currency_select_tag(priority_currency_codes, options, html_options)
|
23
29
|
end
|
24
30
|
|
25
31
|
def currency_options_for_select(selected = nil, *priority_currency_codes)
|
@@ -36,7 +42,7 @@ module ActionView
|
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
39
|
-
|
45
|
+
module ToCurrencySelectTag
|
40
46
|
def to_currency_select_tag(priority_currency_codes, options, html_options)
|
41
47
|
html_options = html_options.stringify_keys
|
42
48
|
add_default_name_and_id(html_options)
|
@@ -46,6 +52,17 @@ module ActionView
|
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
55
|
+
if defined?(ActionView::Helpers::InstanceTag) &&
|
56
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
57
|
+
class InstanceTag
|
58
|
+
include ToCurrencySelectTag
|
59
|
+
end
|
60
|
+
else
|
61
|
+
class CurrencySelect < Tags::Base
|
62
|
+
include ToCurrencySelectTag
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
49
66
|
class FormBuilder
|
50
67
|
def currency_select(method, priority_currency_codes = nil, options = {}, html_options = {})
|
51
68
|
@template.currency_select(@object_name, method, priority_currency_codes, options.merge(:object => @object), html_options)
|
data/lib/i18n_plus/language.rb
CHANGED
@@ -19,7 +19,14 @@ module ActionView
|
|
19
19
|
module Helpers
|
20
20
|
module FormOptionsHelper
|
21
21
|
def language_select(object, method, priority_language_codes = nil, options = {}, html_options = {})
|
22
|
-
|
22
|
+
tag = if defined?(ActionView::Helpers::InstanceTag) &&
|
23
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
24
|
+
InstanceTag.new(object, method, self, options.delete(:object))
|
25
|
+
else
|
26
|
+
LanguageSelect.new(object, method, self, options)
|
27
|
+
end
|
28
|
+
|
29
|
+
tag.to_language_select_tag(priority_language_codes, options, html_options)
|
23
30
|
end
|
24
31
|
|
25
32
|
def language_options_for_select(selected = nil, *priority_language_codes)
|
@@ -36,7 +43,7 @@ module ActionView
|
|
36
43
|
end
|
37
44
|
end
|
38
45
|
|
39
|
-
|
46
|
+
module ToLanguageSelectTag
|
40
47
|
def to_language_select_tag(priority_language_codes, options, html_options)
|
41
48
|
html_options = html_options.stringify_keys
|
42
49
|
add_default_name_and_id(html_options)
|
@@ -46,6 +53,17 @@ module ActionView
|
|
46
53
|
end
|
47
54
|
end
|
48
55
|
|
56
|
+
if defined?(ActionView::Helpers::InstanceTag) &&
|
57
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
58
|
+
class InstanceTag
|
59
|
+
include ToLanguageSelectTag
|
60
|
+
end
|
61
|
+
else
|
62
|
+
class LanguageSelect < Tags::Base
|
63
|
+
include ToLanguageSelectTag
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
49
67
|
class FormBuilder
|
50
68
|
def language_select(method, priority_language_codes = nil, options = {}, html_options = {})
|
51
69
|
@template.language_select(@object_name, method, priority_language_codes, options.merge(:object => @object), html_options)
|
data/lib/i18n_plus/locale.rb
CHANGED
@@ -19,7 +19,13 @@ module ActionView
|
|
19
19
|
module Helpers
|
20
20
|
module FormOptionsHelper
|
21
21
|
def locale_select(object, method, priority_locale_codes = nil, options = {}, html_options = {})
|
22
|
-
|
22
|
+
tag = if defined?(ActionView::Helpers::InstanceTag) &&
|
23
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
24
|
+
InstanceTag.new(object, method, self, options.delete(:object))
|
25
|
+
else
|
26
|
+
LocaleSelect.new(object, method, self, options)
|
27
|
+
end
|
28
|
+
tag.to_locale_select_tag(priority_locale_codes, options, html_options)
|
23
29
|
end
|
24
30
|
|
25
31
|
def locale_options_for_select(selected = nil, *priority_locale_codes)
|
@@ -36,7 +42,7 @@ module ActionView
|
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
39
|
-
|
45
|
+
module ToLocaleSelectTag
|
40
46
|
def to_locale_select_tag(priority_locale_codes, options, html_options)
|
41
47
|
html_options = html_options.stringify_keys
|
42
48
|
add_default_name_and_id(html_options)
|
@@ -46,6 +52,17 @@ module ActionView
|
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
55
|
+
if defined?(ActionView::Helpers::InstanceTag) &&
|
56
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
57
|
+
class InstanceTag
|
58
|
+
include ToLocaleSelectTag
|
59
|
+
end
|
60
|
+
else
|
61
|
+
class LocaleSelect < Tags::Base
|
62
|
+
include ToLocaleSelectTag
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
49
66
|
class FormBuilder
|
50
67
|
def locale_select(method, priority_locale_codes = nil, options = {}, html_options = {})
|
51
68
|
@template.locale_select(@object_name, method, priority_locale_codes, options.merge(:object => @object), html_options)
|
data/lib/i18n_plus/state.rb
CHANGED
@@ -19,7 +19,13 @@ module ActionView
|
|
19
19
|
module Helpers
|
20
20
|
module FormOptionsHelper
|
21
21
|
def state_select(object, method, country_code, options = {}, html_options = {})
|
22
|
-
|
22
|
+
tag = if defined?(ActionView::Helpers::InstanceTag) &&
|
23
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
24
|
+
InstanceTag.new(object, method, self, options.delete(:object))
|
25
|
+
else
|
26
|
+
StateSelect.new(object, method, self, options)
|
27
|
+
end
|
28
|
+
tag.to_state_select_tag(country_code, options, html_options)
|
23
29
|
end
|
24
30
|
|
25
31
|
def state_options_for_select(country_code, selected = nil)
|
@@ -28,7 +34,7 @@ module ActionView
|
|
28
34
|
end
|
29
35
|
end
|
30
36
|
|
31
|
-
|
37
|
+
module ToStateSelectTag
|
32
38
|
def to_state_select_tag(country_code, options, html_options)
|
33
39
|
html_options = html_options.stringify_keys
|
34
40
|
add_default_name_and_id(html_options)
|
@@ -38,6 +44,17 @@ module ActionView
|
|
38
44
|
end
|
39
45
|
end
|
40
46
|
|
47
|
+
if defined?(ActionView::Helpers::InstanceTag) &&
|
48
|
+
ActionView::Helpers::InstanceTag.instance_method(:initialize).arity != 0
|
49
|
+
class InstanceTag
|
50
|
+
include ToStateSelectTag
|
51
|
+
end
|
52
|
+
else
|
53
|
+
class StateSelect < Tags::Base
|
54
|
+
include ToStateSelectTag
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
41
58
|
class FormBuilder
|
42
59
|
def state_select(method, country_code, options = {}, html_options = {})
|
43
60
|
@template.country_select(@object_name, method, country_code, options.merge(:object => @object), html_options)
|
data/lib/i18n_plus/version.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class CountryTest < ActiveSupport::TestCase
|
6
|
+
include ActionView::Helpers::FormOptionsHelper
|
7
|
+
|
8
|
+
setup do
|
9
|
+
@account = stub(:country => 'DE', :to_s => 'account')
|
10
|
+
end
|
11
|
+
|
12
|
+
test "should have countries" do
|
13
|
+
assert_not_nil I18nPlus.countries
|
14
|
+
assert !I18nPlus.countries.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
test "should return country name in German with I18n.locale set" do
|
18
|
+
I18n.locale = :de
|
19
|
+
assert_equal "Großbritannien", I18nPlus.country_name('GB')
|
20
|
+
end
|
21
|
+
|
22
|
+
test "should return country name in English with I18n.locale set" do
|
23
|
+
I18n.locale = :en
|
24
|
+
assert_equal "United Kingdom", I18nPlus.country_name('GB')
|
25
|
+
end
|
26
|
+
|
27
|
+
test "should return country name in German with locale option" do
|
28
|
+
assert_equal "Großbritannien", I18nPlus.country_name('GB', :locale => :de)
|
29
|
+
end
|
30
|
+
|
31
|
+
test "should return country name in English with locale option" do
|
32
|
+
assert_equal "United Kingdom", I18nPlus.country_name('GB', :locale => :en)
|
33
|
+
end
|
34
|
+
|
35
|
+
test "should return country name in German as locale option has precedence over I18n.locale" do
|
36
|
+
I18n.locale = :en
|
37
|
+
assert_equal "Großbritannien", I18nPlus.country_name('GB', :locale => :de)
|
38
|
+
I18n.locale = :de
|
39
|
+
assert_equal "United Kingdom", I18nPlus.country_name('GB', :locale => :en)
|
40
|
+
end
|
41
|
+
|
42
|
+
test "should return country options for German" do
|
43
|
+
I18n.locale = :de
|
44
|
+
|
45
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
46
|
+
match = /<option value="DE" selected="selected">Deutschland<\/option>/
|
47
|
+
else
|
48
|
+
match = /<option selected="selected" value="DE">Deutschland<\/option>/
|
49
|
+
end
|
50
|
+
assert_match match, country_options_for_select('DE').gsub(/\n/, '')
|
51
|
+
end
|
52
|
+
|
53
|
+
test "should return country options for English" do
|
54
|
+
I18n.locale = :en
|
55
|
+
|
56
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
57
|
+
match = /<option value="DE" selected="selected">Germany<\/option>/
|
58
|
+
else
|
59
|
+
match = /<option selected="selected" value="DE">Germany<\/option>/
|
60
|
+
end
|
61
|
+
assert_match match, country_options_for_select('DE').gsub(/\n/, '')
|
62
|
+
end
|
63
|
+
|
64
|
+
test "should return country options with priority countries for English" do
|
65
|
+
I18n.locale = :en
|
66
|
+
|
67
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
68
|
+
match = /<option value="DE" selected="selected">Germany<\/option><option value="" disabled="disabled">----------<\/option>/
|
69
|
+
else
|
70
|
+
match = /<option selected="selected" value="DE">Germany<\/option><option value="" disabled="disabled">----------<\/option>/
|
71
|
+
end
|
72
|
+
assert_match match, country_options_for_select('DE', 'DE').gsub(/\n/, '')
|
73
|
+
end
|
74
|
+
|
75
|
+
test "should return country options with multiple priority countries for English" do
|
76
|
+
I18n.locale = :en
|
77
|
+
|
78
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
79
|
+
match = /<option value="DE" selected="selected">Germany<\/option><option value=\"GB\">United Kingdom<\/option><option value="" disabled="disabled">----------<\/option>/
|
80
|
+
else
|
81
|
+
match = /<option selected="selected" value="DE">Germany<\/option><option value=\"GB\">United Kingdom<\/option><option value="" disabled="disabled">----------<\/option>/
|
82
|
+
end
|
83
|
+
assert_match match, country_options_for_select('DE', 'DE', 'GB').gsub(/\n/, '')
|
84
|
+
end
|
85
|
+
|
86
|
+
test "should return country_select" do
|
87
|
+
I18n.locale = :en
|
88
|
+
|
89
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
90
|
+
match = /<select id="account_country" name="account\[country\]"><option value="DE" selected="selected">Germany<\/option><option value="" disabled="disabled">----------<\/option>/
|
91
|
+
else
|
92
|
+
match = /<select id="account_country" name="account\[country\]"><option selected="selected" value="DE">Germany<\/option><option value="" disabled="disabled">----------<\/option>/
|
93
|
+
end
|
94
|
+
assert_match match, country_select(@account, :country, 'DE').gsub(/\n/, '')
|
95
|
+
end
|
96
|
+
|
97
|
+
test "should return norway" do
|
98
|
+
# NO is a special case in YAML and yields false
|
99
|
+
I18n.locale = :de
|
100
|
+
assert_equal "Norwegen", I18nPlus.country_name('NO')
|
101
|
+
I18n.locale = :en
|
102
|
+
assert_equal "Norway", I18nPlus.country_name('NO')
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class CurrencyTest < ActiveSupport::TestCase
|
6
|
+
include ActionView::Helpers::FormOptionsHelper
|
7
|
+
|
8
|
+
setup do
|
9
|
+
@account = stub(:currency => 'EUR', :to_s => 'account')
|
10
|
+
end
|
11
|
+
|
12
|
+
test "should have currencies" do
|
13
|
+
assert_not_nil I18nPlus.currencies
|
14
|
+
assert !I18nPlus.currencies.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
test "should return currency options for German" do
|
18
|
+
I18n.locale = :de
|
19
|
+
|
20
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
21
|
+
match = /<option value="EUR" selected="selected">EUR \(€\)<\/option>/
|
22
|
+
else
|
23
|
+
match = /<option selected="selected" value="EUR">EUR \(€\)<\/option>/
|
24
|
+
end
|
25
|
+
assert_match match, currency_options_for_select('EUR').gsub(/\n/, '')
|
26
|
+
end
|
27
|
+
|
28
|
+
test "should return currency options for English" do
|
29
|
+
I18n.locale = :en
|
30
|
+
|
31
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
32
|
+
match = /<option value="EUR" selected="selected">EUR \(€\)<\/option>/
|
33
|
+
else
|
34
|
+
match = /<option selected="selected" value="EUR">EUR \(€\)<\/option>/
|
35
|
+
end
|
36
|
+
assert_match match, currency_options_for_select('EUR').gsub(/\n/, '')
|
37
|
+
end
|
38
|
+
|
39
|
+
test "should return currency options with priority currencies for English" do
|
40
|
+
I18n.locale = :en
|
41
|
+
|
42
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
43
|
+
match = /<option value="EUR" selected="selected">EUR \(€\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
44
|
+
else
|
45
|
+
match = /<option selected="selected" value="EUR">EUR \(€\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
46
|
+
end
|
47
|
+
assert_match match, currency_options_for_select('EUR', 'EUR').gsub(/\n/, '')
|
48
|
+
end
|
49
|
+
|
50
|
+
test "should return currency options with multiple priority currencies for English" do
|
51
|
+
I18n.locale = :en
|
52
|
+
|
53
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
54
|
+
match = /<option value="EUR" selected="selected">EUR \(€\)<\/option><option value=\"USD\">USD \(\$\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
55
|
+
else
|
56
|
+
match = /<option selected="selected" value="EUR">EUR \(€\)<\/option><option value=\"USD\">USD \(\$\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
57
|
+
end
|
58
|
+
assert_match match, currency_options_for_select('EUR', 'EUR', 'USD').gsub(/\n/, '')
|
59
|
+
end
|
60
|
+
|
61
|
+
test "should return currency_select" do
|
62
|
+
I18n.locale = :en
|
63
|
+
|
64
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
65
|
+
match = /<select id="account_currency" name="account\[currency\]"><option value="EUR" selected="selected">EUR \(€\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
66
|
+
else
|
67
|
+
match = /<select id="account_currency" name="account\[currency\]"><option selected="selected" value="EUR">EUR \(€\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
68
|
+
end
|
69
|
+
assert_match match, currency_select(@account, :currency, 'EUR').gsub(/\n/, '')
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class LanguageTest < ActiveSupport::TestCase
|
4
|
+
include ActionView::Helpers::FormOptionsHelper
|
5
|
+
|
6
|
+
setup do
|
7
|
+
@account = stub(:language => 'DE', :to_s => 'account')
|
8
|
+
end
|
9
|
+
|
10
|
+
test "should have languages" do
|
11
|
+
assert_not_nil I18nPlus.languages
|
12
|
+
assert !I18nPlus.languages.empty?
|
13
|
+
end
|
14
|
+
|
15
|
+
test "should return language options for German" do
|
16
|
+
I18n.locale = :de
|
17
|
+
|
18
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
19
|
+
match = /<option value="DE" selected="selected">Deutsch<\/option>/
|
20
|
+
else
|
21
|
+
match = /<option selected="selected" value="DE">Deutsch<\/option>/
|
22
|
+
end
|
23
|
+
assert_match match, language_options_for_select('DE').gsub(/\n/, '')
|
24
|
+
end
|
25
|
+
|
26
|
+
test "should return language options for English" do
|
27
|
+
I18n.locale = :en
|
28
|
+
|
29
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
30
|
+
match = /<option value="DE" selected="selected">German<\/option>/
|
31
|
+
else
|
32
|
+
match = /<option selected="selected" value="DE">German<\/option>/
|
33
|
+
end
|
34
|
+
assert_match match, language_options_for_select('DE').gsub(/\n/, '')
|
35
|
+
end
|
36
|
+
|
37
|
+
test "should return language options with priority languages for English" do
|
38
|
+
I18n.locale = :en
|
39
|
+
|
40
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
41
|
+
match = /<option value="DE" selected="selected">German<\/option><option value="" disabled="disabled">----------<\/option>/
|
42
|
+
else
|
43
|
+
match = /<option selected="selected" value="DE">German<\/option><option value="" disabled="disabled">----------<\/option>/
|
44
|
+
end
|
45
|
+
assert_match match, language_options_for_select('DE', 'DE').gsub(/\n/, '')
|
46
|
+
end
|
47
|
+
|
48
|
+
test "should return language options with multiple priority languages for English" do
|
49
|
+
I18n.locale = :en
|
50
|
+
|
51
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
52
|
+
match = /<option value="DE" selected="selected">German<\/option><option value=\"EN\">English<\/option><option value="" disabled="disabled">----------<\/option>/
|
53
|
+
else
|
54
|
+
match = /<option selected="selected" value="DE">German<\/option><option value=\"EN\">English<\/option><option value="" disabled="disabled">----------<\/option>/
|
55
|
+
end
|
56
|
+
assert_match match, language_options_for_select('DE', 'DE', 'EN').gsub(/\n/, '')
|
57
|
+
end
|
58
|
+
|
59
|
+
test "should return language_select" do
|
60
|
+
I18n.locale = :en
|
61
|
+
|
62
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
63
|
+
match = /<select id="account_language" name="account\[language\]"><option value="DE" selected="selected">German<\/option><option value="" disabled="disabled">----------<\/option>/
|
64
|
+
else
|
65
|
+
match = /<select id="account_language" name="account\[language\]"><option selected="selected" value="DE">German<\/option><option value="" disabled="disabled">----------<\/option>/
|
66
|
+
end
|
67
|
+
assert_match match, language_select(@account, :language, 'DE').gsub(/\n/, '')
|
68
|
+
end
|
69
|
+
|
70
|
+
test "should return Norwegian" do
|
71
|
+
# NO is a special case in YAML and yields false
|
72
|
+
I18n.locale = :de
|
73
|
+
assert_equal "Norwegisch", I18nPlus.language_name('NO')
|
74
|
+
I18n.locale = :en
|
75
|
+
assert_equal "Norwegian", I18nPlus.language_name('NO')
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
data/test/locale_test.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class LocaleTest < ActiveSupport::TestCase
|
4
|
+
include ActionView::Helpers::FormOptionsHelper
|
5
|
+
|
6
|
+
setup do
|
7
|
+
@account = stub(:locale => 'de-DE', :to_s => 'account')
|
8
|
+
end
|
9
|
+
|
10
|
+
test "should have locales" do
|
11
|
+
assert_not_nil I18nPlus.locales
|
12
|
+
assert !I18nPlus.locales.empty?
|
13
|
+
end
|
14
|
+
|
15
|
+
test "should return locale options for German" do
|
16
|
+
I18n.locale = :de
|
17
|
+
|
18
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
19
|
+
match = /<option value="de-DE" selected="selected">Deutsch \(Deutschland\)<\/option>/
|
20
|
+
else
|
21
|
+
match = /<option selected="selected" value="de-DE">Deutsch \(Deutschland\)<\/option>/
|
22
|
+
end
|
23
|
+
assert_match match, locale_options_for_select('de-DE').gsub(/\n/, '')
|
24
|
+
end
|
25
|
+
|
26
|
+
test "should return locale options for English" do
|
27
|
+
I18n.locale = :en
|
28
|
+
|
29
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
30
|
+
match = /<option value="de-DE" selected="selected">German \(Germany\)<\/option>/
|
31
|
+
else
|
32
|
+
match = /<option selected="selected" value="de-DE">German \(Germany\)<\/option>/
|
33
|
+
end
|
34
|
+
assert_match match, locale_options_for_select('de-DE').gsub(/\n/, '')
|
35
|
+
end
|
36
|
+
|
37
|
+
test "should return locale options with priority locale for English" do
|
38
|
+
I18n.locale = :en
|
39
|
+
|
40
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
41
|
+
match = /<option value="de-DE" selected="selected">German \(Germany\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
42
|
+
else
|
43
|
+
match = /<option selected="selected" value="de-DE">German \(Germany\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
44
|
+
end
|
45
|
+
assert_match match, locale_options_for_select('de-DE', 'de-DE').gsub(/\n/, '')
|
46
|
+
end
|
47
|
+
|
48
|
+
test "should return locale options with multiple priority locales for English" do
|
49
|
+
I18n.locale = :en
|
50
|
+
|
51
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
52
|
+
match = /<option value="de-DE" selected="selected">German \(Germany\)<\/option><option value=\"en-GB\">English \(United Kingdom\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
53
|
+
else
|
54
|
+
match = /<option selected="selected" value="de-DE">German \(Germany\)<\/option><option value=\"en-GB\">English \(United Kingdom\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
55
|
+
end
|
56
|
+
assert_match match, locale_options_for_select('de-DE', 'de-DE', 'en-GB').gsub(/\n/, '')
|
57
|
+
end
|
58
|
+
|
59
|
+
test "should return locale_select" do
|
60
|
+
I18n.locale = :en
|
61
|
+
|
62
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
63
|
+
match = /<select id="account_locale" name="account\[locale\]"><option value="de-DE" selected="selected">German \(Germany\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
64
|
+
else
|
65
|
+
match = /<select id="account_locale" name="account\[locale\]"><option selected="selected" value="de-DE">German \(Germany\)<\/option><option value="" disabled="disabled">----------<\/option>/
|
66
|
+
end
|
67
|
+
assert_match match, locale_select(@account, :locale, 'de-DE').gsub(/\n/, '')
|
68
|
+
end
|
69
|
+
end
|
data/test/state_test.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class StateTest < ActiveSupport::TestCase
|
4
|
+
include ActionView::Helpers::FormOptionsHelper
|
5
|
+
|
6
|
+
setup do
|
7
|
+
@account = stub(:country => 'DE', :state => 'BY', :to_s => 'account')
|
8
|
+
end
|
9
|
+
|
10
|
+
test "should have states" do
|
11
|
+
assert_not_nil I18nPlus.states('DE')
|
12
|
+
assert !I18nPlus.states('DE').empty?
|
13
|
+
end
|
14
|
+
|
15
|
+
test "should return states of Germany in German" do
|
16
|
+
I18n.locale = :de
|
17
|
+
|
18
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
19
|
+
match = /<option value="BY" selected="selected">Bayern<\/option>/
|
20
|
+
else
|
21
|
+
match = /<option selected="selected" value="BY">Bayern<\/option>/
|
22
|
+
end
|
23
|
+
assert_match match, state_options_for_select('DE', 'BY').gsub(/\n/, '')
|
24
|
+
end
|
25
|
+
|
26
|
+
test "should return states of Germany in English" do
|
27
|
+
I18n.locale = :en
|
28
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
29
|
+
match = /<option value="BY" selected="selected">Bavaria<\/option>/
|
30
|
+
else
|
31
|
+
match = /<option selected="selected" value="BY">Bavaria<\/option>/
|
32
|
+
end
|
33
|
+
assert_match match, state_options_for_select('DE', 'BY').gsub(/\n/, '')
|
34
|
+
end
|
35
|
+
|
36
|
+
test "should return state_select in English" do
|
37
|
+
I18n.locale = :en
|
38
|
+
assert_not_nil results = state_select(@account, :state, 'DE').gsub(/\n/, '')
|
39
|
+
|
40
|
+
assert_match /<select id="account_state" name="account\[state\]">/, results
|
41
|
+
|
42
|
+
if ActiveSupport::VERSION::STRING < '4.0'
|
43
|
+
match = /<option value="BY" selected="selected">Bavaria<\/option>/
|
44
|
+
else
|
45
|
+
match = /<option selected="selected" value="BY">Bavaria<\/option>/
|
46
|
+
end
|
47
|
+
assert_match match, results
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,22 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n_plus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Oliver Eilhard
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-08-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rack
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 1.1.0
|
22
20
|
- - <
|
@@ -25,9 +23,8 @@ dependencies:
|
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - '>='
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 1.1.0
|
33
30
|
- - <
|
@@ -36,99 +33,101 @@ dependencies:
|
|
36
33
|
- !ruby/object:Gem::Dependency
|
37
34
|
name: activesupport
|
38
35
|
requirement: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
36
|
requirements:
|
41
|
-
- -
|
37
|
+
- - '>='
|
42
38
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
39
|
+
version: '0'
|
44
40
|
type: :runtime
|
45
41
|
prerelease: false
|
46
42
|
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
none: false
|
48
43
|
requirements:
|
49
|
-
- -
|
44
|
+
- - '>='
|
50
45
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
46
|
+
version: '0'
|
52
47
|
- !ruby/object:Gem::Dependency
|
53
48
|
name: actionpack
|
54
49
|
requirement: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
50
|
requirements:
|
57
|
-
- -
|
51
|
+
- - '>='
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
53
|
+
version: '0'
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
57
|
requirements:
|
65
|
-
- -
|
58
|
+
- - '>='
|
66
59
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
60
|
+
version: '0'
|
68
61
|
- !ruby/object:Gem::Dependency
|
69
62
|
name: bundler
|
70
63
|
requirement: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
65
|
- - ~>
|
74
66
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
67
|
+
version: 1.3.5
|
76
68
|
type: :development
|
77
69
|
prerelease: false
|
78
70
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
71
|
requirements:
|
81
72
|
- - ~>
|
82
73
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
74
|
+
version: 1.3.5
|
84
75
|
- !ruby/object:Gem::Dependency
|
85
76
|
name: rdoc
|
86
77
|
requirement: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
78
|
requirements:
|
89
79
|
- - ~>
|
90
80
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
81
|
+
version: 2.5.3
|
92
82
|
type: :development
|
93
83
|
prerelease: false
|
94
84
|
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
none: false
|
96
85
|
requirements:
|
97
86
|
- - ~>
|
98
87
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
88
|
+
version: 2.5.3
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: mocha
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 0.14.0
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.14.0
|
100
103
|
- !ruby/object:Gem::Dependency
|
101
104
|
name: rake
|
102
105
|
requirement: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
106
|
requirements:
|
105
|
-
- -
|
107
|
+
- - '>='
|
106
108
|
- !ruby/object:Gem::Version
|
107
|
-
version: '0
|
109
|
+
version: '0'
|
108
110
|
type: :development
|
109
111
|
prerelease: false
|
110
112
|
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
none: false
|
112
113
|
requirements:
|
113
|
-
- -
|
114
|
+
- - '>='
|
114
115
|
- !ruby/object:Gem::Version
|
115
|
-
version: '0
|
116
|
+
version: '0'
|
116
117
|
- !ruby/object:Gem::Dependency
|
117
|
-
name:
|
118
|
+
name: minitest
|
118
119
|
requirement: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
120
|
requirements:
|
121
|
-
- -
|
121
|
+
- - '>='
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0
|
123
|
+
version: '0'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
127
|
requirements:
|
129
|
-
- -
|
128
|
+
- - '>='
|
130
129
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
130
|
+
version: '0'
|
132
131
|
description: A library for i18n of countries, states, currencies, and locales.
|
133
132
|
email:
|
134
133
|
- oliver.eilhard@gmail.com
|
@@ -154,29 +153,38 @@ files:
|
|
154
153
|
- CHANGELOG.md
|
155
154
|
- LICENSE
|
156
155
|
- README.md
|
156
|
+
- test/country_test.rb
|
157
|
+
- test/currency_test.rb
|
158
|
+
- test/language_test.rb
|
159
|
+
- test/locale_test.rb
|
160
|
+
- test/state_test.rb
|
157
161
|
homepage: http://github.com/olivere/i18n_plus
|
158
162
|
licenses: []
|
163
|
+
metadata: {}
|
159
164
|
post_install_message:
|
160
165
|
rdoc_options:
|
161
166
|
- --charset=UTF-8
|
162
167
|
require_paths:
|
163
168
|
- lib
|
164
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
170
|
requirements:
|
167
|
-
- -
|
171
|
+
- - '>='
|
168
172
|
- !ruby/object:Gem::Version
|
169
173
|
version: '0'
|
170
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
175
|
requirements:
|
173
|
-
- -
|
176
|
+
- - '>='
|
174
177
|
- !ruby/object:Gem::Version
|
175
178
|
version: 1.3.6
|
176
179
|
requirements: []
|
177
180
|
rubyforge_project:
|
178
|
-
rubygems_version:
|
181
|
+
rubygems_version: 2.0.3
|
179
182
|
signing_key:
|
180
|
-
specification_version:
|
183
|
+
specification_version: 4
|
181
184
|
summary: A library for i18n of countries, states, currencies, and locales.
|
182
|
-
test_files:
|
185
|
+
test_files:
|
186
|
+
- test/country_test.rb
|
187
|
+
- test/currency_test.rb
|
188
|
+
- test/language_test.rb
|
189
|
+
- test/locale_test.rb
|
190
|
+
- test/state_test.rb
|