kountries 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,529 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kountries
4
+ # America
5
+ module America
6
+ def self.find_country_by_name(name)
7
+ constants.each do |country|
8
+ american_country_class = Module.const_get "Kountries::America::#{country}"
9
+ return as_struct(american_country_class) if american_country_class::NAME.upcase == name.upcase
10
+ return as_struct(american_country_class) if american_country_class::UN_OFFICIAL_NAMES.include?(name.capitalize)
11
+ end
12
+
13
+ empty_struct
14
+ end
15
+
16
+ def self.find_country_by_code(code)
17
+ return empty_struct unless Kountries::America.constants.include?(code.intern)
18
+
19
+ american_country_class = Module.const_get "Kountries::America::#{code}"
20
+ return as_struct(american_country_class) if american_country_class::ALPHA_2 == code
21
+ end
22
+
23
+ def self.as_struct(american_country_class)
24
+ OpenStruct.new(
25
+ alpha2: american_country_class::ALPHA_2,
26
+ alpha3: american_country_class::ALPHA_3,
27
+ country_code: american_country_class::COUNTRY_CODE,
28
+ name: american_country_class::NAME,
29
+ unofficial_names: american_country_class::UN_OFFICIAL_NAMES
30
+ )
31
+ end
32
+
33
+ def self.empty_struct
34
+ OpenStruct.new(
35
+ alpha2: nil,
36
+ alpha3: nil,
37
+ country_code: nil,
38
+ name: nil,
39
+ unofficial_names: nil
40
+ )
41
+ end
42
+
43
+ class JM
44
+ ALPHA_2 = "JM"
45
+ ALPHA_3 = "JAM"
46
+ COUNTRY_CODE = "1"
47
+ NAME = "Jamaica"
48
+ UN_OFFICIAL_NAMES = %w[Jamaica Jamaika Jamaïque ジャマイカ].freeze
49
+ end
50
+
51
+ class HT
52
+ ALPHA_2 = "HT"
53
+ ALPHA_3 = "HTI"
54
+ COUNTRY_CODE = "509"
55
+ NAME = "Haiti"
56
+ UN_OFFICIAL_NAMES = %w[Haiti ハイチ Haïti].freeze
57
+ end
58
+
59
+ class MS
60
+ ALPHA_2 = "MS"
61
+ ALPHA_3 = "MSR"
62
+ COUNTRY_CODE = "1"
63
+ NAME = "Montserrat"
64
+ UN_OFFICIAL_NAMES = %w[Montserrat モントセラト].freeze
65
+ end
66
+
67
+ class BZ
68
+ ALPHA_2 = "BZ"
69
+ ALPHA_3 = "BLZ"
70
+ COUNTRY_CODE = "501"
71
+ NAME = "Belize"
72
+ UN_OFFICIAL_NAMES = %w[Belize Belice ベリーズ].freeze
73
+ end
74
+
75
+ class BO
76
+ ALPHA_2 = "BO"
77
+ ALPHA_3 = "BOL"
78
+ COUNTRY_CODE = "591"
79
+ NAME = "Bolivia (Plurinational State of)"
80
+ UN_OFFICIAL_NAMES = %w[Bolivia Bolivien Bolivie ボリビア多民族国].freeze
81
+ end
82
+
83
+ class UY
84
+ ALPHA_2 = "UY"
85
+ ALPHA_3 = "URY"
86
+ COUNTRY_CODE = "598"
87
+ NAME = "Uruguay"
88
+ UN_OFFICIAL_NAMES = %w[Uruguay ウルグアイ].freeze
89
+ end
90
+
91
+ class MF
92
+ ALPHA_2 = "MF"
93
+ ALPHA_3 = "MAF"
94
+ COUNTRY_CODE = "590"
95
+ NAME = "Saint Martin (French part)"
96
+ UN_OFFICIAL_NAMES = ["Saint Martin", "サン・マルタン(フランス領)", "Saint-Martin"].freeze
97
+ end
98
+
99
+ class AI
100
+ ALPHA_2 = "AI"
101
+ ALPHA_3 = "AIA"
102
+ COUNTRY_CODE = "1"
103
+ NAME = "Anguilla"
104
+ UN_OFFICIAL_NAMES = %w[Anguilla アンギラ].freeze
105
+ end
106
+
107
+ class SX
108
+ ALPHA_2 = "SX"
109
+ ALPHA_3 = "SXM"
110
+ COUNTRY_CODE = "1"
111
+ NAME = "Sint Maarten (Dutch part)"
112
+ UN_OFFICIAL_NAMES = ["Sint Maarten", "セント・マーチン島"].freeze
113
+ end
114
+
115
+ class PR
116
+ ALPHA_2 = "PR"
117
+ ALPHA_3 = "PRI"
118
+ COUNTRY_CODE = "1"
119
+ NAME = "Puerto Rico"
120
+ UN_OFFICIAL_NAMES = ["Puerto Rico", "プエルトリコ"].freeze
121
+ end
122
+
123
+ class GD
124
+ ALPHA_2 = "GD"
125
+ ALPHA_3 = "GRD"
126
+ COUNTRY_CODE = "1"
127
+ NAME = "Grenada"
128
+ UN_OFFICIAL_NAMES = %w[Grenada グレナダ].freeze
129
+ end
130
+
131
+ class BB
132
+ ALPHA_2 = "BB"
133
+ ALPHA_3 = "BRB"
134
+ COUNTRY_CODE = "1"
135
+ NAME = "Barbados"
136
+ UN_OFFICIAL_NAMES = %w[Barbade Barbados バルバドス].freeze
137
+ end
138
+
139
+ class GP
140
+ ALPHA_2 = "GP"
141
+ ALPHA_3 = "GLP"
142
+ COUNTRY_CODE = "590"
143
+ NAME = "Guadeloupe"
144
+ UN_OFFICIAL_NAMES = %w[Guadeloupe Guadalupe グアドループ].freeze
145
+ end
146
+
147
+ class DO
148
+ ALPHA_2 = "DO"
149
+ ALPHA_3 = "DOM"
150
+ COUNTRY_CODE = "1"
151
+ NAME = "Dominican Republic"
152
+ UN_OFFICIAL_NAMES = ["Dominican Republic", "Dominikanische Republik", "République Dominicaine",
153
+ "República Dominicana", "ドミニカ共和国",
154
+ "Dominicaanse Republiek"].freeze
155
+ end
156
+
157
+ class VG
158
+ ALPHA_2 = "VG"
159
+ ALPHA_3 = "VGB"
160
+ COUNTRY_CODE = "1"
161
+ NAME = "Virgin Islands (British)"
162
+ UN_OFFICIAL_NAMES = ["British Virgin Islands", "Britische Jungferninseln", "Îles Vierges britanniques",
163
+ "Islas Vírgenes del Reino Unido", "イギリス領ヴァージン諸島", "Britse Maagdeneilanden",
164
+ "Virgin Islands (British)"].freeze
165
+ end
166
+
167
+ class UM
168
+ ALPHA_2 = "UM"
169
+ ALPHA_3 = "UMI"
170
+ COUNTRY_CODE = "1"
171
+ NAME = "United States Minor Outlying Islands"
172
+ UN_OFFICIAL_NAMES = ["United States Minor Outlying Islands", "US-Amerikanische Hoheitsgebiete",
173
+ "Dépendances américaines", "Islas menores de Estados Unidos", "合衆国領有小離島",
174
+ "Kleine afgelegen eilanden van de Verenigde Staten"].freeze
175
+ end
176
+
177
+ class PA
178
+ ALPHA_2 = "PA"
179
+ ALPHA_3 = "PAN"
180
+ COUNTRY_CODE = "507"
181
+ NAME = "Panama"
182
+ UN_OFFICIAL_NAMES = %w[Panama Panamá パナマ].freeze
183
+ end
184
+
185
+ class US
186
+ ALPHA_2 = "US"
187
+ ALPHA_3 = "USA"
188
+ COUNTRY_CODE = "1"
189
+ NAME = "United States of America"
190
+ UN_OFFICIAL_NAMES = ["United States", "Murica", "Vereinigte Staaten von Amerika",
191
+ "États-Unis", "Estados Unidos", "アメリカ合衆国",
192
+ "Verenigde Staten"].freeze
193
+ end
194
+
195
+ class SR
196
+ ALPHA_2 = "SR"
197
+ ALPHA_3 = "SUR"
198
+ COUNTRY_CODE = "597"
199
+ NAME = "Suriname"
200
+ UN_OFFICIAL_NAMES = %w[Suriname Surinam スリナム].freeze
201
+ end
202
+
203
+ class PM
204
+ ALPHA_2 = "PM"
205
+ ALPHA_3 = "SPM"
206
+ COUNTRY_CODE = "508"
207
+ NAME = "Saint Pierre and Miquelon"
208
+ UN_OFFICIAL_NAMES = ["Saint Pierre and Miquelon", "Saint-Pierre und Miquelon",
209
+ "Saint-Pierre-et-Miquelon", "San Pedro y Miquelón",
210
+ "サンピエール島・ミクロン島", "Saint Pierre en Miquelon"].freeze
211
+ end
212
+
213
+ class CO
214
+ ALPHA_2 = "CO"
215
+ ALPHA_3 = "COL"
216
+ COUNTRY_CODE = "57"
217
+ NAME = "Colombia"
218
+ UN_OFFICIAL_NAMES = %w[Colombia Kolumbien Colombie コロンビア].freeze
219
+ end
220
+
221
+ class AW
222
+ ALPHA_2 = "AW"
223
+ ALPHA_3 = "ABW"
224
+ COUNTRY_CODE = "297"
225
+ NAME = "Aruba"
226
+ UN_OFFICIAL_NAMES = %w[Aruba アルバ].freeze
227
+ end
228
+
229
+ class KY
230
+ ALPHA_2 = "KY"
231
+ ALPHA_3 = "CYM"
232
+ COUNTRY_CODE = "1"
233
+ NAME = "Cayman Islands"
234
+ UN_OFFICIAL_NAMES = ["Cayman Islands", "Kaimaninseln", "Îles Caïmans", "Islas Caimán", "ケイマン諸島",
235
+ "Caymaneilanden"].freeze
236
+ end
237
+
238
+ class PY
239
+ ALPHA_2 = "PY"
240
+ ALPHA_3 = "PRY"
241
+ COUNTRY_CODE = "595"
242
+ NAME = "Paraguay"
243
+ UN_OFFICIAL_NAMES = %w[Paraguay パラグアイ].freeze
244
+ end
245
+
246
+ class EC
247
+ ALPHA_2 = "EC"
248
+ ALPHA_3 = "ECU"
249
+ COUNTRY_CODE = "593"
250
+ NAME = "Ecuador"
251
+ UN_OFFICIAL_NAMES = %w[Ecuador Équateur エクアドル].freeze
252
+ end
253
+
254
+ class TT
255
+ ALPHA_2 = "TT"
256
+ ALPHA_3 = "TTO"
257
+ COUNTRY_CODE = "1"
258
+ NAME = "Trinidad and Tobago"
259
+ UN_OFFICIAL_NAMES = ["Trinidad and Tobago", "Trinidad und Tobago", "Trinité et Tobago",
260
+ "Trinidad y Tobago", "トリニダード・トバゴ",
261
+ "Trinidad en Tobago"].freeze
262
+ end
263
+
264
+ class BQ
265
+ ALPHA_2 = "BQ"
266
+ ALPHA_3 = "BES"
267
+ COUNTRY_CODE = "599"
268
+ NAME = "Bonaire, Sint Eustatius and Saba"
269
+ UN_OFFICIAL_NAMES = ["Bonaire, Sint Eustatius and Saba", "Caribbean Netherlands", "Caribisch Nederland",
270
+ "ボネール、シント・ユースタティウスおよびサバ"].freeze
271
+ end
272
+
273
+ class MX
274
+ ALPHA_2 = "MX"
275
+ ALPHA_3 = "MEX"
276
+ COUNTRY_CODE = "52"
277
+ NAME = "Mexico"
278
+ UN_OFFICIAL_NAMES = %w[Mexico Mexiko Mexique México メキシコ].freeze
279
+ end
280
+
281
+ class CW
282
+ ALPHA_2 = "CW"
283
+ ALPHA_3 = "CUW"
284
+ COUNTRY_CODE = "599"
285
+ NAME = "Curaçao"
286
+ UN_OFFICIAL_NAMES = %w[Curaçao キュラソー島].freeze
287
+ end
288
+
289
+ class CA
290
+ ALPHA_2 = "CA"
291
+ ALPHA_3 = "CAN"
292
+ COUNTRY_CODE = "1"
293
+ NAME = "Canada"
294
+ UN_OFFICIAL_NAMES = %w[Canada Kanada Canadá カナダ].freeze
295
+ end
296
+
297
+ class BR
298
+ ALPHA_2 = "BR"
299
+ ALPHA_3 = "BRA"
300
+ COUNTRY_CODE = "55"
301
+ NAME = "Brazil"
302
+ UN_OFFICIAL_NAMES = %w[Brazil Brasilien Brésil Brasil ブラジル Brazilië].freeze
303
+ end
304
+
305
+ class GL
306
+ ALPHA_2 = "GL"
307
+ ALPHA_3 = "GRL"
308
+ COUNTRY_CODE = "299"
309
+ NAME = "Greenland"
310
+ UN_OFFICIAL_NAMES = %w[Greenland Grönland Groenland Groenlandia グリーンランド].freeze
311
+ end
312
+
313
+ class GY
314
+ ALPHA_2 = "GY"
315
+ ALPHA_3 = "GUY"
316
+ COUNTRY_CODE = "592"
317
+ NAME = "Guyana"
318
+ UN_OFFICIAL_NAMES = %w[Guyana ガイアナ].freeze
319
+ end
320
+
321
+ class NI
322
+ ALPHA_2 = "NI"
323
+ ALPHA_3 = "NIC"
324
+ COUNTRY_CODE = "505"
325
+ NAME = "Nicaragua"
326
+ UN_OFFICIAL_NAMES = %w[Nicaragua ニカラグア].freeze
327
+ end
328
+
329
+ class KN
330
+ ALPHA_2 = "KN"
331
+ ALPHA_3 = "KNA"
332
+ COUNTRY_CODE = "1"
333
+ NAME = "Saint Kitts and Nevis"
334
+ UN_OFFICIAL_NAMES = ["Saint Kitts and Nevis", "Föderation St. Kitts und Nevis",
335
+ "Saint Kitts et Nevis", "Saint Kitts y Nevis",
336
+ "セントクリストファー・ネイビス", "Saint Kitts en Nevis",
337
+ "St. Kitts and Nevis", "St Kitts and Nevis"].freeze
338
+ end
339
+
340
+ class VC
341
+ ALPHA_2 = "VC"
342
+ ALPHA_3 = "VCT"
343
+ COUNTRY_CODE = "1"
344
+ NAME = "Saint Vincent and the Grenadines"
345
+ UN_OFFICIAL_NAMES = ["Saint Vincent and the Grenadines", "Saint Vincent und die Grenadinen",
346
+ "Saint-Vincent et les Grenadines", "San Vicente y Granadinas",
347
+ "セントビンセントおよびグレナディーン諸島", "Saint Vincent en de Grenadines",
348
+ "St. Vincent Grenadines", "St Vincent Grenadines"].freeze
349
+ end
350
+
351
+ class FK
352
+ ALPHA_2 = "FK"
353
+ ALPHA_3 = "FLK"
354
+ COUNTRY_CODE = "500"
355
+ NAME = "Falkland Islands (Malvinas)"
356
+ UN_OFFICIAL_NAMES = ["Falkland Islands", "Falklandinseln", "Îles Malouines", "Islas Malvinas", "フォークランド(マルビナス)諸島",
357
+ "Falklandeilanden [Islas Malvinas]"].freeze
358
+ end
359
+
360
+ class CL
361
+ ALPHA_2 = "CL"
362
+ ALPHA_3 = "CHL"
363
+ COUNTRY_CODE = "56"
364
+ NAME = "Chile"
365
+ UN_OFFICIAL_NAMES = %w[Chile チリ Chili].freeze
366
+ end
367
+
368
+ class TC
369
+ ALPHA_2 = "TC"
370
+ ALPHA_3 = "TCA"
371
+ COUNTRY_CODE = "1"
372
+ NAME = "Turks and Caicos Islands"
373
+ UN_OFFICIAL_NAMES = ["Turks and Caicos Islands", "Turks- und Caicosinseln", "Îles Turks et Caïcos",
374
+ "Islas Turks y Caicos", "タークス・カイコス諸島", "Turks- en Caicoseilanden",
375
+ "Turks and Caicos"].freeze
376
+ end
377
+
378
+ class CU
379
+ ALPHA_2 = "CU"
380
+ ALPHA_3 = "CUB"
381
+ COUNTRY_CODE = "53"
382
+ NAME = "Cuba"
383
+ UN_OFFICIAL_NAMES = %w[Cuba Kuba キューバ].freeze
384
+ end
385
+
386
+ class BS
387
+ ALPHA_2 = "BS"
388
+ ALPHA_3 = "BHS"
389
+ COUNTRY_CODE = "1"
390
+ NAME = "Bahamas"
391
+ UN_OFFICIAL_NAMES = ["Bahamas", "バハマ", "Bahama’s"].freeze
392
+ end
393
+
394
+ class GT
395
+ ALPHA_2 = "GT"
396
+ ALPHA_3 = "GTM"
397
+ COUNTRY_CODE = "502"
398
+ NAME = "Guatemala"
399
+ UN_OFFICIAL_NAMES = %w[Guatemala グアテマラ].freeze
400
+ end
401
+
402
+ class AR
403
+ ALPHA_2 = "AR"
404
+ ALPHA_3 = "ARG"
405
+ COUNTRY_CODE = "54"
406
+ NAME = "Argentina"
407
+ UN_OFFICIAL_NAMES = %w[Argentina Argentinien Argentine アルゼンチン Argentinië].freeze
408
+ end
409
+
410
+ class BM
411
+ ALPHA_2 = "BM"
412
+ ALPHA_3 = "BMU"
413
+ COUNTRY_CODE = "1"
414
+ NAME = "Bermuda"
415
+ UN_OFFICIAL_NAMES = %w[Bermuda Bermudes Bermudas バミューダ].freeze
416
+ end
417
+
418
+ class AG
419
+ ALPHA_2 = "AG"
420
+ ALPHA_3 = "ATG"
421
+ COUNTRY_CODE = "1"
422
+ NAME = "Antigua and Barbuda"
423
+ UN_OFFICIAL_NAMES = ["Antigua and Barbuda", "Antigua und Barbuda", "Antigua et Barbuda",
424
+ "Antigua y Barbuda", "アンティグア・バーブーダ",
425
+ "Antigua en Barbuda"].freeze
426
+ end
427
+
428
+ class MQ
429
+ ALPHA_2 = "MQ"
430
+ ALPHA_3 = "MTQ"
431
+ COUNTRY_CODE = "596"
432
+ NAME = "Martinique"
433
+ UN_OFFICIAL_NAMES = %w[Martinique Martinica マルティニーク].freeze
434
+ end
435
+
436
+ class SV
437
+ ALPHA_2 = "SV"
438
+ ALPHA_3 = "SLV"
439
+ COUNTRY_CODE = "503"
440
+ NAME = "El Salvador"
441
+ UN_OFFICIAL_NAMES = ["El Salvador", "Salvador", "エルサルバドル"].freeze
442
+ end
443
+
444
+ class GF
445
+ ALPHA_2 = "GF"
446
+ ALPHA_3 = "GUF"
447
+ COUNTRY_CODE = "594"
448
+ NAME = "French Guiana"
449
+ UN_OFFICIAL_NAMES = ["French Guiana", "Französisch Guyana", "Guayana Francesa", "フランス領ギアナ", "Frans-Guyana"].freeze
450
+ end
451
+
452
+ class GS
453
+ ALPHA_2 = "GS"
454
+ ALPHA_3 = "SGS"
455
+ COUNTRY_CODE = "500"
456
+ NAME = "South Georgia and the South Sandwich Islands"
457
+ UN_OFFICIAL_NAMES = ["South Georgia", "South Georgia and the South Sandwich Islands",
458
+ "Südgeorgien und die Südlichen Sandwichinseln",
459
+ "サウスジョージア・サウスサンドウィッチ諸島", "Zuid-Georgia en Zuidelijke Sandwicheilanden"].freeze
460
+ end
461
+
462
+ class PE
463
+ ALPHA_2 = "PE"
464
+ ALPHA_3 = "PER"
465
+ COUNTRY_CODE = "51"
466
+ NAME = "Peru"
467
+ UN_OFFICIAL_NAMES = %w[Peru Pérou Perú ペルー].freeze
468
+ end
469
+
470
+ class CR
471
+ ALPHA_2 = "CR"
472
+ ALPHA_3 = "CRI"
473
+ COUNTRY_CODE = "506"
474
+ NAME = "Costa Rica"
475
+ UN_OFFICIAL_NAMES = ["Costa Rica", "コスタリカ"].freeze
476
+ end
477
+
478
+ class DM
479
+ ALPHA_2 = "DM"
480
+ ALPHA_3 = "DMA"
481
+ COUNTRY_CODE = "1"
482
+ NAME = "Dominica"
483
+ UN_OFFICIAL_NAMES = %w[Dominica ドミニカ国].freeze
484
+ end
485
+
486
+ class HN
487
+ ALPHA_2 = "HN"
488
+ ALPHA_3 = "HND"
489
+ COUNTRY_CODE = "504"
490
+ NAME = "Honduras"
491
+ UN_OFFICIAL_NAMES = %w[Honduras ホンジュラス].freeze
492
+ end
493
+
494
+ class VI
495
+ ALPHA_2 = "VI"
496
+ ALPHA_3 = "VIR"
497
+ COUNTRY_CODE = "1"
498
+ NAME = "Virgin Islands (U.S.)"
499
+ UN_OFFICIAL_NAMES = ["Virgin Islands of the United States", "Amerikanische Jungferninseln",
500
+ "Îles Vierges américaines", "Islas Vírgenes de los Estados Unidos",
501
+ "アメリカ領ヴァージン諸島", "Amerikaanse Maagdeneilanden",
502
+ "Virgin Islands (U.S.)", "United States Virgin Islands"].freeze
503
+ end
504
+
505
+ class LC
506
+ ALPHA_2 = "LC"
507
+ ALPHA_3 = "LCA"
508
+ COUNTRY_CODE = "1"
509
+ NAME = "Saint Lucia"
510
+ UN_OFFICIAL_NAMES = ["Saint Lucia", "Saint-Lucie", "Santa Lucía", "セントルシア", "St. Lucia", "St Lucia"].freeze
511
+ end
512
+
513
+ class BL
514
+ ALPHA_2 = "BL"
515
+ ALPHA_3 = "BLM"
516
+ COUNTRY_CODE = "590"
517
+ NAME = "Saint Barthélemy"
518
+ UN_OFFICIAL_NAMES = ["Saint Barthélemy", "Saint-Barthélemy", "サン・バルテルミー"].freeze
519
+ end
520
+
521
+ class VE
522
+ ALPHA_2 = "VE"
523
+ ALPHA_3 = "VEN"
524
+ COUNTRY_CODE = "58"
525
+ NAME = "Venezuela (Bolivarian Republic of)"
526
+ UN_OFFICIAL_NAMES = ["Venezuela", "ベネズエラ・ボリバル共和国"].freeze
527
+ end
528
+ end
529
+ end