kountries 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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