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