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,462 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kountries
4
+ # Asia
5
+ module Asia
6
+ def self.find_country_by_name(name)
7
+ constants.each do |country|
8
+ asian_country_class = Module.const_get "Kountries::Asia::#{country}"
9
+ return as_struct(asian_country_class) if asian_country_class::NAME.upcase == name.upcase
10
+ return as_struct(asian_country_class) if asian_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::Asia.constants.include?(code.intern)
18
+
19
+ asian_country_class = Module.const_get "Kountries::Asia::#{code}"
20
+ return as_struct(asian_country_class) if asian_country_class::ALPHA_2 == code
21
+ end
22
+
23
+ def self.as_struct(asian_country_class)
24
+ OpenStruct.new(
25
+ alpha2: asian_country_class::ALPHA_2,
26
+ alpha3: asian_country_class::ALPHA_3,
27
+ country_code: asian_country_class::COUNTRY_CODE,
28
+ name: asian_country_class::NAME,
29
+ unofficial_names: asian_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 TJ
44
+ ALPHA_2 = "TJ"
45
+ ALPHA_3 = "TJK"
46
+ COUNTRY_CODE = "992"
47
+ NAME = "Tajikistan"
48
+ UN_OFFICIAL_NAMES = %w[Tajikistan Tadschikistan Tayikistán タジキスタン Tadzjikistan Tajikstan].freeze
49
+ end
50
+
51
+ class AE
52
+ ALPHA_2 = "AE"
53
+ ALPHA_3 = "ARE"
54
+ COUNTRY_CODE = "971"
55
+ NAME = "United Arab Emirates"
56
+ UN_OFFICIAL_NAMES = ["United Arab Emirates", "الإمارات العربية المتحدة", "Vereinigte Arabische Emirate",
57
+ "Émirats Arabes Unis", "Emiratos Árabes Unidos", "アラブ首長国連邦",
58
+ "Verenigde Arabische Emiraten"].freeze
59
+ end
60
+
61
+ class PK
62
+ ALPHA_2 = "PK"
63
+ ALPHA_3 = "PAK"
64
+ COUNTRY_CODE = "92"
65
+ NAME = "Pakistan"
66
+ UN_OFFICIAL_NAMES = %w[Pakistan Paquistán パキスタン].freeze
67
+ end
68
+
69
+ class IR
70
+ ALPHA_2 = "IR"
71
+ ALPHA_3 = "IRN"
72
+ COUNTRY_CODE = "98"
73
+ NAME = "Iran (Islamic Republic of)"
74
+ UN_OFFICIAL_NAMES = ["Iran", "Irán", "Iran (Islamic Republic Of)", "イラン・イスラム共和国",
75
+ "Islamic Republic of Iran"].freeze
76
+ end
77
+
78
+ class SA
79
+ ALPHA_2 = "SA"
80
+ ALPHA_3 = "SAU"
81
+ COUNTRY_CODE = "966"
82
+ NAME = "Saudi Arabia"
83
+ UN_OFFICIAL_NAMES = ["Saudi Arabia", "Kingdom of Saudi Arabia", "السعودية", "Saudi-Arabien",
84
+ "Arabie Saoudite", "Arabia Saudí", "サウジアラビア", "Saoedi-Arabië"].freeze
85
+ end
86
+
87
+ class QA
88
+ ALPHA_2 = "QA"
89
+ ALPHA_3 = "QAT"
90
+ COUNTRY_CODE = "974"
91
+ NAME = "Qatar"
92
+ UN_OFFICIAL_NAMES = %w[Qatar قطر Katar カタール].freeze
93
+ end
94
+
95
+ class KG
96
+ ALPHA_2 = "KG"
97
+ ALPHA_3 = "KGZ"
98
+ COUNTRY_CODE = "996"
99
+ NAME = "Kyrgyzstan"
100
+ UN_OFFICIAL_NAMES = %w[Kyrgyzstan Kirgisistan Kirghizistan Kirguizistán キルギス Kirgizië Kyrgzstan].freeze
101
+ end
102
+
103
+ class KR
104
+ ALPHA_2 = "KR"
105
+ ALPHA_3 = "KOR"
106
+ COUNTRY_CODE = "82"
107
+ NAME = "Korea (Republic of)"
108
+ UN_OFFICIAL_NAMES = ["South Korea", "Korea (South)", "Südkorea", "Corée du Sud",
109
+ "Corea del Sur", "大韓民国", "Zuid-Korea",
110
+ "Korea (Republic of)"].freeze
111
+ end
112
+
113
+ class TR
114
+ ALPHA_2 = "TR"
115
+ ALPHA_3 = "TUR"
116
+ COUNTRY_CODE = "90"
117
+ NAME = "Turkey"
118
+ UN_OFFICIAL_NAMES = %w[Turkey Türkei Turquie Turquía トルコ Turkije].freeze
119
+ end
120
+
121
+ class GE
122
+ ALPHA_2 = "GE"
123
+ ALPHA_3 = "GEO"
124
+ COUNTRY_CODE = "995"
125
+ NAME = "Georgia"
126
+ UN_OFFICIAL_NAMES = %w[Georgia Georgien Géorgie グルジア Georgië].freeze
127
+ end
128
+
129
+ class PS
130
+ ALPHA_2 = "PS"
131
+ ALPHA_3 = "PSE"
132
+ COUNTRY_CODE = "970"
133
+ NAME = "Palestine, State of"
134
+ UN_OFFICIAL_NAMES = ["Palestine", "فلسطين", "Palästina", "Palestina",
135
+ "the Occupied Palestinian Territory", "パレスチナ",
136
+ "Palestijnse gebieden", "Palestinian Territory Occupied", "Palestinian Authority"].freeze
137
+ end
138
+
139
+ class SY
140
+ ALPHA_2 = "SY"
141
+ ALPHA_3 = "SYR"
142
+ COUNTRY_CODE = "963"
143
+ NAME = "Syrian Arab Republic"
144
+ UN_OFFICIAL_NAMES = ["Syria", "سوريا", "سورية", "Syrien", "Syrie", "Siria", "シリア・アラブ共和国", "Syrië"].freeze
145
+ end
146
+
147
+ class BN
148
+ ALPHA_2 = "BN"
149
+ ALPHA_3 = "BRN"
150
+ COUNTRY_CODE = "673"
151
+ NAME = "Brunei Darussalam"
152
+ UN_OFFICIAL_NAMES = ["Brunei", "ブルネイ・ダルサラーム"].freeze
153
+ end
154
+
155
+ class LA
156
+ ALPHA_2 = "LA"
157
+ ALPHA_3 = "LAO"
158
+ COUNTRY_CODE = "856"
159
+ NAME = "Lao People's Democratic Republic"
160
+ UN_OFFICIAL_NAMES = ["Laos", "ラオス人民民主共和国", "Lao People s Democratic Republic"].freeze
161
+ end
162
+
163
+ class MY
164
+ ALPHA_2 = "MY"
165
+ ALPHA_3 = "MYS"
166
+ COUNTRY_CODE = "60"
167
+ NAME = "Malaysia"
168
+ UN_OFFICIAL_NAMES = %w[Malaysia Malaisie Malasia マレーシア Maleisië].freeze
169
+ end
170
+
171
+ class YE
172
+ ALPHA_2 = "YE"
173
+ ALPHA_3 = "YEM"
174
+ COUNTRY_CODE = "967"
175
+ NAME = "Yemen"
176
+ UN_OFFICIAL_NAMES = %w[Yemen اليمن Jemen Yémen イエメン].freeze
177
+ end
178
+
179
+ class HK
180
+ ALPHA_2 = "HK"
181
+ ALPHA_3 = "HKG"
182
+ COUNTRY_CODE = "852"
183
+ NAME = "Hong Kong"
184
+ UN_OFFICIAL_NAMES = ["Hong Kong", "香港", "Hongkong"].freeze
185
+ end
186
+
187
+ class AZ
188
+ ALPHA_2 = "AZ"
189
+ ALPHA_3 = "AZE"
190
+ COUNTRY_CODE = "994"
191
+ NAME = "Azerbaijan"
192
+ UN_OFFICIAL_NAMES = %w[Azerbaijan Aserbaidschan Azerbaïdjan Azerbaiyán アゼルバイジャン Azerbeidzjan].freeze
193
+ end
194
+
195
+ class TL
196
+ ALPHA_2 = "TL"
197
+ ALPHA_3 = "TLS"
198
+ COUNTRY_CODE = "670"
199
+ NAME = "Timor-Leste"
200
+ UN_OFFICIAL_NAMES = ["East Timor", "Timor-Leste", "Timor oriental", "Timor Oriental", "東ティモール",
201
+ "Oost-Timor"].freeze
202
+ end
203
+
204
+ class SG
205
+ ALPHA_2 = "SG"
206
+ ALPHA_3 = "SGP"
207
+ COUNTRY_CODE = "65"
208
+ NAME = "Singapore"
209
+ UN_OFFICIAL_NAMES = %w[Singapore Singapur Singapour シンガポール].freeze
210
+ end
211
+
212
+ class CN
213
+ ALPHA_2 = "CN"
214
+ ALPHA_3 = "CHN"
215
+ COUNTRY_CODE = "86"
216
+ NAME = "China"
217
+ UN_OFFICIAL_NAMES = %w[China Chine 中国].freeze
218
+ end
219
+
220
+ class BH
221
+ ALPHA_2 = "BH"
222
+ ALPHA_3 = "BHR"
223
+ COUNTRY_CODE = "973"
224
+ NAME = "Bahrain"
225
+ UN_OFFICIAL_NAMES = %w[Bahrain البحرين Bahreïn Bahrein バーレーン].freeze
226
+ end
227
+
228
+ class OM
229
+ ALPHA_2 = "OM"
230
+ ALPHA_3 = "OMN"
231
+ COUNTRY_CODE = "968"
232
+ NAME = "Oman"
233
+ UN_OFFICIAL_NAMES = %w[Oman عمان Omán オマーン].freeze
234
+ end
235
+
236
+ class TM
237
+ ALPHA_2 = "TM"
238
+ ALPHA_3 = "TKM"
239
+ COUNTRY_CODE = "993"
240
+ NAME = "Turkmenistan"
241
+ UN_OFFICIAL_NAMES = %w[Turkmenistan Turkménistan Turkmenistán トルクメニスタン].freeze
242
+ end
243
+
244
+ class MM
245
+ ALPHA_2 = "MM"
246
+ ALPHA_3 = "MMR"
247
+ COUNTRY_CODE = "95"
248
+ NAME = "Myanmar"
249
+ UN_OFFICIAL_NAMES = %w[Myanmar ミャンマー].freeze
250
+ end
251
+
252
+ class IL
253
+ ALPHA_2 = "IL"
254
+ ALPHA_3 = "ISR"
255
+ COUNTRY_CODE = "972"
256
+ NAME = "Israel"
257
+ UN_OFFICIAL_NAMES = %w[Israel Israël イスラエル].freeze
258
+ end
259
+
260
+ class BD
261
+ ALPHA_2 = "BD"
262
+ ALPHA_3 = "BGD"
263
+ COUNTRY_CODE = "880"
264
+ NAME = "Bangladesh"
265
+ UN_OFFICIAL_NAMES = %w[Bangladesh Bangladesch バングラデシュ].freeze
266
+ end
267
+
268
+ class LK
269
+ ALPHA_2 = "LK"
270
+ ALPHA_3 = "LKA"
271
+ COUNTRY_CODE = "94"
272
+ NAME = "Sri Lanka"
273
+ UN_OFFICIAL_NAMES = ["Sri Lanka", "スリランカ"].freeze
274
+ end
275
+
276
+ class MN
277
+ ALPHA_2 = "MN"
278
+ ALPHA_3 = "MNG"
279
+ COUNTRY_CODE = "976"
280
+ NAME = "Mongolia"
281
+ UN_OFFICIAL_NAMES = %w[Mongolia Mongolei Mongolie モンゴル Mongolië].freeze
282
+ end
283
+
284
+ class VN
285
+ ALPHA_2 = "VN"
286
+ ALPHA_3 = "VNM"
287
+ COUNTRY_CODE = "84"
288
+ NAME = "Vietnam"
289
+ UN_OFFICIAL_NAMES = ["Vietnam", "ベトナム", "Viet Nam"].freeze
290
+ end
291
+
292
+ class TW
293
+ ALPHA_2 = "TW"
294
+ ALPHA_3 = "TWN"
295
+ COUNTRY_CODE = "886"
296
+ NAME = "Taiwan, Province of China"
297
+ UN_OFFICIAL_NAMES = %w[Taiwan Taiwán 台湾].freeze
298
+ end
299
+
300
+ class JP
301
+ ALPHA_2 = "JP"
302
+ ALPHA_3 = "JPN"
303
+ COUNTRY_CODE = "81"
304
+ NAME = "Japan"
305
+ UN_OFFICIAL_NAMES = %w[Japan Japon Japón 日本].freeze
306
+ end
307
+
308
+ class AM
309
+ ALPHA_2 = "AM"
310
+ ALPHA_3 = "ARM"
311
+ COUNTRY_CODE = "374"
312
+ NAME = "Armenia"
313
+ UN_OFFICIAL_NAMES = %w[Armenia Armenien Arménie アルメニア Armenië].freeze
314
+ end
315
+
316
+ class KZ
317
+ ALPHA_2 = "KZ"
318
+ ALPHA_3 = "KAZ"
319
+ COUNTRY_CODE = "7"
320
+ NAME = "Kazakhstan"
321
+ UN_OFFICIAL_NAMES = %w[Kazakhstan Kasachstan Kazajistán カザフスタン Kazachstan].freeze
322
+ end
323
+
324
+ class CY
325
+ ALPHA_2 = "CY"
326
+ ALPHA_3 = "CYP"
327
+ COUNTRY_CODE = "357"
328
+ NAME = "Cyprus"
329
+ UN_OFFICIAL_NAMES = %w[Cyprus Zypern Chypre Chipre キプロス].freeze
330
+ end
331
+
332
+ class MV
333
+ ALPHA_2 = "MV"
334
+ ALPHA_3 = "MDV"
335
+ COUNTRY_CODE = "960"
336
+ NAME = "Maldives"
337
+ UN_OFFICIAL_NAMES = %w[Maldives Malediven Maldivas モルディブ Maldiven].freeze
338
+ end
339
+
340
+ class NP
341
+ ALPHA_2 = "NP"
342
+ ALPHA_3 = "NPL"
343
+ COUNTRY_CODE = "977"
344
+ NAME = "Nepal"
345
+ UN_OFFICIAL_NAMES = ["Nepal", "Népal", "the Federal Democratic Republic of Nepal", "ネパール"].freeze
346
+ end
347
+
348
+ class KW
349
+ ALPHA_2 = "KW"
350
+ ALPHA_3 = "KWT"
351
+ COUNTRY_CODE = "965"
352
+ NAME = "Kuwait"
353
+ UN_OFFICIAL_NAMES = %w[Kuwait الكويت Koweït クウェート Koeweit].freeze
354
+ end
355
+
356
+ class IN
357
+ ALPHA_2 = "IN"
358
+ ALPHA_3 = "IND"
359
+ COUNTRY_CODE = "91"
360
+ NAME = "India"
361
+ UN_OFFICIAL_NAMES = %w[India Indien Inde インド].freeze
362
+ end
363
+
364
+ class MO
365
+ ALPHA_2 = "MO"
366
+ ALPHA_3 = "MAC"
367
+ COUNTRY_CODE = "853"
368
+ NAME = "Macao"
369
+ UN_OFFICIAL_NAMES = %w[Macao Macau マカオ].freeze
370
+ end
371
+
372
+ class LB
373
+ ALPHA_2 = "LB"
374
+ ALPHA_3 = "LBN"
375
+ COUNTRY_CODE = "961"
376
+ NAME = "Lebanon"
377
+ UN_OFFICIAL_NAMES = %w[Lebanon لبنان Libanon Liban Líbano レバノン].freeze
378
+ end
379
+
380
+ class JO
381
+ ALPHA_2 = "JO"
382
+ ALPHA_3 = "JOR"
383
+ COUNTRY_CODE = "962"
384
+ NAME = "Jordan"
385
+ UN_OFFICIAL_NAMES = %w[Jordan الأردن Jordanien Jordanie Jordania ヨルダン Jordanië].freeze
386
+ end
387
+
388
+ class TH
389
+ ALPHA_2 = "TH"
390
+ ALPHA_3 = "THA"
391
+ COUNTRY_CODE = "66"
392
+ NAME = "Thailand"
393
+ UN_OFFICIAL_NAMES = %w[Thailand Thaïlande Tailandia タイ].freeze
394
+ end
395
+
396
+ class KP
397
+ ALPHA_2 = "KP"
398
+ ALPHA_3 = "PRK"
399
+ COUNTRY_CODE = "850"
400
+ NAME = "Korea (Democratic People's Republic of)"
401
+ UN_OFFICIAL_NAMES = ["Korea (North)", "North Korea", "Nordkorea", "Corée du Nord", "Corea del Norte",
402
+ "朝鮮民主主義人民共和国", "Noord-Korea", "Korea Democratic People's Republic",
403
+ "Korea (Democratic People s Republic of)"].freeze
404
+ end
405
+
406
+ class BT
407
+ ALPHA_2 = "BT"
408
+ ALPHA_3 = "BTN"
409
+ COUNTRY_CODE = "975"
410
+ NAME = "Bhutan"
411
+ UN_OFFICIAL_NAMES = %w[Bhutan Bhoutan Bután ブータン].freeze
412
+ end
413
+
414
+ class AF
415
+ ALPHA_2 = "AF"
416
+ ALPHA_3 = "AFG"
417
+ COUNTRY_CODE = "93"
418
+ NAME = "Afghanistan"
419
+ UN_OFFICIAL_NAMES = %w[Afghanistan Afganistán アフガニスタン].freeze
420
+ end
421
+
422
+ class PH
423
+ ALPHA_2 = "PH"
424
+ ALPHA_3 = "PHL"
425
+ COUNTRY_CODE = "63"
426
+ NAME = "Philippines"
427
+ UN_OFFICIAL_NAMES = %w[Philippines Philippinen Filipinas フィリピン Filipijnen].freeze
428
+ end
429
+
430
+ class KH
431
+ ALPHA_2 = "KH"
432
+ ALPHA_3 = "KHM"
433
+ COUNTRY_CODE = "855"
434
+ NAME = "Cambodia"
435
+ UN_OFFICIAL_NAMES = %w[Cambodia Kambodscha Cambodge Camboya カンボジア Cambodja].freeze
436
+ end
437
+
438
+ class IQ
439
+ ALPHA_2 = "IQ"
440
+ ALPHA_3 = "IRQ"
441
+ COUNTRY_CODE = "964"
442
+ NAME = "Iraq"
443
+ UN_OFFICIAL_NAMES = %w[Iraq العراق Irak イラク].freeze
444
+ end
445
+
446
+ class UZ
447
+ ALPHA_2 = "UZ"
448
+ ALPHA_3 = "UZB"
449
+ COUNTRY_CODE = "998"
450
+ NAME = "Uzbekistan"
451
+ UN_OFFICIAL_NAMES = %w[Uzbekistan Usbekistan Ouzbékistan Uzbekistán ウズベキスタン Oezbekistan].freeze
452
+ end
453
+
454
+ class ID
455
+ ALPHA_2 = "ID"
456
+ ALPHA_3 = "IDN"
457
+ COUNTRY_CODE = "62"
458
+ NAME = "Indonesia"
459
+ UN_OFFICIAL_NAMES = %w[Indonesia Indonesien Indonésie インドネシア Indonesië].freeze
460
+ end
461
+ end
462
+ end