carmen 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +6 -1
- data/MIT-LICENSE +4 -4
- data/README.rdoc +38 -6
- data/Rakefile +2 -7
- data/VERSION +1 -1
- data/carmen.gemspec +38 -44
- data/data/countries/de.yml +3 -1
- data/data/countries/en.yml +1 -1
- data/data/countries/hi.yml +491 -0
- data/data/countries/nl.yml +501 -0
- data/data/states/in.yml +2 -0
- data/data/states/us.yml +4 -2
- data/lib/carmen.rb +23 -22
- data/lib/carmen/action_view_helpers.rb +7 -8
- data/lib/carmen/railtie.rb +4 -4
- data/test/carmen_test.rb +37 -27
- data/test/carmen_view_helper_test.rb +7 -11
- metadata +15 -40
- data/.gitignore +0 -7
data/data/states/in.yml
CHANGED
data/data/states/us.yml
CHANGED
@@ -102,6 +102,8 @@
|
|
102
102
|
- WI
|
103
103
|
- - Wyoming
|
104
104
|
- WY
|
105
|
+
- - American Samoa
|
106
|
+
- AS
|
105
107
|
- - Federated States of Micronesia
|
106
108
|
- FM
|
107
109
|
- - Guam
|
@@ -118,7 +120,7 @@
|
|
118
120
|
- VI
|
119
121
|
- - Armed Forces Americas (except Canada)
|
120
122
|
- AA
|
121
|
-
- - Armed Forces Europe,
|
123
|
+
- - Armed Forces Europe, Canada, Africa, or Middle East
|
122
124
|
- AE
|
123
125
|
- - Armed Forces Pacific
|
124
|
-
- AP
|
126
|
+
- AP
|
data/lib/carmen.rb
CHANGED
@@ -6,7 +6,7 @@ rescue LoadError
|
|
6
6
|
end
|
7
7
|
|
8
8
|
# Fix to autoload in Rails 3
|
9
|
-
if defined?(Rails)
|
9
|
+
if defined?(Rails)
|
10
10
|
if Rails::VERSION::MAJOR > 2
|
11
11
|
require 'carmen/railtie'
|
12
12
|
else
|
@@ -15,36 +15,37 @@ if defined?(Rails)
|
|
15
15
|
end
|
16
16
|
|
17
17
|
module Carmen
|
18
|
-
|
19
18
|
class << self
|
20
|
-
attr_accessor :default_country, :default_locale, :excluded_countries, :excluded_states
|
19
|
+
attr_accessor :default_country, :default_locale, :excluded_countries, :excluded_states,
|
20
|
+
:priority_countries
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
self.default_country = 'US'
|
24
24
|
self.default_locale = :en
|
25
25
|
self.excluded_countries = []
|
26
|
-
self.excluded_states = {}
|
27
|
-
|
26
|
+
self.excluded_states = {}
|
27
|
+
self.priority_countries = []
|
28
|
+
|
28
29
|
@data_path = File.join(File.dirname(__FILE__), '..', 'data')
|
29
|
-
|
30
|
+
|
30
31
|
@states = Dir[File.join(@data_path, '/states/*.yml')].map do |file_name|
|
31
32
|
[File.basename(file_name, '.yml').upcase, YAML.load_file(file_name)]
|
32
33
|
end
|
33
|
-
|
34
|
+
|
34
35
|
# Raised when attempting to retrieve states for an unsupported country
|
35
36
|
class StatesNotSupported < RuntimeError; end
|
36
37
|
|
37
38
|
# Raised when attempting to work with a country not in the data set
|
38
39
|
class NonexistentCountry < RuntimeError; end
|
39
|
-
|
40
|
+
|
40
41
|
# Raised when attemting to switch to a locale which does not exist
|
41
42
|
class UnavailableLocale < RuntimeError; end
|
42
|
-
|
43
|
+
|
43
44
|
# Returns a list of all countries
|
44
45
|
def self.countries(options={})
|
45
46
|
# Use specified locale or fall back to default locale
|
46
47
|
locale = (options.delete(:locale) || @default_locale).to_s
|
47
|
-
|
48
|
+
|
48
49
|
# Load the country list for the specified locale
|
49
50
|
@countries ||= {}
|
50
51
|
unless @countries[locale]
|
@@ -53,16 +54,17 @@ module Carmen
|
|
53
54
|
unless File.exists?(localized_data)
|
54
55
|
raise(UnavailableLocale, "Could not load countries for '#{locale}' locale")
|
55
56
|
end
|
56
|
-
|
57
|
+
|
57
58
|
# As the data exists, load it
|
58
59
|
@countries[locale] = YAML.load_file(localized_data)
|
59
60
|
end
|
60
|
-
|
61
|
-
# Return data after filtering excluded countries
|
62
|
-
@countries[locale].reject { |c| excluded_countries.include?( c[1] ) }
|
61
|
+
|
62
|
+
# Return data after filtering excluded countries and prepending prepended countries
|
63
|
+
result = @countries[locale].reject { |c| excluded_countries.include?( c[1] ) }
|
64
|
+
priority_countries.map { |code| [ search_collection(result, code, 1, 0), code ] } + result
|
63
65
|
end
|
64
66
|
|
65
|
-
|
67
|
+
|
66
68
|
# Returns the country name corresponding to the supplied country code, optionally using the specified locale.
|
67
69
|
# Carmen::country_name('TR') => 'Turkey'
|
68
70
|
# Carmen::country_name('TR', :locale => :de) => 'Türkei'
|
@@ -81,14 +83,14 @@ module Carmen
|
|
81
83
|
def self.country_codes
|
82
84
|
countries.map {|c| c[1] }
|
83
85
|
end
|
84
|
-
|
86
|
+
|
85
87
|
# Returns an array of all country names, optionally using the specified locale.
|
86
88
|
# Carmen::country_names => ['Afghanistan', 'Aland Islands', 'Albania', ... ]
|
87
89
|
# Carmen::country_names(:locale => :de) => ['Afghanistan', 'Åland', 'Albanien', ... ]
|
88
90
|
def self.country_names(options={})
|
89
91
|
countries(options).map {|c| c[0] }
|
90
92
|
end
|
91
|
-
|
93
|
+
|
92
94
|
# Returns the state name corresponding to the supplied state code within the default country
|
93
95
|
# Carmen::state_code('New Hampshire') => 'NH'
|
94
96
|
def self.state_name(state_code, country_code = Carmen.default_country, options={})
|
@@ -117,7 +119,7 @@ module Carmen
|
|
117
119
|
# if none is provided.
|
118
120
|
# Carmen::states('US') => [['Alabama', 'AL'], ['Arkansas', 'AR'], ... ]
|
119
121
|
# Carmen::states => [['Alabama', 'AL'], ['Arkansas', 'AR'], ... ]
|
120
|
-
def self.states(country_code = Carmen.default_country, options={})
|
122
|
+
def self.states(country_code = Carmen.default_country, options={})
|
121
123
|
raise NonexistentCountry.new("Country not found for code #{country_code}") unless country_codes.include?(country_code)
|
122
124
|
raise StatesNotSupported unless states?(country_code)
|
123
125
|
|
@@ -138,9 +140,9 @@ module Carmen
|
|
138
140
|
k == country_code
|
139
141
|
end
|
140
142
|
end
|
141
|
-
|
143
|
+
|
142
144
|
protected
|
143
|
-
|
145
|
+
|
144
146
|
def self.search_collection(collection, value, index_to_match, index_to_retrieve)
|
145
147
|
return nil if collection.nil?
|
146
148
|
collection.each do |m|
|
@@ -152,5 +154,4 @@ module Carmen
|
|
152
154
|
end
|
153
155
|
nil
|
154
156
|
end
|
155
|
-
|
156
157
|
end
|
@@ -1,23 +1,22 @@
|
|
1
1
|
module ActionView
|
2
2
|
module Helpers
|
3
3
|
module FormOptionsHelper
|
4
|
-
|
5
4
|
# Return select and option tags for the given object and method, using state_options_for_select to generate the list of option tags.
|
6
5
|
def state_select(object, method, country = Carmen.default_country, options={}, html_options={})
|
7
6
|
InstanceTag.new(object, method, self, options.delete(:object)).to_state_select_tag(country, options, html_options)
|
8
7
|
end
|
9
|
-
|
8
|
+
|
10
9
|
# Return select and option tags for the given object and method, using country_options_for_select to generate the list of option tags.
|
11
10
|
def country_select(object, method, priority_countries = nil, options = {}, html_options = {})
|
12
11
|
InstanceTag.new(object, method, self, options.delete(:object)).to_country_select_tag(priority_countries, options, html_options)
|
13
12
|
end
|
14
|
-
|
13
|
+
|
15
14
|
# Returns a string of option tags containing the state names and codes for the specified country code, or nil
|
16
15
|
# if the states are not know for that country. Supply a state code as +selected+ to have it marked as the selected option tag.
|
17
16
|
def state_options_for_select(selected = nil, country = Carmen.default_country)
|
18
17
|
options_for_select(Carmen.states(country), selected)
|
19
18
|
end
|
20
|
-
|
19
|
+
|
21
20
|
# Returns a string of option tags for pretty much any country in the world. Supply a country name as +selected+ to
|
22
21
|
# have it marked as the selected option tag. You can also supply a list of country codes as additional parameters, so
|
23
22
|
# that they will be listed above the rest of the (long) list.
|
@@ -37,7 +36,7 @@ module ActionView
|
|
37
36
|
return country_options + options_for_select(Carmen.countries, priority_country_codes.include?(selected) ? nil : selected)
|
38
37
|
end
|
39
38
|
end
|
40
|
-
|
39
|
+
|
41
40
|
class InstanceTag
|
42
41
|
def to_country_select_tag(priority_countries, options, html_options)
|
43
42
|
html_options = html_options.stringify_keys
|
@@ -46,7 +45,7 @@ module ActionView
|
|
46
45
|
opts = add_options(country_options_for_select(value, *priority_countries), options, value)
|
47
46
|
content_tag("select", opts, html_options)
|
48
47
|
end
|
49
|
-
|
48
|
+
|
50
49
|
def to_state_select_tag(country, options, html_options)
|
51
50
|
html_options = html_options.stringify_keys
|
52
51
|
add_default_name_and_id(html_options)
|
@@ -55,7 +54,7 @@ module ActionView
|
|
55
54
|
content_tag("select", opts, html_options)
|
56
55
|
end
|
57
56
|
end
|
58
|
-
|
57
|
+
|
59
58
|
class FormBuilder
|
60
59
|
def country_select(method, priority_countries = nil, options = {}, html_options = {})
|
61
60
|
@template.country_select(@object_name, method, priority_countries, options.merge(:object => @object), html_options)
|
@@ -65,4 +64,4 @@ module ActionView
|
|
65
64
|
end
|
66
65
|
end
|
67
66
|
end
|
68
|
-
end
|
67
|
+
end
|
data/lib/carmen/railtie.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
require 'carmen'
|
2
2
|
|
3
3
|
module Carmen
|
4
|
-
|
4
|
+
|
5
5
|
class Railtie < Rails::Railtie
|
6
6
|
if defined? Rails::Railtie
|
7
7
|
require 'rails'
|
8
|
-
|
8
|
+
|
9
9
|
class Railtie < Rails::Railtie
|
10
10
|
config.after_initialize do
|
11
11
|
require 'carmen/action_view_helpers'
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
data/test/carmen_test.rb
CHANGED
@@ -1,101 +1,101 @@
|
|
1
1
|
require File.expand_path('test_helper', File.dirname(__FILE__))
|
2
2
|
|
3
3
|
class TestCarmen < Test::Unit::TestCase
|
4
|
-
|
4
|
+
|
5
5
|
def teardown
|
6
6
|
Carmen.default_locale = :en # restore default
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def test_default_countries
|
10
10
|
assert_equal ['Aland Islands', 'AX'], Carmen.countries[1]
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def test_localized_countries
|
14
14
|
Carmen.default_locale = :de
|
15
15
|
assert_equal ["Ascension (verwaltet von St. Helena)", 'AC'], Carmen.countries[0]
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def test_single_localized_countries_call
|
19
19
|
# Check that we are working with the default
|
20
20
|
assert_equal ['Aland Islands', 'AX'], Carmen.countries[1]
|
21
|
-
|
21
|
+
|
22
22
|
# Switch to a different locale for one call
|
23
23
|
assert_equal ["Ascension (verwaltet von St. Helena)", 'AC'], Carmen.countries(:locale => 'de')[0]
|
24
|
-
|
24
|
+
|
25
25
|
# Make sure that we are back in the default locale
|
26
26
|
assert_equal ['Aland Islands', 'AX'], Carmen.countries[1]
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def test_country_name
|
30
30
|
assert_equal 'United States', Carmen.country_name('US')
|
31
31
|
assert_equal 'United States', Carmen.country_name('us')
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
def test_localized_country_name
|
35
35
|
assert_equal 'Germany', Carmen.country_name('DE')
|
36
36
|
assert_equal 'Deutschland', Carmen.country_name('DE', :locale => :de)
|
37
37
|
Carmen.default_locale = :de
|
38
38
|
assert_equal 'Deutschland', Carmen.country_name('DE')
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
def test_country_code
|
42
42
|
assert_equal 'CA', Carmen.country_code('Canada')
|
43
43
|
assert_equal 'CA', Carmen.country_code('canada')
|
44
44
|
assert_equal 'IR', Carmen.country_code('Iran')
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def test_localized_country_code
|
48
48
|
assert_equal 'DE', Carmen.country_code('Deutschland', :locale => :de)
|
49
49
|
Carmen.default_locale = :de
|
50
50
|
assert_equal 'DE', Carmen.country_code('Deutschland')
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
def test_country_codes
|
54
54
|
assert_equal 'AF', Carmen.country_codes.first
|
55
55
|
assert_equal 245, Carmen.country_codes.length
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
def test_country_names
|
59
59
|
assert_equal 'Afghanistan', Carmen.country_names.first
|
60
60
|
assert_equal 245, Carmen.country_names.length
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
def test_state_name
|
64
64
|
assert_equal 'IL', Carmen.state_code('Illinois')
|
65
65
|
assert_equal 'MB', Carmen.state_code('Manitoba', 'CA')
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
def test_state_code
|
69
69
|
assert_equal 'Arizona', Carmen.state_name('AZ')
|
70
70
|
assert_equal 'Prince Edward Island', Carmen.state_name('PE', 'CA')
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def test_states
|
74
|
-
assert_equal
|
74
|
+
assert_equal 62, Carmen.states.length
|
75
75
|
assert_equal ['Alabama', 'AL'], Carmen.states.first
|
76
76
|
assert_equal 13, Carmen.states('CA').length
|
77
77
|
assert_equal ['Alberta', 'AB'], Carmen.states('CA').first
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
def test_state_names
|
81
|
-
assert_equal
|
81
|
+
assert_equal 62, Carmen::state_names.length
|
82
82
|
assert_equal 'Alabama', Carmen::state_names.first
|
83
83
|
assert_equal 13, Carmen.state_names('CA').length
|
84
84
|
assert_equal 'Alberta', Carmen.state_names('CA').first
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
def test_state_codes
|
88
|
-
assert_equal
|
88
|
+
assert_equal 62, Carmen::state_codes.length
|
89
89
|
assert_equal 'AL', Carmen::state_codes.first
|
90
90
|
assert_equal 13, Carmen.state_codes('CA').length
|
91
91
|
assert_equal 'AB', Carmen.state_codes('CA').first
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
def test_supported_states
|
95
95
|
assert Carmen::states?('US')
|
96
96
|
assert_equal Carmen::states?('ZZ'), false
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
def test_excluded_countries
|
100
100
|
Carmen.excluded_countries = [ 'US', 'DE' ]
|
101
101
|
countries = Carmen.countries
|
@@ -123,24 +123,34 @@ class TestCarmen < Test::Unit::TestCase
|
|
123
123
|
Carmen.excluded_states = {}
|
124
124
|
end
|
125
125
|
|
126
|
+
def test_prepended_countries
|
127
|
+
us_original_index = Carmen.countries.index(['United States', 'US'])
|
128
|
+
Carmen.priority_countries = %w(US CA AU)
|
129
|
+
countries = Carmen.countries
|
130
|
+
assert_equal 0, countries.index(['United States', 'US'])
|
131
|
+
assert_equal 1, countries.index(['Canada', 'CA'])
|
132
|
+
assert_equal 2, countries.index(['Australia', 'AU'])
|
133
|
+
|
134
|
+
assert_equal 3 + us_original_index, countries.rindex(['United States', 'US'])
|
135
|
+
|
136
|
+
Carmen.priority_countries = []
|
137
|
+
end
|
138
|
+
|
126
139
|
def test_invalid_country_exception
|
127
140
|
assert_raises Carmen::NonexistentCountry do
|
128
141
|
Carmen::state_codes('ZZ')
|
129
142
|
end
|
130
143
|
end
|
131
|
-
|
144
|
+
|
132
145
|
def test_unsupported_states_exception
|
133
146
|
assert_raises Carmen::StatesNotSupported do
|
134
147
|
Carmen::state_codes('ID')
|
135
148
|
end
|
136
149
|
end
|
137
|
-
|
150
|
+
|
138
151
|
def test_unsupported_locale
|
139
152
|
assert_raises Carmen::UnavailableLocale do
|
140
153
|
Carmen.countries(:locale => :latin)
|
141
154
|
end
|
142
155
|
end
|
143
|
-
|
144
|
-
|
145
|
-
|
146
156
|
end
|
@@ -8,36 +8,32 @@ require 'mocha'
|
|
8
8
|
require File.join('./', File.dirname(__FILE__), '../lib/carmen/action_view_helpers')
|
9
9
|
|
10
10
|
class CarmenViewHelperTest < ActionView::TestCase
|
11
|
-
|
12
11
|
include ActionView::Helpers::FormOptionsHelper
|
13
|
-
|
12
|
+
|
14
13
|
def setup
|
15
14
|
@address = stub(:state => 'IL', :country => 'US', :to_s => 'address')
|
16
15
|
end
|
17
|
-
|
16
|
+
|
18
17
|
def test_state_select_for_us
|
19
18
|
@address.stubs(:state => 'nil')
|
20
19
|
assert_equal US_STATE_SELECT_HTML.chomp, state_select(@address, :state, 'US')
|
21
20
|
end
|
22
|
-
|
21
|
+
|
23
22
|
def test_state_select_for_canada
|
24
23
|
@address.stubs(:state => 'nil')
|
25
24
|
assert_equal CANADA_STATE_SELECT_HTML.chomp, state_select(@address, :state, 'CA')
|
26
25
|
end
|
27
|
-
|
26
|
+
|
28
27
|
def test_country_options_for_select_with_priorities
|
29
28
|
assert_equal COUNTRY_SELECT_OPTIONS_HTML.chomp, country_options_for_select('US', 'US')
|
30
29
|
end
|
31
|
-
|
30
|
+
|
32
31
|
def test_selected_option
|
33
32
|
@address.stubs(:state => 'ON')
|
34
33
|
assert_match /<option value="ON" selected="selected">Ontario<\/option>/, state_select(@address, :state, 'CA')
|
35
34
|
end
|
36
|
-
|
35
|
+
|
37
36
|
COUNTRY_SELECT_OPTIONS_HTML = "<option value=\"US\" selected=\"selected\">United States</option>\n<option value=\"\" disabled=\"disabled\">-------------</option>\n<option value=\"AF\">Afghanistan</option>\n<option value=\"AX\">Aland Islands</option>\n<option value=\"AL\">Albania</option>\n<option value=\"DZ\">Algeria</option>\n<option value=\"AS\">American Samoa</option>\n<option value=\"AD\">Andorra</option>\n<option value=\"AO\">Angola</option>\n<option value=\"AI\">Anguilla</option>\n<option value=\"AQ\">Antarctica</option>\n<option value=\"AG\">Antigua and Barbuda</option>\n<option value=\"AR\">Argentina</option>\n<option value=\"AM\">Armenia</option>\n<option value=\"AW\">Aruba</option>\n<option value=\"AU\">Australia</option>\n<option value=\"AT\">Austria</option>\n<option value=\"AZ\">Azerbaijan</option>\n<option value=\"BS\">Bahamas</option>\n<option value=\"BH\">Bahrain</option>\n<option value=\"BD\">Bangladesh</option>\n<option value=\"BB\">Barbados</option>\n<option value=\"BY\">Belarus</option>\n<option value=\"BE\">Belgium</option>\n<option value=\"BZ\">Belize</option>\n<option value=\"BJ\">Benin</option>\n<option value=\"BM\">Bermuda</option>\n<option value=\"BT\">Bhutan</option>\n<option value=\"BO\">Bolivia</option>\n<option value=\"BA\">Bosnia and Herzegovina</option>\n<option value=\"BW\">Botswana</option>\n<option value=\"BV\">Bouvet Island</option>\n<option value=\"BR\">Brazil</option>\n<option value=\"IO\">British Indian Ocean Territory</option>\n<option value=\"BN\">Brunei Darussalam</option>\n<option value=\"BG\">Bulgaria</option>\n<option value=\"BF\">Burkina Faso</option>\n<option value=\"BI\">Burundi</option>\n<option value=\"KH\">Cambodia</option>\n<option value=\"CM\">Cameroon</option>\n<option value=\"CA\">Canada</option>\n<option value=\"CV\">Cape Verde</option>\n<option value=\"KY\">Cayman Islands</option>\n<option value=\"CF\">Central African Republic</option>\n<option value=\"TD\">Chad</option>\n<option value=\"CL\">Chile</option>\n<option value=\"CN\">China</option>\n<option value=\"CX\">Christmas Island</option>\n<option value=\"CC\">Cocos (Keeling) Islands</option>\n<option value=\"CO\">Colombia</option>\n<option value=\"KM\">Comoros</option>\n<option value=\"CG\">Congo</option>\n<option value=\"CD\">Congo, the Democratic Republic of the</option>\n<option value=\"CK\">Cook Islands</option>\n<option value=\"CR\">Costa Rica</option>\n<option value=\"CI\">Cote D'ivoire</option>\n<option value=\"HR\">Croatia</option>\n<option value=\"CU\">Cuba</option>\n<option value=\"CY\">Cyprus</option>\n<option value=\"CZ\">Czech Republic</option>\n<option value=\"DK\">Denmark</option>\n<option value=\"DJ\">Djibouti</option>\n<option value=\"DM\">Dominica</option>\n<option value=\"DO\">Dominican Republic</option>\n<option value=\"EC\">Ecuador</option>\n<option value=\"EG\">Egypt</option>\n<option value=\"SV\">El Salvador</option>\n<option value=\"GQ\">Equatorial Guinea</option>\n<option value=\"ER\">Eritrea</option>\n<option value=\"EE\">Estonia</option>\n<option value=\"ET\">Ethiopia</option>\n<option value=\"FK\">Falkland Islands (Malvinas)</option>\n<option value=\"FO\">Faroe Islands</option>\n<option value=\"FJ\">Fiji</option>\n<option value=\"FI\">Finland</option>\n<option value=\"FR\">France</option>\n<option value=\"GF\">French Guiana</option>\n<option value=\"PF\">French Polynesia</option>\n<option value=\"TF\">French Southern Territories</option>\n<option value=\"GA\">Gabon</option>\n<option value=\"GM\">Gambia</option>\n<option value=\"GE\">Georgia</option>\n<option value=\"DE\">Germany</option>\n<option value=\"GH\">Ghana</option>\n<option value=\"GI\">Gibraltar</option>\n<option value=\"GR\">Greece</option>\n<option value=\"GL\">Greenland</option>\n<option value=\"GD\">Grenada</option>\n<option value=\"GP\">Guadeloupe</option>\n<option value=\"GU\">Guam</option>\n<option value=\"GT\">Guatemala</option>\n<option value=\"GG\">Guernsey</option>\n<option value=\"GN\">Guinea</option>\n<option value=\"GW\">Guinea-Bissau</option>\n<option value=\"GY\">Guyana</option>\n<option value=\"HT\">Haiti</option>\n<option value=\"HM\">Heard Island and Mcdonald Islands</option>\n<option value=\"VA\">Holy See (Vatican City State)</option>\n<option value=\"HN\">Honduras</option>\n<option value=\"HK\">Hong Kong</option>\n<option value=\"HU\">Hungary</option>\n<option value=\"IS\">Iceland</option>\n<option value=\"IN\">India</option>\n<option value=\"ID\">Indonesia</option>\n<option value=\"IR\">Iran, Islamic Republic of</option>\n<option value=\"IQ\">Iraq</option>\n<option value=\"IE\">Ireland</option>\n<option value=\"IM\">Isle of Man</option>\n<option value=\"IL\">Israel</option>\n<option value=\"IT\">Italy</option>\n<option value=\"JM\">Jamaica</option>\n<option value=\"JP\">Japan</option>\n<option value=\"JE\">Jersey</option>\n<option value=\"JO\">Jordan</option>\n<option value=\"KZ\">Kazakhstan</option>\n<option value=\"KE\">Kenya</option>\n<option value=\"KI\">Kiribati</option>\n<option value=\"KP\">Korea, Democratic People's Republic of</option>\n<option value=\"KR\">Korea, Republic of</option>\n<option value=\"KV\">Kosovo</option>\n<option value=\"KW\">Kuwait</option>\n<option value=\"KG\">Kyrgyzstan</option>\n<option value=\"LA\">Lao People's Democratic Republic</option>\n<option value=\"LV\">Latvia</option>\n<option value=\"LB\">Lebanon</option>\n<option value=\"LS\">Lesotho</option>\n<option value=\"LR\">Liberia</option>\n<option value=\"LY\">Libyan Arab Jamahiriya</option>\n<option value=\"LI\">Liechtenstein</option>\n<option value=\"LT\">Lithuania</option>\n<option value=\"LU\">Luxembourg</option>\n<option value=\"MO\">Macao</option>\n<option value=\"MK\">Macedonia, the Former Yugoslav Republic of</option>\n<option value=\"MG\">Madagascar</option>\n<option value=\"MW\">Malawi</option>\n<option value=\"MY\">Malaysia</option>\n<option value=\"MV\">Maldives</option>\n<option value=\"ML\">Mali</option>\n<option value=\"MT\">Malta</option>\n<option value=\"MH\">Marshall Islands</option>\n<option value=\"MQ\">Martinique</option>\n<option value=\"MR\">Mauritania</option>\n<option value=\"MU\">Mauritius</option>\n<option value=\"YT\">Mayotte</option>\n<option value=\"MX\">Mexico</option>\n<option value=\"FM\">Micronesia, Federated States of</option>\n<option value=\"MD\">Moldova, Republic of</option>\n<option value=\"MC\">Monaco</option>\n<option value=\"MN\">Mongolia</option>\n<option value=\"ME\">Montenegro</option>\n<option value=\"MS\">Montserrat</option>\n<option value=\"MA\">Morocco</option>\n<option value=\"MZ\">Mozambique</option>\n<option value=\"MM\">Myanmar</option>\n<option value=\"NA\">Namibia</option>\n<option value=\"NR\">Nauru</option>\n<option value=\"NP\">Nepal</option>\n<option value=\"NL\">Netherlands</option>\n<option value=\"AN\">Netherlands Antilles</option>\n<option value=\"NC\">New Caledonia</option>\n<option value=\"NZ\">New Zealand</option>\n<option value=\"NI\">Nicaragua</option>\n<option value=\"NE\">Niger</option>\n<option value=\"NG\">Nigeria</option>\n<option value=\"NU\">Niue</option>\n<option value=\"NF\">Norfolk Island</option>\n<option value=\"MP\">Northern Mariana Islands</option>\n<option value=\"NO\">Norway</option>\n<option value=\"OM\">Oman</option>\n<option value=\"PK\">Pakistan</option>\n<option value=\"PW\">Palau</option>\n<option value=\"PS\">Palestinian Territory, Occupied</option>\n<option value=\"PA\">Panama</option>\n<option value=\"PG\">Papua New Guinea</option>\n<option value=\"PY\">Paraguay</option>\n<option value=\"PE\">Peru</option>\n<option value=\"PH\">Philippines</option>\n<option value=\"PN\">Pitcairn</option>\n<option value=\"PL\">Poland</option>\n<option value=\"PT\">Portugal</option>\n<option value=\"PR\">Puerto Rico</option>\n<option value=\"QA\">Qatar</option>\n<option value=\"RE\">Reunion</option>\n<option value=\"RO\">Romania</option>\n<option value=\"RU\">Russian Federation</option>\n<option value=\"RW\">Rwanda</option>\n<option value=\"SH\">Saint Helena</option>\n<option value=\"KN\">Saint Kitts and Nevis</option>\n<option value=\"LC\">Saint Lucia</option>\n<option value=\"PM\">Saint Pierre and Miquelon</option>\n<option value=\"VC\">Saint Vincent and the Grenadines</option>\n<option value=\"WS\">Samoa</option>\n<option value=\"SM\">San Marino</option>\n<option value=\"ST\">Sao Tome and Principe</option>\n<option value=\"SA\">Saudi Arabia</option>\n<option value=\"SN\">Senegal</option>\n<option value=\"RS\">Serbia</option>\n<option value=\"SC\">Seychelles</option>\n<option value=\"SL\">Sierra Leone</option>\n<option value=\"SG\">Singapore</option>\n<option value=\"SK\">Slovakia</option>\n<option value=\"SI\">Slovenia</option>\n<option value=\"SB\">Solomon Islands</option>\n<option value=\"SO\">Somalia</option>\n<option value=\"ZA\">South Africa</option>\n<option value=\"GS\">South Georgia and the South Sandwich Islands</option>\n<option value=\"ES\">Spain</option>\n<option value=\"LK\">Sri Lanka</option>\n<option value=\"SD\">Sudan</option>\n<option value=\"SR\">Suriname</option>\n<option value=\"SJ\">Svalbard and Jan Mayen</option>\n<option value=\"SZ\">Swaziland</option>\n<option value=\"SE\">Sweden</option>\n<option value=\"CH\">Switzerland</option>\n<option value=\"SY\">Syrian Arab Republic</option>\n<option value=\"TW\">Taiwan, Province of China</option>\n<option value=\"TJ\">Tajikistan</option>\n<option value=\"TZ\">Tanzania, United Republic of</option>\n<option value=\"TH\">Thailand</option>\n<option value=\"TL\">Timor-Leste</option>\n<option value=\"TG\">Togo</option>\n<option value=\"TK\">Tokelau</option>\n<option value=\"TO\">Tonga</option>\n<option value=\"TT\">Trinidad and Tobago</option>\n<option value=\"TN\">Tunisia</option>\n<option value=\"TR\">Turkey</option>\n<option value=\"TM\">Turkmenistan</option>\n<option value=\"TC\">Turks and Caicos Islands</option>\n<option value=\"TV\">Tuvalu</option>\n<option value=\"UG\">Uganda</option>\n<option value=\"UA\">Ukraine</option>\n<option value=\"AE\">United Arab Emirates</option>\n<option value=\"GB\">United Kingdom</option>\n<option value=\"US\">United States</option>\n<option value=\"UM\">United States Minor Outlying Islands</option>\n<option value=\"UY\">Uruguay</option>\n<option value=\"UZ\">Uzbekistan</option>\n<option value=\"VU\">Vanuatu</option>\n<option value=\"VE\">Venezuela</option>\n<option value=\"VN\">Viet Nam</option>\n<option value=\"VG\">Virgin Islands, British</option>\n<option value=\"VI\">Virgin Islands, U.S.</option>\n<option value=\"WF\">Wallis and Futuna</option>\n<option value=\"EH\">Western Sahara</option>\n<option value=\"YE\">Yemen</option>\n<option value=\"ZM\">Zambia</option>\n<option value=\"ZW\">Zimbabwe</option>"
|
38
|
-
|
39
|
-
US_STATE_SELECT_HTML = "<select id=\"address_state\" name=\"address[state]\"><option value=\"AL\">Alabama</option>\n<option value=\"AK\">Alaska</option>\n<option value=\"AZ\">Arizona</option>\n<option value=\"AR\">Arkansas</option>\n<option value=\"CA\">California</option>\n<option value=\"CO\">Colorado</option>\n<option value=\"CT\">Connecticut</option>\n<option value=\"DE\">Delaware</option>\n<option value=\"DC\">District Of Columbia</option>\n<option value=\"FL\">Florida</option>\n<option value=\"GA\">Georgia</option>\n<option value=\"HI\">Hawaii</option>\n<option value=\"ID\">Idaho</option>\n<option value=\"IL\">Illinois</option>\n<option value=\"IN\">Indiana</option>\n<option value=\"IA\">Iowa</option>\n<option value=\"KS\">Kansas</option>\n<option value=\"KY\">Kentucky</option>\n<option value=\"LA\">Louisiana</option>\n<option value=\"ME\">Maine</option>\n<option value=\"MD\">Maryland</option>\n<option value=\"MA\">Massachusetts</option>\n<option value=\"MI\">Michigan</option>\n<option value=\"MN\">Minnesota</option>\n<option value=\"MS\">Mississippi</option>\n<option value=\"MO\">Missouri</option>\n<option value=\"MT\">Montana</option>\n<option value=\"NE\">Nebraska</option>\n<option value=\"NV\">Nevada</option>\n<option value=\"NH\">New Hampshire</option>\n<option value=\"NJ\">New Jersey</option>\n<option value=\"NM\">New Mexico</option>\n<option value=\"NY\">New York</option>\n<option value=\"NC\">North Carolina</option>\n<option value=\"ND\">North Dakota</option>\n<option value=\"OH\">Ohio</option>\n<option value=\"OK\">Oklahoma</option>\n<option value=\"OR\">Oregon</option>\n<option value=\"PA\">Pennsylvania</option>\n<option value=\"RI\">Rhode Island</option>\n<option value=\"SC\">South Carolina</option>\n<option value=\"SD\">South Dakota</option>\n<option value=\"TN\">Tennessee</option>\n<option value=\"TX\">Texas</option>\n<option value=\"UT\">Utah</option>\n<option value=\"VT\">Vermont</option>\n<option value=\"VA\">Virginia</option>\n<option value=\"WA\">Washington</option>\n<option value=\"WV\">West Virginia</option>\n<option value=\"WI\">Wisconsin</option>\n<option value=\"WY\">Wyoming</option>\n<option value=\"FM\">Federated States of Micronesia</option>\n<option value=\"GU\">Guam</option>\n<option value=\"MH\">Marshall Islands</option>\n<option value=\"MP\">Northern Mariana Islands</option>\n<option value=\"PW\">Palau</option>\n<option value=\"PR\">Puerto Rico</option>\n<option value=\"VI\">Virgin Islands</option>\n<option value=\"AA\">Armed Forces Americas (except Canada)</option>\n<option value=\"AE\">Armed Forces Europe, Armed Forces Canada, Armed Forces Africa, or Armed Forces Middle East</option>\n<option value=\"AP\">Armed Forces Pacific</option></select>"
|
40
|
-
|
37
|
+
US_STATE_SELECT_HTML = "<select id=\"address_state\" name=\"address[state]\"><option value=\"AL\">Alabama</option>\n<option value=\"AK\">Alaska</option>\n<option value=\"AZ\">Arizona</option>\n<option value=\"AR\">Arkansas</option>\n<option value=\"CA\">California</option>\n<option value=\"CO\">Colorado</option>\n<option value=\"CT\">Connecticut</option>\n<option value=\"DE\">Delaware</option>\n<option value=\"DC\">District Of Columbia</option>\n<option value=\"FL\">Florida</option>\n<option value=\"GA\">Georgia</option>\n<option value=\"HI\">Hawaii</option>\n<option value=\"ID\">Idaho</option>\n<option value=\"IL\">Illinois</option>\n<option value=\"IN\">Indiana</option>\n<option value=\"IA\">Iowa</option>\n<option value=\"KS\">Kansas</option>\n<option value=\"KY\">Kentucky</option>\n<option value=\"LA\">Louisiana</option>\n<option value=\"ME\">Maine</option>\n<option value=\"MD\">Maryland</option>\n<option value=\"MA\">Massachusetts</option>\n<option value=\"MI\">Michigan</option>\n<option value=\"MN\">Minnesota</option>\n<option value=\"MS\">Mississippi</option>\n<option value=\"MO\">Missouri</option>\n<option value=\"MT\">Montana</option>\n<option value=\"NE\">Nebraska</option>\n<option value=\"NV\">Nevada</option>\n<option value=\"NH\">New Hampshire</option>\n<option value=\"NJ\">New Jersey</option>\n<option value=\"NM\">New Mexico</option>\n<option value=\"NY\">New York</option>\n<option value=\"NC\">North Carolina</option>\n<option value=\"ND\">North Dakota</option>\n<option value=\"OH\">Ohio</option>\n<option value=\"OK\">Oklahoma</option>\n<option value=\"OR\">Oregon</option>\n<option value=\"PA\">Pennsylvania</option>\n<option value=\"RI\">Rhode Island</option>\n<option value=\"SC\">South Carolina</option>\n<option value=\"SD\">South Dakota</option>\n<option value=\"TN\">Tennessee</option>\n<option value=\"TX\">Texas</option>\n<option value=\"UT\">Utah</option>\n<option value=\"VT\">Vermont</option>\n<option value=\"VA\">Virginia</option>\n<option value=\"WA\">Washington</option>\n<option value=\"WV\">West Virginia</option>\n<option value=\"WI\">Wisconsin</option>\n<option value=\"WY\">Wyoming</option>\n<option value=\"AS\">American Samoa</option>\n<option value=\"FM\">Federated States of Micronesia</option>\n<option value=\"GU\">Guam</option>\n<option value=\"MH\">Marshall Islands</option>\n<option value=\"MP\">Northern Mariana Islands</option>\n<option value=\"PW\">Palau</option>\n<option value=\"PR\">Puerto Rico</option>\n<option value=\"VI\">Virgin Islands</option>\n<option value=\"AA\">Armed Forces Americas (except Canada)</option>\n<option value=\"AE\">Armed Forces Europe, Canada, Africa, or Middle East</option>\n<option value=\"AP\">Armed Forces Pacific</option></select>"
|
41
38
|
CANADA_STATE_SELECT_HTML = "<select id=\"address_state\" name=\"address[state]\"><option value=\"AB\">Alberta</option>\n<option value=\"BC\">British Columbia</option>\n<option value=\"MB\">Manitoba</option>\n<option value=\"NB\">New Brunswick</option>\n<option value=\"NL\">Newfoundland and Labrador</option>\n<option value=\"NT\">Northwest Territories</option>\n<option value=\"NS\">Nova Scotia</option>\n<option value=\"NU\">Nunavut</option>\n<option value=\"ON\">Ontario</option>\n<option value=\"PE\">Prince Edward Island</option>\n<option value=\"QC\">Quebec</option>\n<option value=\"SK\">Saskatchewan</option>\n<option value=\"YT\">Yukon</option></select>"
|
42
|
-
|
43
39
|
end
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: carmen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 2
|
9
|
-
- 7
|
10
|
-
version: 0.2.7
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.8
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Jim Benton
|
@@ -15,65 +10,52 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-06-01 00:00:00 -05:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
17
|
name: jeweler
|
23
|
-
prerelease: false
|
24
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
19
|
none: false
|
26
20
|
requirements:
|
27
21
|
- - "="
|
28
22
|
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 4
|
33
|
-
version: "1.4"
|
23
|
+
version: 1.6.2
|
34
24
|
type: :development
|
25
|
+
prerelease: false
|
35
26
|
version_requirements: *id001
|
36
27
|
- !ruby/object:Gem::Dependency
|
37
28
|
name: mocha
|
38
|
-
prerelease: false
|
39
29
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
30
|
none: false
|
41
31
|
requirements:
|
42
32
|
- - ">="
|
43
33
|
- !ruby/object:Gem::Version
|
44
|
-
hash: 3
|
45
|
-
segments:
|
46
|
-
- 0
|
47
34
|
version: "0"
|
48
35
|
type: :development
|
36
|
+
prerelease: false
|
49
37
|
version_requirements: *id002
|
50
38
|
- !ruby/object:Gem::Dependency
|
51
39
|
name: rails
|
52
|
-
prerelease: false
|
53
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
41
|
none: false
|
55
42
|
requirements:
|
56
43
|
- - ">="
|
57
44
|
- !ruby/object:Gem::Version
|
58
|
-
hash: 3
|
59
|
-
segments:
|
60
|
-
- 0
|
61
45
|
version: "0"
|
62
46
|
type: :development
|
47
|
+
prerelease: false
|
63
48
|
version_requirements: *id003
|
64
49
|
- !ruby/object:Gem::Dependency
|
65
50
|
name: hanna
|
66
|
-
prerelease: false
|
67
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
52
|
none: false
|
69
53
|
requirements:
|
70
54
|
- - ">="
|
71
55
|
- !ruby/object:Gem::Version
|
72
|
-
hash: 3
|
73
|
-
segments:
|
74
|
-
- 0
|
75
56
|
version: "0"
|
76
57
|
type: :development
|
58
|
+
prerelease: false
|
77
59
|
version_requirements: *id004
|
78
60
|
description: A collection of geographic country and state names for Ruby. Also includes replacements for Rails' country_select and state_select plugins
|
79
61
|
email: jim@autonomousmachine.com
|
@@ -84,7 +66,6 @@ extensions: []
|
|
84
66
|
extra_rdoc_files:
|
85
67
|
- README.rdoc
|
86
68
|
files:
|
87
|
-
- .gitignore
|
88
69
|
- Gemfile
|
89
70
|
- MIT-LICENSE
|
90
71
|
- README.rdoc
|
@@ -93,6 +74,8 @@ files:
|
|
93
74
|
- carmen.gemspec
|
94
75
|
- data/countries/de.yml
|
95
76
|
- data/countries/en.yml
|
77
|
+
- data/countries/hi.yml
|
78
|
+
- data/countries/nl.yml
|
96
79
|
- data/states/au.yml
|
97
80
|
- data/states/br.yml
|
98
81
|
- data/states/ca.yml
|
@@ -119,8 +102,8 @@ homepage: http://github.com/jim/carmen
|
|
119
102
|
licenses: []
|
120
103
|
|
121
104
|
post_install_message:
|
122
|
-
rdoc_options:
|
123
|
-
|
105
|
+
rdoc_options: []
|
106
|
+
|
124
107
|
require_paths:
|
125
108
|
- lib
|
126
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -128,27 +111,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
111
|
requirements:
|
129
112
|
- - ">="
|
130
113
|
- !ruby/object:Gem::Version
|
131
|
-
hash: 3
|
132
|
-
segments:
|
133
|
-
- 0
|
134
114
|
version: "0"
|
135
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
116
|
none: false
|
137
117
|
requirements:
|
138
118
|
- - ">="
|
139
119
|
- !ruby/object:Gem::Version
|
140
|
-
hash: 3
|
141
|
-
segments:
|
142
|
-
- 0
|
143
120
|
version: "0"
|
144
121
|
requirements: []
|
145
122
|
|
146
123
|
rubyforge_project:
|
147
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.6.2
|
148
125
|
signing_key:
|
149
126
|
specification_version: 3
|
150
127
|
summary: A collection of geographic country and state names for Ruby
|
151
|
-
test_files:
|
152
|
-
|
153
|
-
- test/carmen_view_helper_test.rb
|
154
|
-
- test/test_helper.rb
|
128
|
+
test_files: []
|
129
|
+
|