snail 2.0.0 → 2.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 262c3219f21ad619b858424c360885d11d3f1522
4
- data.tar.gz: c6f39b55987d70ac3715c808e6c1b2aa45e8a747
2
+ SHA256:
3
+ metadata.gz: f19d56cbe8024958d5dffab42559e45514554c3f9dddfddcfff643ff8144b026
4
+ data.tar.gz: 2bd285f154e25407a20c1910d0d2796ff1b219b1b454213402cca2b63d207f64
5
5
  SHA512:
6
- metadata.gz: d6269557deae28f0d52d330824fdc99123e447e95937185412761a61782518ab6f195491e19f86017649b3421420b5ba66fe2f931e6975ff2aa34e60f5bb66c7
7
- data.tar.gz: d1a6b9356bf78d26f5480cf65be7a8bdb26dbd57c5e1c7f3c33354ef5ca2556e2a784bfdac932c4cd2c0c61755f162e0ff1272ac82e0ff4d562f0b0b11d88910
6
+ metadata.gz: 111fa30f8a1b7a1bcedc910640035612234503fb3c5f96a5ec2ca0eaab3b9953679234f2f0e273a34bf91bdbf1893193a5f217e3d6080d5eeb6854d164991c54
7
+ data.tar.gz: 0fe491fda518ad2755120af50a429e94efb87938cfee526b90b86fdcba5df698c27d3dd904b9e7b0abd1c19670b8999074121c2b1b79a32e56730ee001021102
data/README.md CHANGED
@@ -48,6 +48,23 @@ Snail.new(
48
48
  => "Jon Doe\n12345 Somewhere Ln\nBENTLEY WA 6102"
49
49
  ```
50
50
 
51
+ You can override this default behavior by specifying `with_country` as `true` or `false`:
52
+
53
+ ```ruby
54
+ Snail.home_country = "Australia"
55
+ Snail.new(
56
+ :name => "Jon Doe",
57
+ :line_1 => "12345 Somewhere Ln",
58
+ :line_2 => nil,
59
+ :city => "Bentley",
60
+ :region => "WA",
61
+ :postal_code => "6102",
62
+ :country => "AU"
63
+ ).to_s(with_country: true)
64
+
65
+ => "Jon Doe\n12345 Somewhere Ln\nBentley WA 6102\nAUSTRALIA"
66
+ ```
67
+
51
68
  See the test cases for more.
52
69
 
53
70
  ## Fun Times
data/assets/DE.yml CHANGED
@@ -119,7 +119,7 @@ KI: KIRIBATI
119
119
  KM: KOMOREN
120
120
  KN: ST. KITTS UND NEVIS
121
121
  KP: NORDKOREA
122
- KR: SÜDKOREA
122
+ KR: REPUBLIK KOREA
123
123
  KW: KUWAIT
124
124
  KY: KAIMANINSELN
125
125
  KZ: KASACHSTAN
data/assets/NA.yml CHANGED
@@ -242,6 +242,7 @@ VN: VIETNAM
242
242
  VU: VANUATU
243
243
  WF: WALLIS & FUTUNA
244
244
  WS: SAMOA
245
+ XK: KOSOVO
245
246
  YE: YEMEN
246
247
  YT: MAYOTTE
247
248
  ZA: SOUTH AFRICA
data/lib/snail.rb CHANGED
@@ -5,7 +5,6 @@ require 'snail/helpers'
5
5
 
6
6
  require 'cgi'
7
7
  require 'active_support/core_ext/string/output_safety'
8
- require 'yaml'
9
8
 
10
9
  class Snail
11
10
  include Snail::Initializable
@@ -15,51 +14,17 @@ class Snail
15
14
  # this will be raised whenever initialization doesn't recognize a key
16
15
  class UnknownAttribute < ArgumentError; end
17
16
 
18
- # My made-up standard fields.
19
- attr_accessor :name
20
- attr_accessor :line_1
21
- attr_accessor :line_2
22
- attr_accessor :city
23
- attr_accessor :region
24
- attr_accessor :postal_code
25
- attr_reader :country
26
-
27
- # Store country as ISO-3166 Alpha 2
28
- def country=(val)
29
- @country = Snail.lookup_country_iso(val)
30
- end
31
-
32
- # Aliases for easier assignment compatibility
33
- {
34
- :full_name => :name,
35
- :street => :line_1,
36
- :street_1 => :line_1,
37
- :street1 => :line_1,
38
- :street_2 => :line_2,
39
- :street2 => :line_2,
40
- :town => :city,
41
- :locality => :city,
42
- :state => :region,
43
- :province => :region,
44
- :zip => :postal_code,
45
- :zip_code => :postal_code,
46
- :postcode => :postal_code
47
- }.each do |new, existing|
48
- alias_method "#{new}=", "#{existing}="
49
- end
50
-
51
17
  # Load the SnailHelpers module into ActionView::Base. Previously this was done
52
18
  # automatically, but going forward it must be included explicitly by calling
53
19
  # Snail.load_helpers.
54
20
  def self.load_helpers
55
- if defined? ActionView
56
- warn '[DEPRECATION] Snail::Helpers will be removed in a future release.'
57
- ActionView::Base.class_eval { include Snail::Helpers }
58
- end
21
+ return unless defined? ActionView
22
+ warn '[DEPRECATION] Snail::Helpers will be removed in a future release.'
23
+ ActionView::Base.class_eval { include Snail::Helpers }
59
24
  end
60
25
 
61
26
  def self.home_country
62
- @home_country ||= "US"
27
+ @home_country ||= 'US'
63
28
  end
64
29
 
65
30
  def self.home_country=(val)
@@ -67,19 +32,46 @@ class Snail
67
32
  end
68
33
 
69
34
  def self.lookup_country_iso(val)
70
- return nil if val.nil? || val.empty?
35
+ return if val.nil? || val.empty?
71
36
  val = val.upcase
72
37
  if ::Snail::Iso3166::ALPHA2[val]
73
38
  val
74
- elsif iso = ::Snail::Iso3166::ALPHA2_EXCEPTIONS[val]
75
- iso
76
- elsif iso = ::Snail::Iso3166::ALPHA3_TO_ALPHA2[val]
77
- iso
78
39
  else
79
- nil
40
+ ::Snail::Iso3166::ALPHA2_EXCEPTIONS[val] || ::Snail::Iso3166::ALPHA3_TO_ALPHA2[val]
80
41
  end
81
42
  end
82
43
 
44
+ # Snail's canonical fields
45
+ attr_accessor :name
46
+ alias full_name= name=
47
+
48
+ attr_accessor :line_1
49
+ alias street= line_1=
50
+ alias street_1= line_1=
51
+ alias street1= line_1=
52
+
53
+ attr_accessor :line_2
54
+ alias street_2= line_2=
55
+ alias street2= line_2=
56
+
57
+ attr_accessor :city
58
+ alias town= city=
59
+ alias locality= city=
60
+
61
+ attr_accessor :region
62
+ alias state= region=
63
+ alias province= region=
64
+
65
+ attr_accessor :postal_code
66
+ alias zip= postal_code=
67
+ alias zip_code= postal_code=
68
+ alias postcode= postal_code=
69
+
70
+ attr_reader :country
71
+ def country=(val)
72
+ @country = Snail.lookup_country_iso(val)
73
+ end
74
+
83
75
  # Where the mail is coming from.
84
76
  def origin=(val)
85
77
  @origin = Snail.lookup_country_iso(val)
@@ -90,12 +82,26 @@ class Snail
90
82
  @origin ||= Snail.home_country
91
83
  end
92
84
 
93
- def to_s
94
- [name, line_1, line_2, city_line, country_line].select{|line| !(line.nil? or line.empty?)}.join("\n")
85
+ def international?
86
+ country && origin != country
95
87
  end
96
88
 
97
- def to_html
98
- CGI.escapeHTML(to_s).gsub("\n", '<br />').html_safe
89
+ def to_s(with_country: nil)
90
+ with_country = true if with_country.nil? && international?
91
+
92
+ [
93
+ name,
94
+ line_1,
95
+ line_2,
96
+ city_line,
97
+ (country_line if with_country)
98
+ ]
99
+ .reject { |line| line.nil? || line.empty? }
100
+ .join("\n")
101
+ end
102
+
103
+ def to_html(with_country: nil)
104
+ CGI.escapeHTML(to_s(with_country: with_country)).gsub("\n", '<br />').html_safe
99
105
  end
100
106
 
101
107
  # this method will get much larger. completeness is out of my scope at this time.
@@ -109,10 +115,10 @@ class Snail
109
115
  when 'MX', 'SK'
110
116
  "#{postal_code} #{city}, #{region}"
111
117
  when 'IT'
112
- "#{postal_code} #{city} (#{region})"
118
+ "#{postal_code} #{city} #{region}"
113
119
  when 'BY'
114
- "#{postal_code} #{city}-(#{region})"
115
- when 'US', 'CA', 'AU', nil, ""
120
+ "#{postal_code} #{city}-#{region}"
121
+ when 'US', 'CA', 'AU', nil, ''
116
122
  "#{city} #{region} #{postal_code}"
117
123
  when 'IL', 'DK', 'FI', 'FR', 'DE', 'GR', 'NO', 'ES', 'SE', 'TR', 'CY', 'PT', 'MK', 'BA'
118
124
  "#{postal_code} #{city}"
@@ -121,7 +127,7 @@ class Snail
121
127
  when 'NL'
122
128
  "#{postal_code} #{city}"
123
129
  when 'IE'
124
- "#{city}, #{region}"
130
+ "#{city}, #{region}#{"\n" unless postal_code.nil? || postal_code.empty?}#{postal_code}"
125
131
  when 'GB', 'RU', 'UA', 'JO', 'LB', 'IR', 'SA', 'NZ'
126
132
  "#{city} #{postal_code}" # Locally these may be on separate lines. The USPS prefers the city line above the country line, though.
127
133
  when 'EC'
@@ -143,7 +149,7 @@ class Snail
143
149
  when 'CZ'
144
150
  "#{postal_code} #{region}\n#{city}"
145
151
  else
146
- if Kernel.const_defined?("Rails")
152
+ if Kernel.const_defined?('Rails')
147
153
  Rails.logger.error "[Snail] Unknown Country: #{country}"
148
154
  end
149
155
  "#{city} #{region} #{postal_code}"
@@ -151,9 +157,7 @@ class Snail
151
157
  end
152
158
 
153
159
  def country_line
154
- if country and self.origin != country
155
- (translated_country(self.origin, country) || translated_country("US", country))
156
- end
160
+ (translated_country(origin, @country) || translated_country('US', @country))
157
161
  end
158
162
 
159
163
  def translated_country(origin, country)
@@ -1,268 +1,265 @@
1
1
  # -*- encoding : utf-8 -*-
2
-
3
- # TODO: carmen
4
2
  class Snail
5
-
6
3
  module Iso3166
7
4
  # as of January 28, 2013
8
5
  # pulled http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
9
6
  ALPHA2 = {
10
- 'AC' => ["ASCENSION", "ASCENSION ISLAND"],
11
- 'AD' => ["ANDORRA"],
12
- 'AE' => ["UNITED ARAB EMIRATES"],
13
- 'AF' => ["AFGHANISTAN"],
14
- 'AG' => ["ANTIGUA AND BARBUDA"],
15
- 'AI' => ["ANGUILLA"],
16
- 'AL' => ["ALBANIA"],
17
- 'AM' => ["ARMENIA"],
18
- 'AN' => ["NETHERLANDS ANTILLES"],
19
- 'AO' => ["ANGOLA"],
20
- 'AQ' => ["ANTARCTICA"],
21
- 'AR' => ["ARGENTINA"],
22
- 'AS' => ["AMERICAN SAMOA"],
23
- 'AT' => ["AUSTRIA"],
24
- 'AU' => ["AUSTRALIA"],
25
- 'AW' => ["ARUBA"],
26
- 'AX' => ["ALAND ISLANDS"],
27
- 'AZ' => ["AZERBAIJAN"],
28
- 'BA' => ["BOSNIA AND HERZEGOVINA"],
29
- 'BB' => ["BARBADOS"],
30
- 'BD' => ["BANGLADESH"],
31
- 'BE' => ["BELGIUM"],
32
- 'BF' => ["BURKINA FASO"],
33
- 'BG' => ["BULGARIA"],
34
- 'BH' => ["BAHRAIN"],
35
- 'BI' => ["BURUNDI"],
36
- 'BJ' => ["BENIN"],
37
- 'BL' => ["SAINT BARTHELEMY"],
38
- 'BM' => ["BERMUDA"],
39
- 'BN' => ["BRUNEI DARUSSALAM"],
40
- 'BO' => ["BOLIVIA"],
41
- 'BR' => ["BRAZIL"],
42
- 'BS' => ["BAHAMAS"],
43
- 'BT' => ["BHUTAN"],
44
- 'BV' => ["BOUVET ISLAND"],
45
- 'BW' => ["BOTSWANA"],
46
- 'BY' => ["BELARUS"],
47
- 'BZ' => ["BELIZE"],
48
- 'CA' => ["CANADA"],
49
- 'CC' => ["COCOS (KEELING) ISLANDS"],
50
- 'CD' => ["DEMOCRATIC REPUBLIC OF THE CONGO"],
51
- 'CF' => ["CENTRAL AFRICAN REPUBLIC"],
52
- 'CG' => ["CONGO", "REPUBLIC OF THE CONGO"],
53
- 'CH' => ["SWITZERLAND"],
54
- 'CI' => ["COTE D'IVOIRE", "CÔTE D'IVOIRE", "IVORY COAST", "REPUBLIC OF CÔTE D'IVOIRE"],
55
- 'CK' => ["COOK ISLANDS"],
56
- 'CL' => ["CHILE"],
57
- 'CM' => ["CAMEROON"],
58
- 'CN' => ["CHINA", "PEOPLE'S REPUBLIC OF CHINA"],
59
- 'CO' => ["COLOMBIA"],
60
- 'CP' => ["CLIPPERTON ISLAND"],
61
- 'CR' => ["COSTA RICA"],
62
- 'CU' => ["CUBA"],
63
- 'CV' => ["CAPE VERDE"],
64
- 'CW' => ["CURACAO", "CURAçAO"],
65
- 'CX' => ["CHRISTMAS ISLAND"],
66
- 'CY' => ["CYPRUS"],
67
- 'CZ' => ["CZECH REPUBLIC"],
68
- 'DE' => ["GERMANY"],
69
- 'DG' => ["DIEGO GARCIA"],
70
- 'DJ' => ["DJIBOUTI"],
71
- 'DK' => ["DENMARK"],
72
- 'DM' => ["DOMINICA"],
73
- 'DO' => ["DOMINICAN REPUBLIC"],
74
- 'DZ' => ["ALGERIA"],
75
- 'EA' => ["CEUTA, MELILLA"],
76
- 'EC' => ["ECUADOR"],
77
- 'EE' => ["ESTONIA"],
78
- 'EG' => ["EGYPT"],
79
- 'EH' => ["WESTERN SAHARA"],
80
- 'ER' => ["ERITREA"],
81
- 'ES' => ["SPAIN"],
82
- 'ET' => ["ETHIOPIA"],
83
- 'EU' => ["EUROPEAN UNION"],
84
- 'FI' => ["FINLAND"],
85
- 'FJ' => ["FIJI"],
86
- 'FK' => ["FALKLAND ISLANDS"],
87
- 'FM' => ["MICRONESIA"],
88
- 'FO' => ["FAROE ISLANDS"],
89
- 'FR' => ["FRANCE"],
90
- 'GA' => ["GABON"],
91
- 'GB' => ["UNITED KINGDOM", "ENGLAND", "NORTHERN IRELAND", "SCOTLAND", "WALES"],
92
- 'GD' => ["GRENADA"],
93
- 'GE' => ["GEORGIA"],
94
- 'GF' => ["FRENCH GUIANA"],
95
- 'GG' => ["GUERNSEY"],
96
- 'GH' => ["GHANA"],
97
- 'GI' => ["GIBRALTAR"],
98
- 'GL' => ["GREENLAND"],
99
- 'GM' => ["GAMBIA"],
100
- 'GN' => ["GUINEA"],
101
- 'GP' => ["GUADELOUPE"],
102
- 'GQ' => ["EQUATORIAL GUINEA"],
103
- 'GR' => ["GREECE"],
104
- 'GS' => ["SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS", "SOUTH GEORGIA", "SOUTH SANDWICH ISLANDS"],
105
- 'GT' => ["GUATEMALA"],
106
- 'GU' => ["GUAM"],
107
- 'GW' => ["GUINEA-BISSAU"],
108
- 'GY' => ["GUYANA"],
109
- 'HK' => ["HONG KONG"],
110
- 'HM' => ["HEARD ISLAND AND MCDONALD ISLANDS"],
111
- 'HN' => ["HONDURAS"],
112
- 'HR' => ["CROATIA"],
113
- 'HT' => ["HAITI"],
114
- 'HU' => ["HUNGARY"],
115
- 'IC' => ["CANARY ISLANDS"],
116
- 'ID' => ["INDONESIA"],
117
- 'IE' => ["IRELAND"],
118
- 'IL' => ["ISRAEL"],
119
- 'IM' => ["ISLE OF MAN"],
120
- 'IN' => ["INDIA"],
121
- 'IO' => ["BRITISH INDIAN OCEAN TERRITORY"],
122
- 'IQ' => ["IRAQ"],
123
- 'IR' => ["IRAN", "ISLAMIC REPUBLIC OF IRAN"],
124
- 'IS' => ["ICELAND"],
125
- 'IT' => ["ITALY"],
126
- 'JE' => ["JERSEY"],
127
- 'JM' => ["JAMAICA"],
128
- 'JO' => ["JORDAN"],
129
- 'JP' => ["JAPAN"],
130
- 'KE' => ["KENYA"],
131
- 'KG' => ["KYRGYZSTAN"],
132
- 'KH' => ["CAMBODIA"],
133
- 'KI' => ["KIRIBATI"],
134
- 'KM' => ["COMOROS"],
135
- 'KN' => ["SAINT KITTS AND NEVIS"],
136
- 'KP' => ["NORTH KOREA", "DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA"],
137
- 'KR' => ["SOUTH KOREA", "KOREA", "REPUBLIC OF KOREA"],
138
- 'KW' => ["KUWAIT"],
139
- 'KY' => ["CAYMAN ISLANDS"],
140
- 'KZ' => ["KAZAKHSTAN"],
141
- 'LA' => ["LAOS"],
142
- 'LB' => ["LEBANON"],
143
- 'LC' => ["SAINT LUCIA"],
144
- 'LI' => ["LIECHTENSTEIN"],
145
- 'LK' => ["SRI LANKA"],
146
- 'LR' => ["LIBERIA"],
147
- 'LS' => ["LESOTHO"],
148
- 'LT' => ["LITHUANIA"],
149
- 'LU' => ["LUXEMBOURG"],
150
- 'LV' => ["LATVIA"],
151
- 'LY' => ["LIBYA", "STATE OF LIBYA", "LIBYAN ARAB JAMAHIRIYA"],
152
- 'MA' => ["MOROCCO"],
153
- 'MC' => ["MONACO"],
154
- 'MD' => ["MOLDOVA"],
155
- 'ME' => ["MONTENEGRO"],
156
- 'MF' => ["SAINT MARTIN"],
157
- 'MG' => ["MADAGASCAR"],
158
- 'MH' => ["MARSHALL ISLANDS"],
159
- 'MK' => ["MACEDONIA"],
160
- 'ML' => ["MALI"],
161
- 'MM' => ["MYANMAR"],
162
- 'MN' => ["MONGOLIA"],
163
- 'MO' => ["MACAO"],
164
- 'MP' => ["NORTHERN MARIANA ISLANDS"],
165
- 'MQ' => ["MARTINIQUE"],
166
- 'MR' => ["MAURITANIA"],
167
- 'MS' => ["MONTSERRAT"],
168
- 'MT' => ["MALTA"],
169
- 'MU' => ["MAURITIUS"],
170
- 'MV' => ["MALDIVES"],
171
- 'MW' => ["MALAWI"],
172
- 'MX' => ["MEXICO"],
173
- 'MY' => ["MALAYSIA"],
174
- 'MZ' => ["MOZAMBIQUE"],
175
- 'NA' => ["NAMIBIA"],
176
- 'NC' => ["NEW CALEDONIA"],
177
- 'NE' => ["NIGER"],
178
- 'NF' => ["NORFOLK ISLAND"],
179
- 'NG' => ["NIGERIA"],
180
- 'NI' => ["NICARAGUA"],
181
- 'NL' => ["NETHERLANDS"],
182
- 'NO' => ["NORWAY"],
183
- 'NP' => ["NEPAL"],
184
- 'NR' => ["NAURU"],
185
- 'NU' => ["NIUE"],
186
- 'NZ' => ["NEW ZEALAND"],
187
- 'OM' => ["OMAN"],
188
- 'PA' => ["PANAMA"],
189
- 'PE' => ["PERU"],
190
- 'PF' => ["FRENCH POLYNESIA"],
191
- 'PG' => ["PAPUA NEW GUINEA"],
192
- 'PH' => ["PHILIPPINES"],
193
- 'PK' => ["PAKISTAN"],
194
- 'PL' => ["POLAND"],
195
- 'PM' => ["SAINT PIERRE AND MIQUELON"],
196
- 'PN' => ["PITCAIRN", "PITCAIRN ISLAND", "PITCAIRN ISLANDS"],
197
- 'PR' => ["PUERTO RICO"],
198
- 'PS' => ["PALESTINIAN TERRITORIES", "PALESTINIAN TERRITORY", "OCCUPIED PALESTINIAN TERRITORIES"],
199
- 'PT' => ["PORTUGAL"],
200
- 'PW' => ["PALAU"],
201
- 'PY' => ["PARAGUAY"],
202
- 'QA' => ["QATAR"],
203
- 'RE' => ["REUNION"],
204
- 'RO' => ["ROMANIA"],
205
- 'RS' => ["SERBIA"],
206
- 'RU' => ["RUSSIAN FEDERATION", "RUSSIA"],
207
- 'RW' => ["RWANDA"],
208
- 'SA' => ["SAUDI ARABIA"],
209
- 'SB' => ["SOLOMON ISLANDS"],
210
- 'SC' => ["SEYCHELLES"],
211
- 'SD' => ["SUDAN"],
212
- 'SE' => ["SWEDEN"],
213
- 'SG' => ["SINGAPORE"],
214
- 'SH' => ["SAINT HELENA"],
215
- 'SI' => ["SLOVENIA"],
216
- 'SJ' => ["SVALBARD AND JAN MAYEN"],
217
- 'SK' => ["SLOVAKIA", "SLOVAK REPUBLIC"],
218
- 'SL' => ["SIERRA LEONE"],
219
- 'SM' => ["SAN MARINO"],
220
- 'SN' => ["SENEGAL"],
221
- 'SO' => ["SOMALIA"],
222
- 'SR' => ["SURINAME"],
223
- 'SS' => ["SOUTH SUDAN"],
224
- 'ST' => ["SAO TOME AND PRINCIPE"],
225
- 'SV' => ["EL SALVADOR"],
226
- 'SY' => ["SYRIAN ARAB REPUBLIC", "SYRIA"],
227
- 'SZ' => ["SWAZILAND"],
228
- 'TA' => ["TRISTAN DA CUNHA"],
229
- 'TC' => ["TURKS AND CAICOS ISLANDS"],
230
- 'TD' => ["CHAD"],
231
- 'TF' => ["FRENCH SOUTHERN TERRITORIES"],
232
- 'TG' => ["TOGO"],
233
- 'TH' => ["THAILAND"],
234
- 'TJ' => ["TAJIKISTAN"],
235
- 'TK' => ["TOKELAU"],
236
- 'TL' => ["TIMOR-LESTE", "EAST TIMOR", "DEMOCRATIC REPUBLIC OF TIMOR-LESTE"],
237
- 'TM' => ["TURKMENISTAN"],
238
- 'TN' => ["TUNISIA"],
239
- 'TO' => ["TONGA"],
240
- 'TR' => ["TURKEY"],
241
- 'TT' => ["TRINIDAD AND TOBAGO"],
242
- 'TV' => ["TUVALU"],
243
- 'TW' => ["TAIWAN"],
244
- 'TZ' => ["TANZANIA"],
245
- 'UA' => ["UKRAINE"],
246
- 'UG' => ["UGANDA"],
247
- 'UM' => ["UNITED STATES MINOR OUTLYING ISLANDS"],
248
- 'US' => ["UNITED STATES", "UNITED STATES OF AMERICA"],
249
- 'UY' => ["URUGUAY"],
250
- 'UZ' => ["UZBEKISTAN"],
251
- 'VA' => ["VATICAN CITY"],
252
- 'VC' => ["SAINT VINCENT AND THE GRENADINES"],
253
- 'VE' => ["VENEZUELA"],
254
- 'VG' => ["VIRGIN ISLANDS, BRITISH", "BRITISH VIRGIN ISLANDS"],
255
- 'VI' => ["VIRGIN ISLANDS, U.S."],
256
- 'VN' => ["VIET NAM", "VIETNAM", "SOCIALIST REPUBLIC OF VIETNAM"],
257
- 'VU' => ["VANUATU"],
258
- 'WF' => ["WALLIS AND FUTUNA", "WALLIS AND FUTUNA ISLANDS"],
259
- 'WS' => ["SAMOA", "INDEPENDENT STATE OF SAMOA", "WESTERN SAMOA"],
260
- 'XK' => ["KOSOVO"],
261
- 'YE' => ["YEMEN"],
262
- 'YT' => ["MAYOTTE"],
263
- 'ZA' => ["SOUTH AFRICA"],
264
- 'ZM' => ["ZAMBIA"],
265
- 'ZW' => ["ZIMBABWE"]
7
+ 'AC' => ['ASCENSION', 'ASCENSION ISLAND'],
8
+ 'AD' => ['ANDORRA'],
9
+ 'AE' => ['UNITED ARAB EMIRATES'],
10
+ 'AF' => ['AFGHANISTAN'],
11
+ 'AG' => ['ANTIGUA AND BARBUDA'],
12
+ 'AI' => ['ANGUILLA'],
13
+ 'AL' => ['ALBANIA'],
14
+ 'AM' => ['ARMENIA'],
15
+ 'AN' => ['NETHERLANDS ANTILLES'],
16
+ 'AO' => ['ANGOLA'],
17
+ 'AQ' => ['ANTARCTICA'],
18
+ 'AR' => ['ARGENTINA'],
19
+ 'AS' => ['AMERICAN SAMOA'],
20
+ 'AT' => ['AUSTRIA'],
21
+ 'AU' => ['AUSTRALIA'],
22
+ 'AW' => ['ARUBA'],
23
+ 'AX' => ['ALAND ISLANDS'],
24
+ 'AZ' => ['AZERBAIJAN'],
25
+ 'BA' => ['BOSNIA AND HERZEGOVINA'],
26
+ 'BB' => ['BARBADOS'],
27
+ 'BD' => ['BANGLADESH'],
28
+ 'BE' => ['BELGIUM'],
29
+ 'BF' => ['BURKINA FASO'],
30
+ 'BG' => ['BULGARIA'],
31
+ 'BH' => ['BAHRAIN'],
32
+ 'BI' => ['BURUNDI'],
33
+ 'BJ' => ['BENIN'],
34
+ 'BL' => ['SAINT BARTHELEMY'],
35
+ 'BM' => ['BERMUDA'],
36
+ 'BN' => ['BRUNEI DARUSSALAM'],
37
+ 'BO' => ['BOLIVIA'],
38
+ 'BR' => ['BRAZIL'],
39
+ 'BS' => ['BAHAMAS'],
40
+ 'BT' => ['BHUTAN'],
41
+ 'BV' => ['BOUVET ISLAND'],
42
+ 'BW' => ['BOTSWANA'],
43
+ 'BY' => ['BELARUS'],
44
+ 'BZ' => ['BELIZE'],
45
+ 'CA' => ['CANADA'],
46
+ 'CC' => ['COCOS (KEELING) ISLANDS'],
47
+ 'CD' => ['DEMOCRATIC REPUBLIC OF THE CONGO'],
48
+ 'CF' => ['CENTRAL AFRICAN REPUBLIC'],
49
+ 'CG' => ['CONGO', 'REPUBLIC OF THE CONGO'],
50
+ 'CH' => ['SWITZERLAND'],
51
+ 'CI' => ["COTE D'IVOIRE", "CÔTE D'IVOIRE", 'IVORY COAST', "REPUBLIC OF CÔTE D'IVOIRE"],
52
+ 'CK' => ['COOK ISLANDS'],
53
+ 'CL' => ['CHILE'],
54
+ 'CM' => ['CAMEROON'],
55
+ 'CN' => ['CHINA', "PEOPLE'S REPUBLIC OF CHINA"],
56
+ 'CO' => ['COLOMBIA'],
57
+ 'CP' => ['CLIPPERTON ISLAND'],
58
+ 'CR' => ['COSTA RICA'],
59
+ 'CU' => ['CUBA'],
60
+ 'CV' => ['CAPE VERDE'],
61
+ 'CW' => ['CURACAO', 'CURAçAO'],
62
+ 'CX' => ['CHRISTMAS ISLAND'],
63
+ 'CY' => ['CYPRUS'],
64
+ 'CZ' => ['CZECH REPUBLIC'],
65
+ 'DE' => ['GERMANY'],
66
+ 'DG' => ['DIEGO GARCIA'],
67
+ 'DJ' => ['DJIBOUTI'],
68
+ 'DK' => ['DENMARK'],
69
+ 'DM' => ['DOMINICA'],
70
+ 'DO' => ['DOMINICAN REPUBLIC'],
71
+ 'DZ' => ['ALGERIA'],
72
+ 'EA' => ['CEUTA, MELILLA'],
73
+ 'EC' => ['ECUADOR'],
74
+ 'EE' => ['ESTONIA'],
75
+ 'EG' => ['EGYPT'],
76
+ 'EH' => ['WESTERN SAHARA'],
77
+ 'ER' => ['ERITREA'],
78
+ 'ES' => ['SPAIN'],
79
+ 'ET' => ['ETHIOPIA'],
80
+ 'EU' => ['EUROPEAN UNION'],
81
+ 'FI' => ['FINLAND'],
82
+ 'FJ' => ['FIJI'],
83
+ 'FK' => ['FALKLAND ISLANDS'],
84
+ 'FM' => ['MICRONESIA'],
85
+ 'FO' => ['FAROE ISLANDS'],
86
+ 'FR' => ['FRANCE'],
87
+ 'GA' => ['GABON'],
88
+ 'GB' => ['UNITED KINGDOM', 'ENGLAND', 'NORTHERN IRELAND', 'SCOTLAND', 'WALES'],
89
+ 'GD' => ['GRENADA'],
90
+ 'GE' => ['GEORGIA'],
91
+ 'GF' => ['FRENCH GUIANA'],
92
+ 'GG' => ['GUERNSEY'],
93
+ 'GH' => ['GHANA'],
94
+ 'GI' => ['GIBRALTAR'],
95
+ 'GL' => ['GREENLAND'],
96
+ 'GM' => ['GAMBIA'],
97
+ 'GN' => ['GUINEA'],
98
+ 'GP' => ['GUADELOUPE'],
99
+ 'GQ' => ['EQUATORIAL GUINEA'],
100
+ 'GR' => ['GREECE'],
101
+ 'GS' => ['SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', 'SOUTH GEORGIA', 'SOUTH SANDWICH ISLANDS'],
102
+ 'GT' => ['GUATEMALA'],
103
+ 'GU' => ['GUAM'],
104
+ 'GW' => ['GUINEA-BISSAU'],
105
+ 'GY' => ['GUYANA'],
106
+ 'HK' => ['HONG KONG'],
107
+ 'HM' => ['HEARD ISLAND AND MCDONALD ISLANDS'],
108
+ 'HN' => ['HONDURAS'],
109
+ 'HR' => ['CROATIA'],
110
+ 'HT' => ['HAITI'],
111
+ 'HU' => ['HUNGARY'],
112
+ 'IC' => ['CANARY ISLANDS'],
113
+ 'ID' => ['INDONESIA'],
114
+ 'IE' => ['IRELAND'],
115
+ 'IL' => ['ISRAEL'],
116
+ 'IM' => ['ISLE OF MAN'],
117
+ 'IN' => ['INDIA'],
118
+ 'IO' => ['BRITISH INDIAN OCEAN TERRITORY'],
119
+ 'IQ' => ['IRAQ'],
120
+ 'IR' => ['IRAN', 'ISLAMIC REPUBLIC OF IRAN'],
121
+ 'IS' => ['ICELAND'],
122
+ 'IT' => ['ITALY'],
123
+ 'JE' => ['JERSEY'],
124
+ 'JM' => ['JAMAICA'],
125
+ 'JO' => ['JORDAN'],
126
+ 'JP' => ['JAPAN'],
127
+ 'KE' => ['KENYA'],
128
+ 'KG' => ['KYRGYZSTAN'],
129
+ 'KH' => ['CAMBODIA'],
130
+ 'KI' => ['KIRIBATI'],
131
+ 'KM' => ['COMOROS'],
132
+ 'KN' => ['SAINT KITTS AND NEVIS'],
133
+ 'KP' => ['NORTH KOREA', "DEMOCRATIC PEOPLE'S REPUBLIC OF KOREA"],
134
+ 'KR' => ['SOUTH KOREA', 'KOREA', 'REPUBLIC OF KOREA'],
135
+ 'KW' => ['KUWAIT'],
136
+ 'KY' => ['CAYMAN ISLANDS'],
137
+ 'KZ' => ['KAZAKHSTAN'],
138
+ 'LA' => ['LAOS'],
139
+ 'LB' => ['LEBANON'],
140
+ 'LC' => ['SAINT LUCIA'],
141
+ 'LI' => ['LIECHTENSTEIN'],
142
+ 'LK' => ['SRI LANKA'],
143
+ 'LR' => ['LIBERIA'],
144
+ 'LS' => ['LESOTHO'],
145
+ 'LT' => ['LITHUANIA'],
146
+ 'LU' => ['LUXEMBOURG'],
147
+ 'LV' => ['LATVIA'],
148
+ 'LY' => ['LIBYA', 'STATE OF LIBYA', 'LIBYAN ARAB JAMAHIRIYA'],
149
+ 'MA' => ['MOROCCO'],
150
+ 'MC' => ['MONACO'],
151
+ 'MD' => ['MOLDOVA'],
152
+ 'ME' => ['MONTENEGRO'],
153
+ 'MF' => ['SAINT MARTIN'],
154
+ 'MG' => ['MADAGASCAR'],
155
+ 'MH' => ['MARSHALL ISLANDS'],
156
+ 'MK' => ['MACEDONIA'],
157
+ 'ML' => ['MALI'],
158
+ 'MM' => ['MYANMAR'],
159
+ 'MN' => ['MONGOLIA'],
160
+ 'MO' => ['MACAO'],
161
+ 'MP' => ['NORTHERN MARIANA ISLANDS'],
162
+ 'MQ' => ['MARTINIQUE'],
163
+ 'MR' => ['MAURITANIA'],
164
+ 'MS' => ['MONTSERRAT'],
165
+ 'MT' => ['MALTA'],
166
+ 'MU' => ['MAURITIUS'],
167
+ 'MV' => ['MALDIVES'],
168
+ 'MW' => ['MALAWI'],
169
+ 'MX' => ['MEXICO'],
170
+ 'MY' => ['MALAYSIA'],
171
+ 'MZ' => ['MOZAMBIQUE'],
172
+ 'NA' => ['NAMIBIA'],
173
+ 'NC' => ['NEW CALEDONIA'],
174
+ 'NE' => ['NIGER'],
175
+ 'NF' => ['NORFOLK ISLAND'],
176
+ 'NG' => ['NIGERIA'],
177
+ 'NI' => ['NICARAGUA'],
178
+ 'NL' => ['NETHERLANDS'],
179
+ 'NO' => ['NORWAY'],
180
+ 'NP' => ['NEPAL'],
181
+ 'NR' => ['NAURU'],
182
+ 'NU' => ['NIUE'],
183
+ 'NZ' => ['NEW ZEALAND'],
184
+ 'OM' => ['OMAN'],
185
+ 'PA' => ['PANAMA'],
186
+ 'PE' => ['PERU'],
187
+ 'PF' => ['FRENCH POLYNESIA'],
188
+ 'PG' => ['PAPUA NEW GUINEA'],
189
+ 'PH' => ['PHILIPPINES'],
190
+ 'PK' => ['PAKISTAN'],
191
+ 'PL' => ['POLAND'],
192
+ 'PM' => ['SAINT PIERRE AND MIQUELON'],
193
+ 'PN' => ['PITCAIRN', 'PITCAIRN ISLAND', 'PITCAIRN ISLANDS'],
194
+ 'PR' => ['PUERTO RICO'],
195
+ 'PS' => ['PALESTINIAN TERRITORIES', 'PALESTINIAN TERRITORY', 'OCCUPIED PALESTINIAN TERRITORIES'],
196
+ 'PT' => ['PORTUGAL'],
197
+ 'PW' => ['PALAU'],
198
+ 'PY' => ['PARAGUAY'],
199
+ 'QA' => ['QATAR'],
200
+ 'RE' => ['REUNION'],
201
+ 'RO' => ['ROMANIA'],
202
+ 'RS' => ['SERBIA'],
203
+ 'RU' => ['RUSSIAN FEDERATION', 'RUSSIA'],
204
+ 'RW' => ['RWANDA'],
205
+ 'SA' => ['SAUDI ARABIA'],
206
+ 'SB' => ['SOLOMON ISLANDS'],
207
+ 'SC' => ['SEYCHELLES'],
208
+ 'SD' => ['SUDAN'],
209
+ 'SE' => ['SWEDEN'],
210
+ 'SG' => ['SINGAPORE'],
211
+ 'SH' => ['SAINT HELENA'],
212
+ 'SI' => ['SLOVENIA'],
213
+ 'SJ' => ['SVALBARD AND JAN MAYEN'],
214
+ 'SK' => ['SLOVAKIA', 'SLOVAK REPUBLIC'],
215
+ 'SL' => ['SIERRA LEONE'],
216
+ 'SM' => ['SAN MARINO'],
217
+ 'SN' => ['SENEGAL'],
218
+ 'SO' => ['SOMALIA'],
219
+ 'SR' => ['SURINAME'],
220
+ 'SS' => ['SOUTH SUDAN'],
221
+ 'ST' => ['SAO TOME AND PRINCIPE'],
222
+ 'SV' => ['EL SALVADOR'],
223
+ 'SY' => ['SYRIAN ARAB REPUBLIC', 'SYRIA'],
224
+ 'SZ' => ['SWAZILAND'],
225
+ 'TA' => ['TRISTAN DA CUNHA'],
226
+ 'TC' => ['TURKS AND CAICOS ISLANDS'],
227
+ 'TD' => ['CHAD'],
228
+ 'TF' => ['FRENCH SOUTHERN TERRITORIES'],
229
+ 'TG' => ['TOGO'],
230
+ 'TH' => ['THAILAND'],
231
+ 'TJ' => ['TAJIKISTAN'],
232
+ 'TK' => ['TOKELAU'],
233
+ 'TL' => ['TIMOR-LESTE', 'EAST TIMOR', 'DEMOCRATIC REPUBLIC OF TIMOR-LESTE'],
234
+ 'TM' => ['TURKMENISTAN'],
235
+ 'TN' => ['TUNISIA'],
236
+ 'TO' => ['TONGA'],
237
+ 'TR' => ['TURKEY'],
238
+ 'TT' => ['TRINIDAD AND TOBAGO'],
239
+ 'TV' => ['TUVALU'],
240
+ 'TW' => ['TAIWAN'],
241
+ 'TZ' => ['TANZANIA'],
242
+ 'UA' => ['UKRAINE'],
243
+ 'UG' => ['UGANDA'],
244
+ 'UM' => ['UNITED STATES MINOR OUTLYING ISLANDS'],
245
+ 'US' => ['UNITED STATES', 'UNITED STATES OF AMERICA'],
246
+ 'UY' => ['URUGUAY'],
247
+ 'UZ' => ['UZBEKISTAN'],
248
+ 'VA' => ['VATICAN CITY'],
249
+ 'VC' => ['SAINT VINCENT AND THE GRENADINES'],
250
+ 'VE' => ['VENEZUELA'],
251
+ 'VG' => ['VIRGIN ISLANDS, BRITISH', 'BRITISH VIRGIN ISLANDS'],
252
+ 'VI' => ['VIRGIN ISLANDS, U.S.'],
253
+ 'VN' => ['VIET NAM', 'VIETNAM', 'SOCIALIST REPUBLIC OF VIETNAM'],
254
+ 'VU' => ['VANUATU'],
255
+ 'WF' => ['WALLIS AND FUTUNA', 'WALLIS AND FUTUNA ISLANDS'],
256
+ 'WS' => ['SAMOA', 'INDEPENDENT STATE OF SAMOA', 'WESTERN SAMOA'],
257
+ 'XK' => ['KOSOVO'],
258
+ 'YE' => ['YEMEN'],
259
+ 'YT' => ['MAYOTTE'],
260
+ 'ZA' => ['SOUTH AFRICA'],
261
+ 'ZM' => ['ZAMBIA'],
262
+ 'ZW' => ['ZIMBABWE']
266
263
  }
267
264
 
268
265
  ALPHA2_EXCEPTIONS = {
@@ -272,254 +269,253 @@ class Snail
272
269
  }
273
270
 
274
271
  ALPHA3_TO_ALPHA2 = {
275
- "ABW" => "AW",
276
- "AFG" => "AF",
277
- "AGO" => "AO",
278
- "AIA" => "AI",
279
- "ALA" => "AX",
280
- "ALB" => "AL",
281
- "AND" => "AD",
282
- "ANT" => "AN",
283
- "ARE" => "AE",
284
- "ARG" => "AR",
285
- "ARM" => "AM",
286
- "ASM" => "AS",
287
- "ATA" => "AQ",
288
- "ATF" => "TF",
289
- "ATG" => "AG",
290
- "AUS" => "AU",
291
- "AUT" => "AT",
292
- "AZE" => "AZ",
293
- "BDI" => "BI",
294
- "BEL" => "BE",
295
- "BEN" => "BJ",
296
- "BFA" => "BF",
297
- "BGD" => "BD",
298
- "BGR" => "BG",
299
- "BHR" => "BH",
300
- "BHS" => "BS",
301
- "BIH" => "BA",
302
- "BLM" => "BL",
303
- "BLR" => "BY",
304
- "BLZ" => "BZ",
305
- "BMU" => "BM",
306
- "BOL" => "BO",
307
- "BRA" => "BR",
308
- "BRB" => "BB",
309
- "BRN" => "BN",
310
- "BTN" => "BT",
311
- "BVT" => "BV",
312
- "BWA" => "BW",
313
- "CAF" => "CF",
314
- "CAN" => "CA",
315
- "CCK" => "CC",
316
- "CHE" => "CH",
317
- "CHL" => "CL",
318
- "CHN" => "CN",
319
- "CIV" => "CI",
320
- "CMR" => "CM",
321
- "COD" => "CD",
322
- "COG" => "CG",
323
- "COK" => "CK",
324
- "COL" => "CO",
325
- "COM" => "KM",
326
- "CPV" => "CV",
327
- "CRI" => "CR",
328
- "CUB" => "CU",
329
- "CXR" => "CX",
330
- "CYM" => "KY",
331
- "CYP" => "CY",
332
- "CZE" => "CZ",
333
- "DEU" => "DE",
334
- "DJI" => "DJ",
335
- "DMA" => "DM",
336
- "DNK" => "DK",
337
- "DOM" => "DO",
338
- "DZA" => "DZ",
339
- "ECU" => "EC",
340
- "EGY" => "EG",
341
- "ERI" => "ER",
342
- "ESH" => "EH",
343
- "ESP" => "ES",
344
- "EST" => "EE",
345
- "ETH" => "ET",
346
- "FIN" => "FI",
347
- "FJI" => "FJ",
348
- "FLK" => "FK",
349
- "FRA" => "FR",
350
- "FRO" => "FO",
351
- "FSM" => "FM",
352
- "GAB" => "GA",
353
- "GBR" => "GB",
354
- "GEO" => "GE",
355
- "GGY" => "GG",
356
- "GHA" => "GH",
357
- "GIB" => "GI",
358
- "GIN" => "GN",
359
- "GLP" => "GP",
360
- "GMB" => "GM",
361
- "GNB" => "GW",
362
- "GNQ" => "GQ",
363
- "GRC" => "GR",
364
- "GRD" => "GD",
365
- "GRL" => "GL",
366
- "GTM" => "GT",
367
- "GUF" => "GF",
368
- "GUM" => "GU",
369
- "GUY" => "GY",
370
- "HKG" => "HK",
371
- "HMD" => "HM",
372
- "HND" => "HN",
373
- "HRV" => "HR",
374
- "HTI" => "HT",
375
- "HUN" => "HU",
376
- "IDN" => "ID",
377
- "IMN" => "IM",
378
- "IND" => "IN",
379
- "IOT" => "IO",
380
- "IRL" => "IE",
381
- "IRN" => "IR",
382
- "IRQ" => "IQ",
383
- "ISL" => "IS",
384
- "ISR" => "IL",
385
- "ITA" => "IT",
386
- "JAM" => "JM",
387
- "JEY" => "JE",
388
- "JOR" => "JO",
389
- "JPN" => "JP",
390
- "KAZ" => "KZ",
391
- "KEN" => "KE",
392
- "KGZ" => "KG",
393
- "KHM" => "KH",
394
- "KIR" => "KI",
395
- "KNA" => "KN",
396
- "KOR" => "KR",
397
- "KWT" => "KW",
398
- "LAO" => "LA",
399
- "LBN" => "LB",
400
- "LBR" => "LR",
401
- "LBY" => "LY",
402
- "LCA" => "LC",
403
- "LIE" => "LI",
404
- "LKA" => "LK",
405
- "LSO" => "LS",
406
- "LTU" => "LT",
407
- "LUX" => "LU",
408
- "LVA" => "LV",
409
- "MAC" => "MO",
410
- "MAF" => "MF",
411
- "MAR" => "MA",
412
- "MCO" => "MC",
413
- "MDA" => "MD",
414
- "MDG" => "MG",
415
- "MDV" => "MV",
416
- "MEX" => "MX",
417
- "MHL" => "MH",
418
- "MKD" => "MK",
419
- "MLI" => "ML",
420
- "MLT" => "MT",
421
- "MMR" => "MM",
422
- "MNE" => "ME",
423
- "MNG" => "MN",
424
- "MNP" => "MP",
425
- "MOZ" => "MZ",
426
- "MRT" => "MR",
427
- "MSR" => "MS",
428
- "MTQ" => "MQ",
429
- "MUS" => "MU",
430
- "MWI" => "MW",
431
- "MYS" => "MY",
432
- "MYT" => "YT",
433
- "NAM" => "NA",
434
- "NCL" => "NC",
435
- "NER" => "NE",
436
- "NFK" => "NF",
437
- "NGA" => "NG",
438
- "NIC" => "NI",
439
- "NIU" => "NU",
440
- "NLD" => "NL",
441
- "NOR" => "NO",
442
- "NPL" => "NP",
443
- "NRU" => "NR",
444
- "NZL" => "NZ",
445
- "OMN" => "OM",
446
- "PAK" => "PK",
447
- "PAN" => "PA",
448
- "PCN" => "PN",
449
- "PER" => "PE",
450
- "PHL" => "PH",
451
- "PLW" => "PW",
452
- "PNG" => "PG",
453
- "POL" => "PL",
454
- "PRI" => "PR",
455
- "PRK" => "KP",
456
- "PRT" => "PT",
457
- "PRY" => "PY",
458
- "PSE" => "PS",
459
- "PYF" => "PF",
460
- "QAT" => "QA",
461
- "REU" => "RE",
462
- "ROU" => "RO",
463
- "RUS" => "RU",
464
- "RWA" => "RW",
465
- "SAU" => "SA",
466
- "SDN" => "SD",
467
- "SEN" => "SN",
468
- "SGP" => "SG",
469
- "SGS" => "GS",
470
- "SHN" => "SH",
471
- "SJM" => "SJ",
472
- "SLB" => "SB",
473
- "SLE" => "SL",
474
- "SLV" => "SV",
475
- "SMR" => "SM",
476
- "SOM" => "SO",
477
- "SPM" => "PM",
478
- "SRB" => "RS",
479
- "SSD" => "SS",
480
- "STP" => "ST",
481
- "SUR" => "SR",
482
- "SVK" => "SK",
483
- "SVN" => "SI",
484
- "SWE" => "SE",
485
- "SWZ" => "SZ",
486
- "SYC" => "SC",
487
- "SYR" => "SY",
488
- "TCA" => "TC",
489
- "TCD" => "TD",
490
- "TGO" => "TG",
491
- "THA" => "TH",
492
- "TJK" => "TJ",
493
- "TKL" => "TK",
494
- "TKM" => "TM",
495
- "TLS" => "TL",
496
- "TON" => "TO",
497
- "TTO" => "TT",
498
- "TUN" => "TN",
499
- "TUR" => "TR",
500
- "TUV" => "TV",
501
- "TWN" => "TW",
502
- "TZA" => "TZ",
503
- "UGA" => "UG",
504
- "UKR" => "UA",
505
- "UMI" => "UM",
506
- "URY" => "UY",
507
- "USA" => "US",
508
- "UZB" => "UZ",
509
- "VAT" => "VA",
510
- "VCT" => "VC",
511
- "VEN" => "VE",
512
- "VGB" => "VG",
513
- "VIR" => "VI",
514
- "VNM" => "VN",
515
- "VUT" => "VU",
516
- "WLF" => "WF",
517
- "WSM" => "WS",
518
- "YEM" => "YE",
519
- "ZAF" => "ZA",
520
- "ZMB" => "ZM",
521
- "ZWE" => "ZW"
272
+ 'ABW' => 'AW',
273
+ 'AFG' => 'AF',
274
+ 'AGO' => 'AO',
275
+ 'AIA' => 'AI',
276
+ 'ALA' => 'AX',
277
+ 'ALB' => 'AL',
278
+ 'AND' => 'AD',
279
+ 'ANT' => 'AN',
280
+ 'ARE' => 'AE',
281
+ 'ARG' => 'AR',
282
+ 'ARM' => 'AM',
283
+ 'ASM' => 'AS',
284
+ 'ATA' => 'AQ',
285
+ 'ATF' => 'TF',
286
+ 'ATG' => 'AG',
287
+ 'AUS' => 'AU',
288
+ 'AUT' => 'AT',
289
+ 'AZE' => 'AZ',
290
+ 'BDI' => 'BI',
291
+ 'BEL' => 'BE',
292
+ 'BEN' => 'BJ',
293
+ 'BFA' => 'BF',
294
+ 'BGD' => 'BD',
295
+ 'BGR' => 'BG',
296
+ 'BHR' => 'BH',
297
+ 'BHS' => 'BS',
298
+ 'BIH' => 'BA',
299
+ 'BLM' => 'BL',
300
+ 'BLR' => 'BY',
301
+ 'BLZ' => 'BZ',
302
+ 'BMU' => 'BM',
303
+ 'BOL' => 'BO',
304
+ 'BRA' => 'BR',
305
+ 'BRB' => 'BB',
306
+ 'BRN' => 'BN',
307
+ 'BTN' => 'BT',
308
+ 'BVT' => 'BV',
309
+ 'BWA' => 'BW',
310
+ 'CAF' => 'CF',
311
+ 'CAN' => 'CA',
312
+ 'CCK' => 'CC',
313
+ 'CHE' => 'CH',
314
+ 'CHL' => 'CL',
315
+ 'CHN' => 'CN',
316
+ 'CIV' => 'CI',
317
+ 'CMR' => 'CM',
318
+ 'COD' => 'CD',
319
+ 'COG' => 'CG',
320
+ 'COK' => 'CK',
321
+ 'COL' => 'CO',
322
+ 'COM' => 'KM',
323
+ 'CPV' => 'CV',
324
+ 'CRI' => 'CR',
325
+ 'CUB' => 'CU',
326
+ 'CXR' => 'CX',
327
+ 'CYM' => 'KY',
328
+ 'CYP' => 'CY',
329
+ 'CZE' => 'CZ',
330
+ 'DEU' => 'DE',
331
+ 'DJI' => 'DJ',
332
+ 'DMA' => 'DM',
333
+ 'DNK' => 'DK',
334
+ 'DOM' => 'DO',
335
+ 'DZA' => 'DZ',
336
+ 'ECU' => 'EC',
337
+ 'EGY' => 'EG',
338
+ 'ERI' => 'ER',
339
+ 'ESH' => 'EH',
340
+ 'ESP' => 'ES',
341
+ 'EST' => 'EE',
342
+ 'ETH' => 'ET',
343
+ 'FIN' => 'FI',
344
+ 'FJI' => 'FJ',
345
+ 'FLK' => 'FK',
346
+ 'FRA' => 'FR',
347
+ 'FRO' => 'FO',
348
+ 'FSM' => 'FM',
349
+ 'GAB' => 'GA',
350
+ 'GBR' => 'GB',
351
+ 'GEO' => 'GE',
352
+ 'GGY' => 'GG',
353
+ 'GHA' => 'GH',
354
+ 'GIB' => 'GI',
355
+ 'GIN' => 'GN',
356
+ 'GLP' => 'GP',
357
+ 'GMB' => 'GM',
358
+ 'GNB' => 'GW',
359
+ 'GNQ' => 'GQ',
360
+ 'GRC' => 'GR',
361
+ 'GRD' => 'GD',
362
+ 'GRL' => 'GL',
363
+ 'GTM' => 'GT',
364
+ 'GUF' => 'GF',
365
+ 'GUM' => 'GU',
366
+ 'GUY' => 'GY',
367
+ 'HKG' => 'HK',
368
+ 'HMD' => 'HM',
369
+ 'HND' => 'HN',
370
+ 'HRV' => 'HR',
371
+ 'HTI' => 'HT',
372
+ 'HUN' => 'HU',
373
+ 'IDN' => 'ID',
374
+ 'IMN' => 'IM',
375
+ 'IND' => 'IN',
376
+ 'IOT' => 'IO',
377
+ 'IRL' => 'IE',
378
+ 'IRN' => 'IR',
379
+ 'IRQ' => 'IQ',
380
+ 'ISL' => 'IS',
381
+ 'ISR' => 'IL',
382
+ 'ITA' => 'IT',
383
+ 'JAM' => 'JM',
384
+ 'JEY' => 'JE',
385
+ 'JOR' => 'JO',
386
+ 'JPN' => 'JP',
387
+ 'KAZ' => 'KZ',
388
+ 'KEN' => 'KE',
389
+ 'KGZ' => 'KG',
390
+ 'KHM' => 'KH',
391
+ 'KIR' => 'KI',
392
+ 'KNA' => 'KN',
393
+ 'KOR' => 'KR',
394
+ 'KWT' => 'KW',
395
+ 'LAO' => 'LA',
396
+ 'LBN' => 'LB',
397
+ 'LBR' => 'LR',
398
+ 'LBY' => 'LY',
399
+ 'LCA' => 'LC',
400
+ 'LIE' => 'LI',
401
+ 'LKA' => 'LK',
402
+ 'LSO' => 'LS',
403
+ 'LTU' => 'LT',
404
+ 'LUX' => 'LU',
405
+ 'LVA' => 'LV',
406
+ 'MAC' => 'MO',
407
+ 'MAF' => 'MF',
408
+ 'MAR' => 'MA',
409
+ 'MCO' => 'MC',
410
+ 'MDA' => 'MD',
411
+ 'MDG' => 'MG',
412
+ 'MDV' => 'MV',
413
+ 'MEX' => 'MX',
414
+ 'MHL' => 'MH',
415
+ 'MKD' => 'MK',
416
+ 'MLI' => 'ML',
417
+ 'MLT' => 'MT',
418
+ 'MMR' => 'MM',
419
+ 'MNE' => 'ME',
420
+ 'MNG' => 'MN',
421
+ 'MNP' => 'MP',
422
+ 'MOZ' => 'MZ',
423
+ 'MRT' => 'MR',
424
+ 'MSR' => 'MS',
425
+ 'MTQ' => 'MQ',
426
+ 'MUS' => 'MU',
427
+ 'MWI' => 'MW',
428
+ 'MYS' => 'MY',
429
+ 'MYT' => 'YT',
430
+ 'NAM' => 'NA',
431
+ 'NCL' => 'NC',
432
+ 'NER' => 'NE',
433
+ 'NFK' => 'NF',
434
+ 'NGA' => 'NG',
435
+ 'NIC' => 'NI',
436
+ 'NIU' => 'NU',
437
+ 'NLD' => 'NL',
438
+ 'NOR' => 'NO',
439
+ 'NPL' => 'NP',
440
+ 'NRU' => 'NR',
441
+ 'NZL' => 'NZ',
442
+ 'OMN' => 'OM',
443
+ 'PAK' => 'PK',
444
+ 'PAN' => 'PA',
445
+ 'PCN' => 'PN',
446
+ 'PER' => 'PE',
447
+ 'PHL' => 'PH',
448
+ 'PLW' => 'PW',
449
+ 'PNG' => 'PG',
450
+ 'POL' => 'PL',
451
+ 'PRI' => 'PR',
452
+ 'PRK' => 'KP',
453
+ 'PRT' => 'PT',
454
+ 'PRY' => 'PY',
455
+ 'PSE' => 'PS',
456
+ 'PYF' => 'PF',
457
+ 'QAT' => 'QA',
458
+ 'REU' => 'RE',
459
+ 'ROU' => 'RO',
460
+ 'RUS' => 'RU',
461
+ 'RWA' => 'RW',
462
+ 'SAU' => 'SA',
463
+ 'SDN' => 'SD',
464
+ 'SEN' => 'SN',
465
+ 'SGP' => 'SG',
466
+ 'SGS' => 'GS',
467
+ 'SHN' => 'SH',
468
+ 'SJM' => 'SJ',
469
+ 'SLB' => 'SB',
470
+ 'SLE' => 'SL',
471
+ 'SLV' => 'SV',
472
+ 'SMR' => 'SM',
473
+ 'SOM' => 'SO',
474
+ 'SPM' => 'PM',
475
+ 'SRB' => 'RS',
476
+ 'SSD' => 'SS',
477
+ 'STP' => 'ST',
478
+ 'SUR' => 'SR',
479
+ 'SVK' => 'SK',
480
+ 'SVN' => 'SI',
481
+ 'SWE' => 'SE',
482
+ 'SWZ' => 'SZ',
483
+ 'SYC' => 'SC',
484
+ 'SYR' => 'SY',
485
+ 'TCA' => 'TC',
486
+ 'TCD' => 'TD',
487
+ 'TGO' => 'TG',
488
+ 'THA' => 'TH',
489
+ 'TJK' => 'TJ',
490
+ 'TKL' => 'TK',
491
+ 'TKM' => 'TM',
492
+ 'TLS' => 'TL',
493
+ 'TON' => 'TO',
494
+ 'TTO' => 'TT',
495
+ 'TUN' => 'TN',
496
+ 'TUR' => 'TR',
497
+ 'TUV' => 'TV',
498
+ 'TWN' => 'TW',
499
+ 'TZA' => 'TZ',
500
+ 'UGA' => 'UG',
501
+ 'UKR' => 'UA',
502
+ 'UMI' => 'UM',
503
+ 'URY' => 'UY',
504
+ 'USA' => 'US',
505
+ 'UZB' => 'UZ',
506
+ 'VAT' => 'VA',
507
+ 'VCT' => 'VC',
508
+ 'VEN' => 'VE',
509
+ 'VGB' => 'VG',
510
+ 'VIR' => 'VI',
511
+ 'VNM' => 'VN',
512
+ 'VUT' => 'VU',
513
+ 'WLF' => 'WF',
514
+ 'WSM' => 'WS',
515
+ 'YEM' => 'YE',
516
+ 'ZAF' => 'ZA',
517
+ 'ZMB' => 'ZM',
518
+ 'ZWE' => 'ZW'
522
519
  }
523
520
  end
524
-
525
521
  end