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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +13 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +55 -0
- data/LICENSE.txt +21 -0
- data/README.md +44 -0
- data/Rakefile +12 -0
- data/kountries.gemspec +39 -0
- data/lib/kountries/africa.rb +530 -0
- data/lib/kountries/america.rb +529 -0
- data/lib/kountries/asia.rb +462 -0
- data/lib/kountries/europe.rb +466 -0
- data/lib/kountries/lookup_by_code.rb +50 -0
- data/lib/kountries/lookup_by_name.rb +50 -0
- data/lib/kountries/oceania.rb +271 -0
- data/lib/kountries/version.rb +5 -0
- data/lib/kountries.rb +35 -0
- data/sig/kountries.rbs +4 -0
- metadata +66 -0
@@ -0,0 +1,466 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kountries
|
4
|
+
# Europe
|
5
|
+
module Europe
|
6
|
+
def self.find_country_by_name(name)
|
7
|
+
constants.each do |country|
|
8
|
+
european_country_class = Module.const_get "Kountries::Europe::#{country}"
|
9
|
+
return as_struct(european_country_class) if european_country_class::NAME.upcase == name.upcase
|
10
|
+
return as_struct(european_country_class) if european_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::Europe.constants.include?(code.intern)
|
18
|
+
|
19
|
+
european_country_class = Module.const_get "Kountries::Europe::#{code}"
|
20
|
+
return as_struct(european_country_class) if european_country_class::ALPHA_2 == code
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.as_struct(european_country_class)
|
24
|
+
OpenStruct.new(
|
25
|
+
alpha2: european_country_class::ALPHA_2,
|
26
|
+
alpha3: european_country_class::ALPHA_3,
|
27
|
+
country_code: european_country_class::COUNTRY_CODE,
|
28
|
+
name: european_country_class::NAME,
|
29
|
+
unofficial_names: european_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 NL
|
44
|
+
ALPHA_2 = "NL"
|
45
|
+
ALPHA_3 = "NLD"
|
46
|
+
COUNTRY_CODE = "31"
|
47
|
+
NAME = "Netherlands"
|
48
|
+
UN_OFFICIAL_NAMES = ["Netherlands", "The Netherlands", "Niederlande", "Pays-Bas", "Países Bajos", "オランダ",
|
49
|
+
"Nederland"].freeze
|
50
|
+
end
|
51
|
+
|
52
|
+
class LU
|
53
|
+
ALPHA_2 = "LU"
|
54
|
+
ALPHA_3 = "LUX"
|
55
|
+
COUNTRY_CODE = "352"
|
56
|
+
NAME = "Luxembourg"
|
57
|
+
UN_OFFICIAL_NAMES = %w[Luxembourg Luxemburg Luxemburgo ルクセンブルク].freeze
|
58
|
+
end
|
59
|
+
|
60
|
+
class SM
|
61
|
+
ALPHA_2 = "SM"
|
62
|
+
ALPHA_3 = "SMR"
|
63
|
+
COUNTRY_CODE = "378"
|
64
|
+
NAME = "San Marino"
|
65
|
+
UN_OFFICIAL_NAMES = ["San Marino", "Saint-Marin", "サンマリノ"].freeze
|
66
|
+
end
|
67
|
+
|
68
|
+
class MK
|
69
|
+
ALPHA_2 = "MK"
|
70
|
+
ALPHA_3 = "MKD"
|
71
|
+
COUNTRY_CODE = "389"
|
72
|
+
NAME = "North Macedonia"
|
73
|
+
UN_OFFICIAL_NAMES = ["Macedonia", "Mazedonien", "Macédoine", "F.Y.R.O.M (Macedonia)", "マケドニア旧ユーゴスラビア共和国",
|
74
|
+
"Macedonië [FYROM].freeze", "Macedonia (The Former Yugoslav Republic of)",
|
75
|
+
"North Macedonia"].freeze
|
76
|
+
end
|
77
|
+
|
78
|
+
class UA
|
79
|
+
ALPHA_2 = "UA"
|
80
|
+
ALPHA_3 = "UKR"
|
81
|
+
COUNTRY_CODE = "380"
|
82
|
+
NAME = "Ukraine"
|
83
|
+
UN_OFFICIAL_NAMES = %w[Ukraine Ucrania ウクライナ Oekraïne Украина Україна Украіна].freeze
|
84
|
+
end
|
85
|
+
|
86
|
+
class CH
|
87
|
+
ALPHA_2 = "CH"
|
88
|
+
ALPHA_3 = "CHE"
|
89
|
+
COUNTRY_CODE = "41"
|
90
|
+
NAME = "Switzerland"
|
91
|
+
UN_OFFICIAL_NAMES = %w[Switzerland Schweiz Suisse Suiza スイス Zwitserland].freeze
|
92
|
+
end
|
93
|
+
|
94
|
+
class FO
|
95
|
+
ALPHA_2 = "FO"
|
96
|
+
ALPHA_3 = "FRO"
|
97
|
+
COUNTRY_CODE = "298"
|
98
|
+
NAME = "Faroe Islands"
|
99
|
+
UN_OFFICIAL_NAMES = ["Faroe Islands", "Färöer-Inseln", "Îles Féroé", "Islas Faroe", "フェロー諸島", "Faeröer"].freeze
|
100
|
+
end
|
101
|
+
|
102
|
+
class GI
|
103
|
+
ALPHA_2 = "GI"
|
104
|
+
ALPHA_3 = "GIB"
|
105
|
+
COUNTRY_CODE = "350"
|
106
|
+
NAME = "Gibraltar"
|
107
|
+
UN_OFFICIAL_NAMES = %w[Gibraltar ジブラルタル].freeze
|
108
|
+
end
|
109
|
+
|
110
|
+
class IS
|
111
|
+
ALPHA_2 = "IS"
|
112
|
+
ALPHA_3 = "ISL"
|
113
|
+
COUNTRY_CODE = "354"
|
114
|
+
NAME = "Iceland"
|
115
|
+
UN_OFFICIAL_NAMES = %w[Iceland Island Islande Islandia アイスランド IJsland].freeze
|
116
|
+
end
|
117
|
+
|
118
|
+
class EE
|
119
|
+
ALPHA_2 = "EE"
|
120
|
+
ALPHA_3 = "EST"
|
121
|
+
COUNTRY_CODE = "372"
|
122
|
+
NAME = "Estonia"
|
123
|
+
UN_OFFICIAL_NAMES = %w[Estonia Estland Estonie エストニア].freeze
|
124
|
+
end
|
125
|
+
|
126
|
+
class LT
|
127
|
+
ALPHA_2 = "LT"
|
128
|
+
ALPHA_3 = "LTU"
|
129
|
+
COUNTRY_CODE = "370"
|
130
|
+
NAME = "Lithuania"
|
131
|
+
UN_OFFICIAL_NAMES = %w[Lithuania Litauen Lituanie Lituania リトアニア Litouwen Літва Lietuva].freeze
|
132
|
+
end
|
133
|
+
|
134
|
+
class RS
|
135
|
+
ALPHA_2 = "RS"
|
136
|
+
ALPHA_3 = "SRB"
|
137
|
+
COUNTRY_CODE = "381"
|
138
|
+
NAME = "Serbia"
|
139
|
+
UN_OFFICIAL_NAMES = %w[Serbia Serbien Serbie セルビア Servië].freeze
|
140
|
+
end
|
141
|
+
|
142
|
+
class AD
|
143
|
+
ALPHA_2 = "AD"
|
144
|
+
ALPHA_3 = "AND"
|
145
|
+
COUNTRY_CODE = "376"
|
146
|
+
NAME = "Andorra"
|
147
|
+
UN_OFFICIAL_NAMES = %w[Andorre Andorra アンドラ].freeze
|
148
|
+
end
|
149
|
+
|
150
|
+
class HU
|
151
|
+
ALPHA_2 = "HU"
|
152
|
+
ALPHA_3 = "HUN"
|
153
|
+
COUNTRY_CODE = "36"
|
154
|
+
NAME = "Hungary"
|
155
|
+
UN_OFFICIAL_NAMES = %w[Hungary Ungarn Hongrie Hungría ハンガリー Hongarije].freeze
|
156
|
+
end
|
157
|
+
|
158
|
+
class BE
|
159
|
+
ALPHA_2 = "BE"
|
160
|
+
ALPHA_3 = "BEL"
|
161
|
+
COUNTRY_CODE = "32"
|
162
|
+
NAME = "Belgium"
|
163
|
+
UN_OFFICIAL_NAMES = %w[Belgium Belgien Belgique Bélgica ベルギー België].freeze
|
164
|
+
end
|
165
|
+
|
166
|
+
class PT
|
167
|
+
ALPHA_2 = "PT"
|
168
|
+
ALPHA_3 = "PRT"
|
169
|
+
COUNTRY_CODE = "351"
|
170
|
+
NAME = "Portugal"
|
171
|
+
UN_OFFICIAL_NAMES = %w[Portugal ポルトガル].freeze
|
172
|
+
end
|
173
|
+
|
174
|
+
class GB
|
175
|
+
ALPHA_2 = "GB"
|
176
|
+
ALPHA_3 = "GBR"
|
177
|
+
COUNTRY_CODE = "44"
|
178
|
+
NAME = "United Kingdom of Great Britain and Northern Ireland"
|
179
|
+
UN_OFFICIAL_NAMES = ["United Kingdom", "The United Kingdom", "Vereinigtes Königreich", "Royaume-Uni",
|
180
|
+
"Reino Unido", "イギリス", "Verenigd Koninkrijk", "Great Britain (UK)", "UK",
|
181
|
+
"Великобритания", "England", "Scotland", "Wales", "Northern Ireland",
|
182
|
+
"Great Britain"].freeze
|
183
|
+
end
|
184
|
+
|
185
|
+
class IM
|
186
|
+
ALPHA_2 = "IM"
|
187
|
+
ALPHA_3 = "IMN"
|
188
|
+
COUNTRY_CODE = "44"
|
189
|
+
NAME = "Isle of Man"
|
190
|
+
UN_OFFICIAL_NAMES = ["Isle of Man", "Insel Man", "Île de Man", "Isla de Man", "マン島"].freeze
|
191
|
+
end
|
192
|
+
|
193
|
+
class SK
|
194
|
+
ALPHA_2 = "SK"
|
195
|
+
ALPHA_3 = "SVK"
|
196
|
+
COUNTRY_CODE = "421"
|
197
|
+
NAME = "Slovakia"
|
198
|
+
UN_OFFICIAL_NAMES = ["Slovakia", "Slowakei", "Slovaquie", "República Eslovaca", "スロバキア", "Slowakije"].freeze
|
199
|
+
end
|
200
|
+
|
201
|
+
class HR
|
202
|
+
ALPHA_2 = "HR"
|
203
|
+
ALPHA_3 = "HRV"
|
204
|
+
COUNTRY_CODE = "385"
|
205
|
+
NAME = "Croatia"
|
206
|
+
UN_OFFICIAL_NAMES = ["Croatia", "Kroatien", "Croatie", "Croacia", "クロアチア", "Kroatië", "Croatia (Hrvatska)"].freeze
|
207
|
+
end
|
208
|
+
|
209
|
+
class CZ
|
210
|
+
ALPHA_2 = "CZ"
|
211
|
+
ALPHA_3 = "CZE"
|
212
|
+
COUNTRY_CODE = "420"
|
213
|
+
NAME = "Czech Republic"
|
214
|
+
UN_OFFICIAL_NAMES = ["Czech Republic", "Tschechische Republik", "République Tchèque", "República Checa",
|
215
|
+
"チェコ", "Tsjechië", "Czechia"].freeze
|
216
|
+
end
|
217
|
+
|
218
|
+
class IT
|
219
|
+
ALPHA_2 = "IT"
|
220
|
+
ALPHA_3 = "ITA"
|
221
|
+
COUNTRY_CODE = "39"
|
222
|
+
NAME = "Italy"
|
223
|
+
UN_OFFICIAL_NAMES = %w[Italy Italien Italie Italia イタリア Italië].freeze
|
224
|
+
end
|
225
|
+
|
226
|
+
class FI
|
227
|
+
ALPHA_2 = "FI"
|
228
|
+
ALPHA_3 = "FIN"
|
229
|
+
COUNTRY_CODE = "358"
|
230
|
+
NAME = "Finland"
|
231
|
+
UN_OFFICIAL_NAMES = %w[Finland Finnland Finlande Finlandia フィンランド].freeze
|
232
|
+
end
|
233
|
+
|
234
|
+
class VA
|
235
|
+
ALPHA_2 = "VA"
|
236
|
+
ALPHA_3 = "VAT"
|
237
|
+
COUNTRY_CODE = "39"
|
238
|
+
NAME = "Holy See"
|
239
|
+
UN_OFFICIAL_NAMES = ["Vatican City", "Vatikan", "Cité du Vatican", "Ciudad del Vaticano",
|
240
|
+
"バチカン市国", "Vaticaanstad", "Vatican City State (Holy See)"].freeze
|
241
|
+
end
|
242
|
+
|
243
|
+
class RU
|
244
|
+
ALPHA_2 = "RU"
|
245
|
+
ALPHA_3 = "RUS"
|
246
|
+
COUNTRY_CODE = "7"
|
247
|
+
NAME = "Russian Federation"
|
248
|
+
UN_OFFICIAL_NAMES = %w[Russia Russland Russie Rusia ロシア連邦 Rusland Россия Расія].freeze
|
249
|
+
end
|
250
|
+
|
251
|
+
class PL
|
252
|
+
ALPHA_2 = "PL"
|
253
|
+
ALPHA_3 = "POL"
|
254
|
+
COUNTRY_CODE = "48"
|
255
|
+
NAME = "Poland"
|
256
|
+
UN_OFFICIAL_NAMES = %w[Poland Polen Pologne Polonia ポーランド].freeze
|
257
|
+
end
|
258
|
+
|
259
|
+
class MT
|
260
|
+
ALPHA_2 = "MT"
|
261
|
+
ALPHA_3 = "MLT"
|
262
|
+
COUNTRY_CODE = "356"
|
263
|
+
NAME = "Malta"
|
264
|
+
UN_OFFICIAL_NAMES = %w[Malta Malte マルタ].freeze
|
265
|
+
end
|
266
|
+
|
267
|
+
class DE
|
268
|
+
ALPHA_2 = "DE"
|
269
|
+
ALPHA_3 = "DEU"
|
270
|
+
COUNTRY_CODE = "49"
|
271
|
+
NAME = "Germany"
|
272
|
+
UN_OFFICIAL_NAMES = %w[Germany Deutschland Allemagne Alemania ドイツ Duitsland].freeze
|
273
|
+
end
|
274
|
+
|
275
|
+
class SJ
|
276
|
+
ALPHA_2 = "SJ"
|
277
|
+
ALPHA_3 = "SJM"
|
278
|
+
COUNTRY_CODE = "47"
|
279
|
+
NAME = "Svalbard and Jan Mayen"
|
280
|
+
UN_OFFICIAL_NAMES = ["Svalbard and Jan Mayen", "Svalbard und Jan Mayen", "Îles Svalbard et Jan Mayen",
|
281
|
+
"Islas Svalbard y Jan Mayen", "スヴァールバル諸島およびヤンマイエン島",
|
282
|
+
"Svalbard en Jan Mayen"].freeze
|
283
|
+
end
|
284
|
+
|
285
|
+
class SI
|
286
|
+
ALPHA_2 = "SI"
|
287
|
+
ALPHA_3 = "SVN"
|
288
|
+
COUNTRY_CODE = "386"
|
289
|
+
NAME = "Slovenia"
|
290
|
+
UN_OFFICIAL_NAMES = %w[Slovenia Slowenien Slovénie Eslovenia スロベニア Slovenië].freeze
|
291
|
+
end
|
292
|
+
|
293
|
+
class AX
|
294
|
+
ALPHA_2 = "AX"
|
295
|
+
ALPHA_3 = "ALA"
|
296
|
+
COUNTRY_CODE = "358"
|
297
|
+
NAME = "Åland Islands"
|
298
|
+
UN_OFFICIAL_NAMES = ["Åland Islands", "Åland", "オーランド諸島", "Ålandeilanden"].freeze
|
299
|
+
end
|
300
|
+
|
301
|
+
class RO
|
302
|
+
ALPHA_2 = "RO"
|
303
|
+
ALPHA_3 = "ROU"
|
304
|
+
COUNTRY_CODE = "40"
|
305
|
+
NAME = "Romania"
|
306
|
+
UN_OFFICIAL_NAMES = %w[Romania Rumänien Roumanie Rumania ルーマニア Roemenië].freeze
|
307
|
+
end
|
308
|
+
|
309
|
+
class BG
|
310
|
+
ALPHA_2 = "BG"
|
311
|
+
ALPHA_3 = "BGR"
|
312
|
+
COUNTRY_CODE = "359"
|
313
|
+
NAME = "Bulgaria"
|
314
|
+
UN_OFFICIAL_NAMES = %w[Bulgaria Bulgarien Bulgarie ブルガリア Bulgarije].freeze
|
315
|
+
end
|
316
|
+
|
317
|
+
class JE
|
318
|
+
ALPHA_2 = "JE"
|
319
|
+
ALPHA_3 = "JEY"
|
320
|
+
COUNTRY_CODE = "44"
|
321
|
+
NAME = "Jersey"
|
322
|
+
UN_OFFICIAL_NAMES = %w[Jersey ジャージー].freeze
|
323
|
+
end
|
324
|
+
|
325
|
+
class AT
|
326
|
+
ALPHA_2 = "AT"
|
327
|
+
ALPHA_3 = "AUT"
|
328
|
+
COUNTRY_CODE = "43"
|
329
|
+
NAME = "Austria"
|
330
|
+
UN_OFFICIAL_NAMES = %w[Austria Österreich Autriche オーストリア Oostenrijk].freeze
|
331
|
+
end
|
332
|
+
|
333
|
+
class SE
|
334
|
+
ALPHA_2 = "SE"
|
335
|
+
ALPHA_3 = "SWE"
|
336
|
+
COUNTRY_CODE = "46"
|
337
|
+
NAME = "Sweden"
|
338
|
+
UN_OFFICIAL_NAMES = %w[Sweden Schweden Suède Suecia スウェーデン Zweden].freeze
|
339
|
+
end
|
340
|
+
|
341
|
+
class MC
|
342
|
+
ALPHA_2 = "MC"
|
343
|
+
ALPHA_3 = "MCO"
|
344
|
+
COUNTRY_CODE = "377"
|
345
|
+
NAME = "Monaco"
|
346
|
+
UN_OFFICIAL_NAMES = %w[Monaco Mónaco モナコ].freeze
|
347
|
+
end
|
348
|
+
|
349
|
+
class DK
|
350
|
+
ALPHA_2 = "DK"
|
351
|
+
ALPHA_3 = "DNK"
|
352
|
+
COUNTRY_CODE = "45"
|
353
|
+
NAME = "Denmark"
|
354
|
+
UN_OFFICIAL_NAMES = %w[Denmark Dänemark Danemark Dinamarca デンマーク Denemarken].freeze
|
355
|
+
end
|
356
|
+
|
357
|
+
class FR
|
358
|
+
ALPHA_2 = "FR"
|
359
|
+
ALPHA_3 = "FRA"
|
360
|
+
COUNTRY_CODE = "33"
|
361
|
+
NAME = "France"
|
362
|
+
UN_OFFICIAL_NAMES = ["France", "Frankreich", "the French Republic", "フランス", "Frankrijk", "Francia"].freeze
|
363
|
+
end
|
364
|
+
|
365
|
+
class AL
|
366
|
+
ALPHA_2 = "AL"
|
367
|
+
ALPHA_3 = "ALB"
|
368
|
+
COUNTRY_CODE = "355"
|
369
|
+
NAME = "Albania"
|
370
|
+
UN_OFFICIAL_NAMES = %w[Albania Albanien Albanie アルバニア Albanië].freeze
|
371
|
+
end
|
372
|
+
|
373
|
+
class LI
|
374
|
+
ALPHA_2 = "LI"
|
375
|
+
ALPHA_3 = "LIE"
|
376
|
+
COUNTRY_CODE = "423"
|
377
|
+
NAME = "Liechtenstein"
|
378
|
+
UN_OFFICIAL_NAMES = %w[Liechtenstein リヒテンシュタイン].freeze
|
379
|
+
end
|
380
|
+
|
381
|
+
class MD
|
382
|
+
ALPHA_2 = "MD"
|
383
|
+
ALPHA_3 = "MDA"
|
384
|
+
COUNTRY_CODE = "373"
|
385
|
+
NAME = "Moldova (Republic of)"
|
386
|
+
UN_OFFICIAL_NAMES = ["Moldova", "Moldawien", "Moldavie", "Moldavia", "the Republic of Moldova", "モルドバ共和国",
|
387
|
+
"Moldavië"].freeze
|
388
|
+
end
|
389
|
+
|
390
|
+
class IE
|
391
|
+
ALPHA_2 = "IE"
|
392
|
+
ALPHA_3 = "IRL"
|
393
|
+
COUNTRY_CODE = "353"
|
394
|
+
NAME = "Ireland"
|
395
|
+
UN_OFFICIAL_NAMES = %w[Ireland Irland Irlande Irlanda アイルランド Ierland].freeze
|
396
|
+
end
|
397
|
+
|
398
|
+
class ES
|
399
|
+
ALPHA_2 = "ES"
|
400
|
+
ALPHA_3 = "ESP"
|
401
|
+
COUNTRY_CODE = "34"
|
402
|
+
NAME = "Spain"
|
403
|
+
UN_OFFICIAL_NAMES = %w[Spain Spanien Espagne España スペイン Spanje].freeze
|
404
|
+
end
|
405
|
+
|
406
|
+
class BA
|
407
|
+
ALPHA_2 = "BA"
|
408
|
+
ALPHA_3 = "BIH"
|
409
|
+
COUNTRY_CODE = "387"
|
410
|
+
NAME = "Bosnia and Herzegovina"
|
411
|
+
UN_OFFICIAL_NAMES = ["Bosnia and Herzegovina", "Bosnien und Herzegowina",
|
412
|
+
"Bosnie et Herzégovine", "Bosnia y Herzegovina",
|
413
|
+
"ボスニア・ヘルツェゴビナ", "Bosnië en Herzegovina", "Bosnia Herzegovina"].freeze
|
414
|
+
end
|
415
|
+
|
416
|
+
class GR
|
417
|
+
ALPHA_2 = "GR"
|
418
|
+
ALPHA_3 = "GRC"
|
419
|
+
COUNTRY_CODE = "30"
|
420
|
+
NAME = "Greece"
|
421
|
+
UN_OFFICIAL_NAMES = %w[Greece Griechenland Grèce Grecia ギリシャ Griekenland].freeze
|
422
|
+
end
|
423
|
+
|
424
|
+
class GG
|
425
|
+
ALPHA_2 = "GG"
|
426
|
+
ALPHA_3 = "GGY"
|
427
|
+
COUNTRY_CODE = "44"
|
428
|
+
NAME = "Guernsey"
|
429
|
+
UN_OFFICIAL_NAMES = ["Guernsey and Alderney", "Guernsey und Alderney",
|
430
|
+
"Guernsey et Alderney", "Guernsey y Alderney",
|
431
|
+
"ガーンジー", "Guernsey"].freeze
|
432
|
+
end
|
433
|
+
|
434
|
+
class BY
|
435
|
+
ALPHA_2 = "BY"
|
436
|
+
ALPHA_3 = "BLR"
|
437
|
+
COUNTRY_CODE = "375"
|
438
|
+
NAME = "Belarus"
|
439
|
+
UN_OFFICIAL_NAMES = %w[Belarus Weißrussland Biélorussie Bielorrusia ベラルーシ Wit-Rusland Беларусь].freeze
|
440
|
+
end
|
441
|
+
|
442
|
+
class LV
|
443
|
+
ALPHA_2 = "LV"
|
444
|
+
ALPHA_3 = "LVA"
|
445
|
+
COUNTRY_CODE = "371"
|
446
|
+
NAME = "Latvia"
|
447
|
+
UN_OFFICIAL_NAMES = %w[Latvia Lettland Lettonie Letonia ラトビア Letland].freeze
|
448
|
+
end
|
449
|
+
|
450
|
+
class NO
|
451
|
+
ALPHA_2 = "NO"
|
452
|
+
ALPHA_3 = "NOR"
|
453
|
+
COUNTRY_CODE = "47"
|
454
|
+
NAME = "Norway"
|
455
|
+
UN_OFFICIAL_NAMES = %w[Norway Norwegen Norvège Noruega ノルウェー Noorwegen].freeze
|
456
|
+
end
|
457
|
+
|
458
|
+
class ME
|
459
|
+
ALPHA_2 = "ME"
|
460
|
+
ALPHA_3 = "MNE"
|
461
|
+
COUNTRY_CODE = "382"
|
462
|
+
NAME = "Montenegro"
|
463
|
+
UN_OFFICIAL_NAMES = ["Crna Gora", "Montenegro", "モンテネグロ"].freeze
|
464
|
+
end
|
465
|
+
end
|
466
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kountries
|
4
|
+
# lookup country by code
|
5
|
+
class LookupByCode
|
6
|
+
def self.call(code:)
|
7
|
+
new(code).call
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(code)
|
11
|
+
@code = code
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
country_lookup
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
attr_reader :code
|
21
|
+
|
22
|
+
def country_lookup
|
23
|
+
african_country ||
|
24
|
+
american_country ||
|
25
|
+
asian_country ||
|
26
|
+
european_country ||
|
27
|
+
oceania_country || nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def african_country
|
31
|
+
Kountries::Africa.find_country_by_code(code)
|
32
|
+
end
|
33
|
+
|
34
|
+
def american_country
|
35
|
+
Kountries::America.find_country_by_code(code)
|
36
|
+
end
|
37
|
+
|
38
|
+
def asian_country
|
39
|
+
Kountries::Asia.find_country_by_code(code)
|
40
|
+
end
|
41
|
+
|
42
|
+
def european_country
|
43
|
+
Kountries::Europe.find_country_by_code(code)
|
44
|
+
end
|
45
|
+
|
46
|
+
def oceania_country
|
47
|
+
Kountries::Oceania.find_country_by_code(code)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Kountries
|
4
|
+
# lookup country by name
|
5
|
+
class LookupByName
|
6
|
+
def self.call(name:)
|
7
|
+
new(name).call
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize(name)
|
11
|
+
@name = name
|
12
|
+
end
|
13
|
+
|
14
|
+
def call
|
15
|
+
country_lookup
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
attr_reader :name
|
21
|
+
|
22
|
+
def country_lookup
|
23
|
+
african_country ||
|
24
|
+
american_country ||
|
25
|
+
asian_country ||
|
26
|
+
european_country ||
|
27
|
+
oceania_country || nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def african_country
|
31
|
+
Kountries::Africa.find_country_by_name(name)
|
32
|
+
end
|
33
|
+
|
34
|
+
def american_country
|
35
|
+
Kountries::America.find_country_by_name(name)
|
36
|
+
end
|
37
|
+
|
38
|
+
def asian_country
|
39
|
+
Kountries::Asia.find_country_by_name(name)
|
40
|
+
end
|
41
|
+
|
42
|
+
def european_country
|
43
|
+
Kountries::Europe.find_country_by_name(name)
|
44
|
+
end
|
45
|
+
|
46
|
+
def oceania_country
|
47
|
+
Kountries::Oceania.find_country_by_name(name)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|