countries 4.1.3 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -1
  3. data/README.markdown +42 -35
  4. data/Rakefile +23 -31
  5. data/lib/countries/cache/countries.json +1 -1
  6. data/lib/countries/cache/locales/nb.json +1 -1
  7. data/lib/countries/cache/locales/nn.json +1 -1
  8. data/lib/countries/country/class_methods.rb +19 -6
  9. data/lib/countries/country.rb +42 -2
  10. data/lib/countries/data/countries/AD.yaml +28 -29
  11. data/lib/countries/data/countries/AE.yaml +32 -33
  12. data/lib/countries/data/countries/AF.yaml +32 -33
  13. data/lib/countries/data/countries/AG.yaml +28 -29
  14. data/lib/countries/data/countries/AI.yaml +27 -28
  15. data/lib/countries/data/countries/AL.yaml +28 -29
  16. data/lib/countries/data/countries/AM.yaml +30 -31
  17. data/lib/countries/data/countries/AO.yaml +25 -26
  18. data/lib/countries/data/countries/AQ.yaml +24 -25
  19. data/lib/countries/data/countries/AR.yaml +30 -31
  20. data/lib/countries/data/countries/AS.yaml +31 -32
  21. data/lib/countries/data/countries/AT.yaml +36 -37
  22. data/lib/countries/data/countries/AU.yaml +33 -34
  23. data/lib/countries/data/countries/AW.yaml +25 -26
  24. data/lib/countries/data/countries/AX.yaml +27 -28
  25. data/lib/countries/data/countries/AZ.yaml +30 -31
  26. data/lib/countries/data/countries/BA.yaml +32 -33
  27. data/lib/countries/data/countries/BB.yaml +28 -29
  28. data/lib/countries/data/countries/BD.yaml +27 -28
  29. data/lib/countries/data/countries/BE.yaml +41 -42
  30. data/lib/countries/data/countries/BF.yaml +27 -28
  31. data/lib/countries/data/countries/BG.yaml +36 -37
  32. data/lib/countries/data/countries/BH.yaml +28 -29
  33. data/lib/countries/data/countries/BI.yaml +27 -28
  34. data/lib/countries/data/countries/BJ.yaml +26 -27
  35. data/lib/countries/data/countries/BL.yaml +25 -26
  36. data/lib/countries/data/countries/BM.yaml +29 -30
  37. data/lib/countries/data/countries/BN.yaml +26 -27
  38. data/lib/countries/data/countries/BO.yaml +31 -32
  39. data/lib/countries/data/countries/BQ.yaml +28 -29
  40. data/lib/countries/data/countries/BR.yaml +35 -36
  41. data/lib/countries/data/countries/BS.yaml +27 -28
  42. data/lib/countries/data/countries/BT.yaml +28 -29
  43. data/lib/countries/data/countries/BV.yaml +23 -24
  44. data/lib/countries/data/countries/BW.yaml +27 -28
  45. data/lib/countries/data/countries/BY.yaml +30 -31
  46. data/lib/countries/data/countries/BZ.yaml +28 -29
  47. data/lib/countries/data/countries/CA.yaml +30 -31
  48. data/lib/countries/data/countries/CC.yaml +28 -29
  49. data/lib/countries/data/countries/CD.yaml +35 -36
  50. data/lib/countries/data/countries/CF.yaml +29 -30
  51. data/lib/countries/data/countries/CG.yaml +29 -30
  52. data/lib/countries/data/countries/CH.yaml +40 -41
  53. data/lib/countries/data/countries/CI.yaml +27 -28
  54. data/lib/countries/data/countries/CK.yaml +27 -28
  55. data/lib/countries/data/countries/CL.yaml +32 -33
  56. data/lib/countries/data/countries/CM.yaml +29 -30
  57. data/lib/countries/data/countries/CN.yaml +28 -29
  58. data/lib/countries/data/countries/CO.yaml +28 -29
  59. data/lib/countries/data/countries/CR.yaml +26 -27
  60. data/lib/countries/data/countries/CU.yaml +27 -28
  61. data/lib/countries/data/countries/CV.yaml +28 -29
  62. data/lib/countries/data/countries/CW.yaml +25 -26
  63. data/lib/countries/data/countries/CX.yaml +30 -31
  64. data/lib/countries/data/countries/CY.yaml +40 -41
  65. data/lib/countries/data/countries/CZ.yaml +38 -39
  66. data/lib/countries/data/countries/DE.yaml +36 -37
  67. data/lib/countries/data/countries/DJ.yaml +29 -30
  68. data/lib/countries/data/countries/DK.yaml +35 -36
  69. data/lib/countries/data/countries/DM.yaml +26 -27
  70. data/lib/countries/data/countries/DO.yaml +28 -29
  71. data/lib/countries/data/countries/DZ.yaml +28 -29
  72. data/lib/countries/data/countries/EC.yaml +28 -29
  73. data/lib/countries/data/countries/EE.yaml +35 -36
  74. data/lib/countries/data/countries/EG.yaml +28 -29
  75. data/lib/countries/data/countries/EH.yaml +30 -31
  76. data/lib/countries/data/countries/ER.yaml +31 -32
  77. data/lib/countries/data/countries/ES.yaml +36 -37
  78. data/lib/countries/data/countries/ET.yaml +28 -29
  79. data/lib/countries/data/countries/FI.yaml +38 -39
  80. data/lib/countries/data/countries/FJ.yaml +33 -34
  81. data/lib/countries/data/countries/FK.yaml +29 -30
  82. data/lib/countries/data/countries/FM.yaml +28 -29
  83. data/lib/countries/data/countries/FO.yaml +28 -29
  84. data/lib/countries/data/countries/FR.yaml +37 -38
  85. data/lib/countries/data/countries/GA.yaml +27 -28
  86. data/lib/countries/data/countries/GB.yaml +39 -38
  87. data/lib/countries/data/countries/GD.yaml +26 -27
  88. data/lib/countries/data/countries/GE.yaml +28 -29
  89. data/lib/countries/data/countries/GF.yaml +29 -30
  90. data/lib/countries/data/countries/GG.yaml +30 -31
  91. data/lib/countries/data/countries/GH.yaml +27 -28
  92. data/lib/countries/data/countries/GI.yaml +26 -27
  93. data/lib/countries/data/countries/GL.yaml +29 -30
  94. data/lib/countries/data/countries/GM.yaml +25 -26
  95. data/lib/countries/data/countries/GN.yaml +30 -31
  96. data/lib/countries/data/countries/GP.yaml +27 -28
  97. data/lib/countries/data/countries/GQ.yaml +29 -30
  98. data/lib/countries/data/countries/GR.yaml +37 -38
  99. data/lib/countries/data/countries/GS.yaml +27 -28
  100. data/lib/countries/data/countries/GT.yaml +26 -27
  101. data/lib/countries/data/countries/GU.yaml +31 -32
  102. data/lib/countries/data/countries/GW.yaml +28 -29
  103. data/lib/countries/data/countries/GY.yaml +26 -27
  104. data/lib/countries/data/countries/HK.yaml +28 -29
  105. data/lib/countries/data/countries/HM.yaml +27 -28
  106. data/lib/countries/data/countries/HN.yaml +27 -28
  107. data/lib/countries/data/countries/HR.yaml +37 -38
  108. data/lib/countries/data/countries/HT.yaml +29 -30
  109. data/lib/countries/data/countries/HU.yaml +37 -38
  110. data/lib/countries/data/countries/ID.yaml +28 -29
  111. data/lib/countries/data/countries/IE.yaml +39 -40
  112. data/lib/countries/data/countries/IL.yaml +35 -29
  113. data/lib/countries/data/countries/IM.yaml +29 -30
  114. data/lib/countries/data/countries/IN.yaml +30 -31
  115. data/lib/countries/data/countries/IO.yaml +26 -27
  116. data/lib/countries/data/countries/IQ.yaml +28 -29
  117. data/lib/countries/data/countries/IR.yaml +28 -29
  118. data/lib/countries/data/countries/IS.yaml +35 -36
  119. data/lib/countries/data/countries/IT.yaml +36 -37
  120. data/lib/countries/data/countries/JE.yaml +26 -27
  121. data/lib/countries/data/countries/JM.yaml +28 -29
  122. data/lib/countries/data/countries/JO.yaml +28 -29
  123. data/lib/countries/data/countries/JP.yaml +28 -29
  124. data/lib/countries/data/countries/KE.yaml +29 -30
  125. data/lib/countries/data/countries/KG.yaml +30 -31
  126. data/lib/countries/data/countries/KH.yaml +28 -29
  127. data/lib/countries/data/countries/KI.yaml +25 -26
  128. data/lib/countries/data/countries/KM.yaml +29 -30
  129. data/lib/countries/data/countries/KN.yaml +29 -29
  130. data/lib/countries/data/countries/KP.yaml +27 -28
  131. data/lib/countries/data/countries/KR.yaml +28 -29
  132. data/lib/countries/data/countries/KW.yaml +28 -29
  133. data/lib/countries/data/countries/KY.yaml +29 -30
  134. data/lib/countries/data/countries/KZ.yaml +30 -31
  135. data/lib/countries/data/countries/LA.yaml +27 -28
  136. data/lib/countries/data/countries/LB.yaml +30 -31
  137. data/lib/countries/data/countries/LC.yaml +28 -29
  138. data/lib/countries/data/countries/LI.yaml +27 -28
  139. data/lib/countries/data/countries/LK.yaml +28 -29
  140. data/lib/countries/data/countries/LR.yaml +28 -29
  141. data/lib/countries/data/countries/LS.yaml +28 -29
  142. data/lib/countries/data/countries/LT.yaml +37 -38
  143. data/lib/countries/data/countries/LU.yaml +39 -40
  144. data/lib/countries/data/countries/LV.yaml +36 -37
  145. data/lib/countries/data/countries/LY.yaml +27 -28
  146. data/lib/countries/data/countries/MA.yaml +28 -29
  147. data/lib/countries/data/countries/MC.yaml +28 -29
  148. data/lib/countries/data/countries/MD.yaml +28 -29
  149. data/lib/countries/data/countries/ME.yaml +33 -34
  150. data/lib/countries/data/countries/MF.yaml +29 -30
  151. data/lib/countries/data/countries/MG.yaml +30 -31
  152. data/lib/countries/data/countries/MH.yaml +30 -31
  153. data/lib/countries/data/countries/MK.yaml +28 -29
  154. data/lib/countries/data/countries/ML.yaml +25 -26
  155. data/lib/countries/data/countries/MM.yaml +27 -28
  156. data/lib/countries/data/countries/MN.yaml +28 -29
  157. data/lib/countries/data/countries/MO.yaml +28 -29
  158. data/lib/countries/data/countries/MP.yaml +31 -32
  159. data/lib/countries/data/countries/MQ.yaml +27 -28
  160. data/lib/countries/data/countries/MR.yaml +29 -30
  161. data/lib/countries/data/countries/MS.yaml +26 -27
  162. data/lib/countries/data/countries/MT.yaml +36 -37
  163. data/lib/countries/data/countries/MU.yaml +28 -29
  164. data/lib/countries/data/countries/MV.yaml +28 -29
  165. data/lib/countries/data/countries/MW.yaml +27 -28
  166. data/lib/countries/data/countries/MX.yaml +33 -34
  167. data/lib/countries/data/countries/MY.yaml +30 -31
  168. data/lib/countries/data/countries/MZ.yaml +28 -29
  169. data/lib/countries/data/countries/NA.yaml +30 -31
  170. data/lib/countries/data/countries/NC.yaml +29 -30
  171. data/lib/countries/data/countries/NE.yaml +27 -28
  172. data/lib/countries/data/countries/NF.yaml +29 -30
  173. data/lib/countries/data/countries/NG.yaml +33 -34
  174. data/lib/countries/data/countries/NI.yaml +26 -27
  175. data/lib/countries/data/countries/NL.yaml +36 -37
  176. data/lib/countries/data/countries/NO.yaml +36 -37
  177. data/lib/countries/data/countries/NP.yaml +32 -33
  178. data/lib/countries/data/countries/NR.yaml +27 -28
  179. data/lib/countries/data/countries/NU.yaml +25 -26
  180. data/lib/countries/data/countries/NZ.yaml +34 -35
  181. data/lib/countries/data/countries/OM.yaml +28 -29
  182. data/lib/countries/data/countries/PA.yaml +26 -27
  183. data/lib/countries/data/countries/PE.yaml +28 -29
  184. data/lib/countries/data/countries/PF.yaml +29 -30
  185. data/lib/countries/data/countries/PG.yaml +28 -29
  186. data/lib/countries/data/countries/PH.yaml +35 -36
  187. data/lib/countries/data/countries/PK.yaml +30 -31
  188. data/lib/countries/data/countries/PL.yaml +36 -37
  189. data/lib/countries/data/countries/PM.yaml +29 -30
  190. data/lib/countries/data/countries/PN.yaml +27 -28
  191. data/lib/countries/data/countries/PR.yaml +28 -29
  192. data/lib/countries/data/countries/PS.yaml +31 -32
  193. data/lib/countries/data/countries/PT.yaml +33 -34
  194. data/lib/countries/data/countries/PW.yaml +26 -27
  195. data/lib/countries/data/countries/PY.yaml +28 -29
  196. data/lib/countries/data/countries/QA.yaml +27 -28
  197. data/lib/countries/data/countries/RE.yaml +28 -29
  198. data/lib/countries/data/countries/RO.yaml +37 -38
  199. data/lib/countries/data/countries/RS.yaml +28 -29
  200. data/lib/countries/data/countries/RU.yaml +28 -29
  201. data/lib/countries/data/countries/RW.yaml +31 -32
  202. data/lib/countries/data/countries/SA.yaml +33 -29
  203. data/lib/countries/data/countries/SB.yaml +27 -28
  204. data/lib/countries/data/countries/SC.yaml +28 -29
  205. data/lib/countries/data/countries/SD.yaml +30 -31
  206. data/lib/countries/data/countries/SE.yaml +37 -38
  207. data/lib/countries/data/countries/SG.yaml +32 -33
  208. data/lib/countries/data/countries/SH.yaml +29 -30
  209. data/lib/countries/data/countries/SI.yaml +36 -37
  210. data/lib/countries/data/countries/SJ.yaml +29 -30
  211. data/lib/countries/data/countries/SK.yaml +36 -37
  212. data/lib/countries/data/countries/SL.yaml +25 -26
  213. data/lib/countries/data/countries/SM.yaml +28 -29
  214. data/lib/countries/data/countries/SN.yaml +27 -28
  215. data/lib/countries/data/countries/SO.yaml +30 -31
  216. data/lib/countries/data/countries/SR.yaml +26 -27
  217. data/lib/countries/data/countries/SS.yaml +29 -30
  218. data/lib/countries/data/countries/ST.yaml +27 -28
  219. data/lib/countries/data/countries/SV.yaml +27 -28
  220. data/lib/countries/data/countries/SX.yaml +28 -29
  221. data/lib/countries/data/countries/SY.yaml +27 -28
  222. data/lib/countries/data/countries/SZ.yaml +30 -31
  223. data/lib/countries/data/countries/TC.yaml +30 -31
  224. data/lib/countries/data/countries/TD.yaml +29 -30
  225. data/lib/countries/data/countries/TF.yaml +28 -29
  226. data/lib/countries/data/countries/TG.yaml +25 -26
  227. data/lib/countries/data/countries/TH.yaml +34 -35
  228. data/lib/countries/data/countries/TJ.yaml +30 -31
  229. data/lib/countries/data/countries/TK.yaml +27 -28
  230. data/lib/countries/data/countries/TL.yaml +27 -28
  231. data/lib/countries/data/countries/TM.yaml +30 -31
  232. data/lib/countries/data/countries/TN.yaml +30 -31
  233. data/lib/countries/data/countries/TO.yaml +29 -30
  234. data/lib/countries/data/countries/TR.yaml +28 -29
  235. data/lib/countries/data/countries/TT.yaml +28 -29
  236. data/lib/countries/data/countries/TV.yaml +25 -26
  237. data/lib/countries/data/countries/TW.yaml +28 -29
  238. data/lib/countries/data/countries/TZ.yaml +30 -31
  239. data/lib/countries/data/countries/UA.yaml +34 -35
  240. data/lib/countries/data/countries/UG.yaml +28 -29
  241. data/lib/countries/data/countries/UM.yaml +29 -30
  242. data/lib/countries/data/countries/US.yaml +29 -29
  243. data/lib/countries/data/countries/UY.yaml +27 -28
  244. data/lib/countries/data/countries/UZ.yaml +30 -31
  245. data/lib/countries/data/countries/VA.yaml +31 -32
  246. data/lib/countries/data/countries/VC.yaml +29 -30
  247. data/lib/countries/data/countries/VE.yaml +26 -27
  248. data/lib/countries/data/countries/VG.yaml +29 -30
  249. data/lib/countries/data/countries/VI.yaml +28 -29
  250. data/lib/countries/data/countries/VN.yaml +28 -29
  251. data/lib/countries/data/countries/VU.yaml +31 -32
  252. data/lib/countries/data/countries/WF.yaml +29 -30
  253. data/lib/countries/data/countries/WS.yaml +28 -29
  254. data/lib/countries/data/countries/YE.yaml +27 -28
  255. data/lib/countries/data/countries/YT.yaml +26 -27
  256. data/lib/countries/data/countries/ZA.yaml +39 -40
  257. data/lib/countries/data/countries/ZM.yaml +28 -29
  258. data/lib/countries/data/countries/ZW.yaml +31 -32
  259. data/lib/countries/data/subdivisions/CZ.yaml +115 -50
  260. data/lib/countries/data/subdivisions/KE.yaml +391 -503
  261. data/lib/countries/data/subdivisions/MK.yaml +3501 -5809
  262. data/lib/countries/data/subdivisions/SG.yaml +39 -109
  263. data/lib/countries/data/subdivisions/US.yaml +0 -42
  264. data/lib/countries/data/translation_corrections.yaml +20 -14
  265. data/lib/countries/global.rb +1 -3
  266. data/lib/countries/structure.rb +2 -5
  267. data/lib/countries/tasks/geocoding.rake +1 -1
  268. data/lib/countries/version.rb +1 -1
  269. data/spec/country_spec.rb +60 -56
  270. data/spec/data_spec.rb +9 -9
  271. metadata +3 -5
  272. data/lib/countries/data/subdivisions/FO.yaml +0 -85
  273. data/lib/countries/data/subdivisions/KY.yaml +0 -85
data/spec/country_spec.rb CHANGED
@@ -43,12 +43,12 @@ describe ISO3166::Country do
43
43
  expect(country.alpha3).to eq('USA')
44
44
  end
45
45
 
46
- it 'should return 3166 name' do
47
- expect(country.name).to eq('United States of America')
46
+ it 'should return 3166 iso_short_name' do
47
+ expect(country.iso_short_name).to eq('United States of America')
48
48
  end
49
49
 
50
50
  it 'should return alternate names' do
51
- expect(country.names).to eq(['United States', 'Murica', 'Vereinigte Staaten von Amerika', 'États-Unis', 'Estados Unidos', 'アメリカ合衆国', 'Verenigde Staten'])
51
+ expect(country.unofficial_names).to eq(['United States', 'USA', 'Murica', 'Vereinigte Staaten von Amerika', 'États-Unis', 'Estados Unidos', 'アメリカ合衆国', 'Verenigde Staten'])
52
52
  end
53
53
 
54
54
  it 'should return translations' do
@@ -65,15 +65,7 @@ describe ISO3166::Country do
65
65
  end
66
66
 
67
67
  it 'should return bounds' do
68
- expect(country.bounds['northeast']['lat']).to eq(71.5388001)
69
- end
70
-
71
- it 'should return the decimal Latitude' do
72
- expect(country.latitude_dec).to eq('39.44325637817383')
73
- end
74
-
75
- it 'should return the decimal Longitude' do
76
- expect(country.longitude_dec).to eq('-98.95733642578125')
68
+ expect(country.bounds['northeast']['lat']).to eq(71.3577635769)
77
69
  end
78
70
 
79
71
  it 'should return continent' do
@@ -144,7 +136,7 @@ describe ISO3166::Country do
144
136
  before do
145
137
  ISO3166::Data.register(
146
138
  alpha2: 'BR2',
147
- name: 'Brazil',
139
+ iso_short_name: 'Brazil',
148
140
  languages_official: %w(pt-BR),
149
141
  translations: {
150
142
  'pt-BR' => 'Translation for pt-BR',
@@ -168,7 +160,7 @@ describe ISO3166::Country do
168
160
  before do
169
161
  ISO3166::Data.register(
170
162
  alpha2: 'BR2',
171
- name: 'Brazil',
163
+ iso_short_name: 'Brazil',
172
164
  languages_official: %w(pt-BR),
173
165
  translations: {
174
166
  'pt' => 'Translation for pt'
@@ -233,11 +225,11 @@ describe ISO3166::Country do
233
225
  end
234
226
 
235
227
  it 'should return a hash with all sub divisions' do
236
- expect(country.subdivisions.size).to eq(60)
228
+ expect(country.subdivisions.size).to eq(57)
237
229
  end
238
230
 
239
231
  it 'should be available through states' do
240
- expect(country.states.size).to eq(60)
232
+ expect(country.states.size).to eq(57)
241
233
  end
242
234
 
243
235
  it 'should be a subdivision object' do
@@ -323,7 +315,7 @@ describe ISO3166::Country do
323
315
  end
324
316
 
325
317
  it 'should allow to customize each country representation passing a block to the method' do
326
- countries = ISO3166::Country.all { |country, data| [data['name'], country, data['country_code']] }
318
+ countries = ISO3166::Country.all { |country, data| [data['iso_short_name'], country, data['country_code']] }
327
319
  expect(countries).to be_an(Array)
328
320
  expect(countries.first).to be_an(Array)
329
321
  expect(countries.first.size).to eq(3)
@@ -354,7 +346,7 @@ describe ISO3166::Country do
354
346
  before do
355
347
  ISO3166::Data.register(
356
348
  alpha2: 'XX',
357
- name: 'Custom Country',
349
+ iso_short_name: 'Custom Country',
358
350
  translations: { 'en' => 'Custom Country' }
359
351
  )
360
352
  end
@@ -362,7 +354,7 @@ describe ISO3166::Country do
362
354
  it 'should include custom registered countries' do
363
355
  custom_country = ISO3166::Country.find_by_alpha2('XX')[1]
364
356
  countries = ISO3166::Country.all_translated
365
- expect(countries).to include(custom_country['name'])
357
+ expect(countries).to include(custom_country['iso_short_name'])
366
358
  end
367
359
 
368
360
  after do
@@ -549,7 +541,7 @@ describe ISO3166::Country do
549
541
  end
550
542
 
551
543
  it 'also performs searches with regexps and forces it to ignore case' do
552
- spain_data = ISO3166::Country.find_all_by(:names, /Españ/)
544
+ spain_data = ISO3166::Country.find_all_by(:unofficial_names, /Españ/)
553
545
  expect(spain_data).to be_a Hash
554
546
  expect(spain_data.keys).to eq(['ES'])
555
547
  end
@@ -561,7 +553,7 @@ describe ISO3166::Country do
561
553
  case lookup.length
562
554
  when 2 then ISO3166::Country.find_all_by(:alpha2, lookup)
563
555
  when 3 then ISO3166::Country.find_all_by(:alpha3, lookup)
564
- else ISO3166::Country.find_all_by(:name, lookup)
556
+ else ISO3166::Country.find_all_by(:iso_short_name, lookup)
565
557
  end
566
558
  end
567
559
  expect(Time.now - start).to be < 1
@@ -569,22 +561,22 @@ describe ISO3166::Country do
569
561
  end
570
562
 
571
563
  describe 'hash finder methods' do
572
- context "when search name in 'name'" do
573
- subject { ISO3166::Country.find_by_name('Poland') }
564
+ context "when search name in 'iso_short_name'" do
565
+ subject { ISO3166::Country.find_by_iso_short_name('Poland') }
574
566
  it 'should return' do
575
567
  expect(subject.first).to eq('PL')
576
568
  end
577
569
  end
578
570
 
579
- context "when search lowercase name in 'name'" do
580
- subject { ISO3166::Country.find_by_name('poland') }
571
+ context "when search lowercase name in 'iso_short_name'" do
572
+ subject { ISO3166::Country.find_by_iso_short_name('poland') }
581
573
  it 'should return' do
582
574
  expect(subject.first).to eq('PL')
583
575
  end
584
576
  end
585
577
 
586
- context "when search name with comma in 'name'" do
587
- subject { ISO3166::Country.find_by_name(country_name) }
578
+ context "when search name with comma in 'iso_short_name'" do
579
+ subject { ISO3166::Country.find_by_iso_short_name(country_name) }
588
580
 
589
581
  context 'with Republic of Korea' do
590
582
  let(:country_name) { 'Korea, Republic of' }
@@ -609,7 +601,7 @@ describe ISO3166::Country do
609
601
  end
610
602
 
611
603
  context 'when search lowercase multibyte name found' do
612
- subject { ISO3166::Country.find_country_by_name('россия') }
604
+ subject { ISO3166::Country.find_country_by_unofficial_names('россия') }
613
605
 
614
606
  it 'should be a country instance' do
615
607
  expect(subject).to be_a(ISO3166::Country)
@@ -618,7 +610,7 @@ describe ISO3166::Country do
618
610
  end
619
611
 
620
612
  context 'when search lowercase multibyte name found' do
621
- subject { ISO3166::Country.find_country_by_name(/россия/) }
613
+ subject { ISO3166::Country.find_country_by_unofficial_names(/россия/) }
622
614
 
623
615
  it 'should be a country instance' do
624
616
  expect(subject).to be_a(ISO3166::Country)
@@ -627,7 +619,7 @@ describe ISO3166::Country do
627
619
  end
628
620
 
629
621
  context 'when accents are not used' do
630
- subject { ISO3166::Country.find_country_by_name('emirats Arabes Unis') }
622
+ subject { ISO3166::Country.find_country_by_unofficial_names('emirats Arabes Unis') }
631
623
 
632
624
  it 'should be a country instance' do
633
625
  expect(subject).to be_a(ISO3166::Country)
@@ -635,8 +627,20 @@ describe ISO3166::Country do
635
627
  end
636
628
  end
637
629
 
638
- context "when search name in 'names'" do
639
- subject { ISO3166::Country.find_by_name('Polonia') }
630
+ context "when search name in 'unofficial_names'" do
631
+ subject { ISO3166::Country.find_by_unofficial_names('Polonia') }
632
+ it 'should return' do
633
+ expect(subject.first).to eq('PL')
634
+ end
635
+ end
636
+
637
+ context "when search name in 'translated_names'" do
638
+ before do
639
+ ISO3166.configure do |config|
640
+ config.locales = [:bs]
641
+ end
642
+ end
643
+ subject { ISO3166::Country.find_by_translated_names('Poljska') }
640
644
  it 'should return' do
641
645
  expect(subject.first).to eq('PL')
642
646
  end
@@ -669,7 +673,7 @@ describe ISO3166::Country do
669
673
 
670
674
  describe 'country finder methods' do
671
675
  context 'when search name found' do
672
- let(:uk) { ISO3166::Country.find_country_by_name('United Kingdom') }
676
+ let(:uk) { ISO3166::Country.find_country_by_unofficial_names('United Kingdom') }
673
677
 
674
678
  it 'should be a country instance' do
675
679
  expect(uk).to be_a(ISO3166::Country)
@@ -678,7 +682,7 @@ describe ISO3166::Country do
678
682
  end
679
683
 
680
684
  context 'when search lowercase name found' do
681
- let(:uk) { ISO3166::Country.find_country_by_name('united kingdom') }
685
+ let(:uk) { ISO3166::Country.find_country_by_unofficial_names('united kingdom') }
682
686
 
683
687
  it 'should be a country instance' do
684
688
  expect(uk).to be_a(ISO3166::Country)
@@ -687,7 +691,7 @@ describe ISO3166::Country do
687
691
  end
688
692
 
689
693
  context 'when the search term contains comma' do
690
- let(:korea) { ISO3166::Country.find_country_by_name('Korea, Republic of') }
694
+ let(:korea) { ISO3166::Country.find_country_by_unofficial_names('Korea, Republic of') }
691
695
 
692
696
  it 'should be a country instance' do
693
697
  expect(korea).to be_a(ISO3166::Country)
@@ -726,7 +730,7 @@ describe ISO3166::Country do
726
730
  end
727
731
  end
728
732
  context 'when search name not found' do
729
- let(:bogus) { ISO3166::Country.find_country_by_name('Does not exist') }
733
+ let(:bogus) { ISO3166::Country.find_country_by_unofficial_names('Does not exist') }
730
734
 
731
735
  it 'should be a country instance' do
732
736
  expect(bogus).to eq(nil)
@@ -735,7 +739,7 @@ describe ISO3166::Country do
735
739
 
736
740
  # Spot checks #243
737
741
  context 'when search name not found' do
738
- let(:belgium) { ISO3166::Country.find_country_by_name('Belgium') }
742
+ let(:belgium) { ISO3166::Country.find_country_by_unofficial_names('Belgium') }
739
743
 
740
744
  it 'should be a country instance' do
741
745
  expect(belgium.alpha2).to eq('BE')
@@ -744,7 +748,7 @@ describe ISO3166::Country do
744
748
 
745
749
  # Spot checks #240
746
750
  context 'when search name not found' do
747
- let(:canada) { ISO3166::Country.find_country_by_name('Canada') }
751
+ let(:canada) { ISO3166::Country.find_country_by_unofficial_names('Canada') }
748
752
 
749
753
  it 'should be a country instance' do
750
754
  expect(canada.alpha2).to eq('CA')
@@ -753,7 +757,7 @@ describe ISO3166::Country do
753
757
 
754
758
  # Spot checks #241
755
759
  context 'when search name not found' do
756
- let(:israel) { ISO3166::Country.find_country_by_name('Israel') }
760
+ let(:israel) { ISO3166::Country.find_country_by_unofficial_names('Israel') }
757
761
 
758
762
  it 'should be a country instance' do
759
763
  expect(israel.alpha2).to eq('IL')
@@ -762,7 +766,7 @@ describe ISO3166::Country do
762
766
 
763
767
  # Spot checks #241
764
768
  context 'when search name not found' do
765
- let(:israel) { ISO3166::Country.find_by_name('Israel') }
769
+ let(:israel) { ISO3166::Country.find_by_iso_short_name('Israel') }
766
770
 
767
771
  it 'should be a country instance' do
768
772
  expect(israel[0]).to eq('IL')
@@ -771,7 +775,7 @@ describe ISO3166::Country do
771
775
 
772
776
  # Spot checks #241
773
777
  context 'when search name not found' do
774
- let(:israel) { ISO3166::Country.find_all_by(:name, 'Israel') }
778
+ let(:israel) { ISO3166::Country.find_all_by(:iso_short_name, 'Israel') }
775
779
 
776
780
  it 'should be a country instance' do
777
781
  expect(israel.size).to eq(1)
@@ -820,7 +824,7 @@ describe ISO3166::Country do
820
824
 
821
825
  describe 'hash finder methods' do
822
826
  context 'find by a valid Country attribute' do
823
- let(:method_name) { :find_by_name }
827
+ let(:method_name) { :find_by_iso_short_name }
824
828
  it { is_expected.to be true }
825
829
  end
826
830
 
@@ -846,7 +850,7 @@ describe ISO3166::Country do
846
850
  describe 'names in Data' do
847
851
  it 'should be unique (to allow .find_by_name work properly)' do
848
852
  names = ISO3166::Data.cache.map do |_k, v|
849
- [v['name'], v['unofficial_names']].flatten.uniq
853
+ [v['iso_short_name'], v['unofficial_names']].flatten.uniq
850
854
  end.flatten
851
855
 
852
856
  expect(names.size).to eq(names.uniq.size)
@@ -929,7 +933,7 @@ describe ISO3166::Country do
929
933
  end
930
934
 
931
935
  describe 'to_s' do
932
- it 'should return the country name' do
936
+ it 'should return the country iso_short_name' do
933
937
  expect(ISO3166::Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
934
938
  end
935
939
  end
@@ -970,30 +974,30 @@ describe ISO3166::Country do
970
974
 
971
975
  describe 'Added country names to search by' do
972
976
  it 'should return country code for Democratic Republic of the Congo' do
973
- expect(ISO3166::Country.find_country_by_name('Democratic Republic of the Congo').alpha2).to eq 'CD'
977
+ expect(ISO3166::Country.find_country_by_unofficial_names('Democratic Republic of the Congo').alpha2).to eq 'CD'
974
978
  end
975
979
  it 'should return country code for Ivory Coast' do
976
- expect(ISO3166::Country.find_country_by_name('Ivory Coast').alpha2).to eq 'CI'
980
+ expect(ISO3166::Country.find_country_by_unofficial_names('Ivory Coast').alpha2).to eq 'CI'
977
981
  end
978
982
  it 'should return Pakistan code for Guinea Bissau' do
979
- expect(ISO3166::Country.find_country_by_name('Guinea Bissau').alpha2).to eq 'GW'
983
+ expect(ISO3166::Country.find_country_by_unofficial_names('Guinea Bissau').alpha2).to eq 'GW'
980
984
  end
981
985
  it 'should return Pakistan code for St Kitts and Nevis' do
982
- expect(ISO3166::Country.find_country_by_name('St Kitts and Nevis').alpha2).to eq 'KN'
986
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Kitts and Nevis').alpha2).to eq 'KN'
983
987
  end
984
988
  it 'should return Pakistan code for St Lucia' do
985
- expect(ISO3166::Country.find_country_by_name('St Lucia').alpha2).to eq 'LC'
986
- expect(ISO3166::Country.find_country_by_name('St. Lucia').alpha2).to eq 'LC'
989
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Lucia').alpha2).to eq 'LC'
990
+ expect(ISO3166::Country.find_country_by_unofficial_names('St. Lucia').alpha2).to eq 'LC'
987
991
  end
988
992
  it 'should return Pakistan code for Turks and Caicos' do
989
- expect(ISO3166::Country.find_country_by_name('Turks and Caicos').alpha2).to eq 'TC'
993
+ expect(ISO3166::Country.find_country_by_unofficial_names('Turks and Caicos').alpha2).to eq 'TC'
990
994
  end
991
995
  it 'should return Pakistan code for St Vincent Grenadines' do
992
- expect(ISO3166::Country.find_country_by_name('St Vincent Grenadines').alpha2).to eq 'VC'
993
- expect(ISO3166::Country.find_country_by_name('St. Vincent Grenadines').alpha2).to eq 'VC'
996
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Vincent Grenadines').alpha2).to eq 'VC'
997
+ expect(ISO3166::Country.find_country_by_unofficial_names('St. Vincent Grenadines').alpha2).to eq 'VC'
994
998
  end
995
999
  it 'should return country code for Palestinian Authority' do
996
- expect(ISO3166::Country.find_country_by_name('Palestinian Authority').alpha2).to eq 'PS'
1000
+ expect(ISO3166::Country.find_country_by_unofficial_names('Palestinian Authority').alpha2).to eq 'PS'
997
1001
  end
998
1002
  end
999
1003
 
@@ -1022,8 +1026,8 @@ describe ISO3166::Country do
1022
1026
  expect(subject.last).to be_empty
1023
1027
  end
1024
1028
 
1025
- context "when asking for alpha2, alpha3 and name" do
1026
- let(:args) { [:alpha2, :alpha3, :name] }
1029
+ context "when asking for alpha2, alpha3 and iso_short_name" do
1030
+ let(:args) { [:alpha2, :alpha3, :iso_short_name] }
1027
1031
 
1028
1032
  it "returns the correct values" do
1029
1033
  expect(subject.first).to eq(["AD", "AND", "Andorra"])
data/spec/data_spec.rb CHANGED
@@ -95,7 +95,7 @@ describe ISO3166::Data do
95
95
  before do
96
96
  ISO3166::Data.register(
97
97
  alpha2: 'TW',
98
- name: 'NEW Taiwan',
98
+ iso_short_name: 'NEW Taiwan',
99
99
  subdivisions: {
100
100
  CHA: {name: 'New Changhua'},
101
101
  CYI: {name: 'New Municipality'}
@@ -112,8 +112,8 @@ describe ISO3166::Data do
112
112
  it 'can be done' do
113
113
  data = ISO3166::Data.new('TW').call
114
114
  ISO3166.configuration.locales = [:es, :de, :de]
115
- expect(data['name']).to eq 'NEW Taiwan'
116
- expect(subject.name).to eq 'NEW Taiwan'
115
+ expect(data['iso_short_name']).to eq 'NEW Taiwan'
116
+ expect(subject.iso_short_name).to eq 'NEW Taiwan'
117
117
  expect(subject.translations).to eq('en' => 'NEW Taiwan',
118
118
  'de' => 'NEW Taiwan')
119
119
  expect(subject.subdivisions).to eq('CHA' => ISO3166::Subdivision.new({name: 'New Changhua', code: 'CHA'}),
@@ -125,7 +125,7 @@ describe ISO3166::Data do
125
125
  before do
126
126
  ISO3166::Data.register(
127
127
  alpha2: 'LOL',
128
- name: 'Happy Country',
128
+ iso_short_name: 'Happy Country',
129
129
  subdivisions: {
130
130
  LOL1: {name: 'Happy sub1'},
131
131
  LOL2: {name: 'Happy sub2'}
@@ -141,17 +141,17 @@ describe ISO3166::Data do
141
141
 
142
142
  it 'can be done' do
143
143
  data = ISO3166::Data.new('LOL').call
144
- expect(data['name']).to eq 'Happy Country'
145
- expect(subject.name).to eq 'Happy Country'
144
+ expect(data['iso_short_name']).to eq 'Happy Country'
145
+ expect(subject.iso_short_name).to eq 'Happy Country'
146
146
  expect(subject.subdivisions).to eq('LOL1' => ISO3166::Subdivision.new({name: 'Happy sub1', code: 'LOL1'}),
147
147
  'LOL2' => ISO3166::Subdivision.new({name: 'Happy sub2', code: 'LOL2'}))
148
148
  end
149
149
 
150
150
  it 'detect a stale cache' do
151
- ISO3166::Data.register(alpha2: 'SAD', name: 'Sad Country')
151
+ ISO3166::Data.register(alpha2: 'SAD', iso_short_name: 'Sad Country')
152
152
  data = ISO3166::Data.new('SAD').call
153
- expect(data['name']).to eq 'Sad Country'
154
- expect(ISO3166::Country.new('SAD').name).to eq 'Sad Country'
153
+ expect(data['iso_short_name']).to eq 'Sad Country'
154
+ expect(ISO3166::Country.new('SAD').iso_short_name).to eq 'Sad Country'
155
155
  ISO3166::Data.unregister('SAD')
156
156
  end
157
157
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: countries
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.3
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Robinson
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-01-03 00:00:00.000000000 Z
14
+ date: 2022-01-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n_data
@@ -563,7 +563,6 @@ files:
563
563
  - lib/countries/data/subdivisions/FI.yaml
564
564
  - lib/countries/data/subdivisions/FJ.yaml
565
565
  - lib/countries/data/subdivisions/FM.yaml
566
- - lib/countries/data/subdivisions/FO.yaml
567
566
  - lib/countries/data/subdivisions/FR.yaml
568
567
  - lib/countries/data/subdivisions/GA.yaml
569
568
  - lib/countries/data/subdivisions/GB.yaml
@@ -610,7 +609,6 @@ files:
610
609
  - lib/countries/data/subdivisions/KP.yaml
611
610
  - lib/countries/data/subdivisions/KR.yaml
612
611
  - lib/countries/data/subdivisions/KW.yaml
613
- - lib/countries/data/subdivisions/KY.yaml
614
612
  - lib/countries/data/subdivisions/KZ.yaml
615
613
  - lib/countries/data/subdivisions/LA.yaml
616
614
  - lib/countries/data/subdivisions/LB.yaml
@@ -783,7 +781,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
783
781
  - !ruby/object:Gem::Version
784
782
  version: '0'
785
783
  requirements: []
786
- rubygems_version: 3.2.32
784
+ rubygems_version: 3.3.3
787
785
  signing_key:
788
786
  specification_version: 4
789
787
  summary: Gives you a country object full of all sorts of useful information.
@@ -1,85 +0,0 @@
1
- ---
2
- 'NO':
3
- name: Nordoyar
4
- code:
5
- unofficial_names: Nordoyar
6
- geo:
7
- latitude: 62.28333
8
- longitude: -6.58333
9
- min_latitude:
10
- min_longitude:
11
- max_latitude:
12
- max_longitude:
13
- translations:
14
- en: Nordoyar
15
- comments:
16
- OS:
17
- name: Eysturoyar
18
- code:
19
- unofficial_names: Eysturoyar
20
- geo:
21
- latitude: 62.21667
22
- longitude: -6.86667
23
- min_latitude:
24
- min_longitude:
25
- max_latitude:
26
- max_longitude:
27
- translations:
28
- en: Eysturoyar
29
- comments:
30
- SA:
31
- name: Sandoyar
32
- code:
33
- unofficial_names: Sandoyar
34
- geo:
35
- latitude: 61.83333
36
- longitude: -6.75
37
- min_latitude:
38
- min_longitude:
39
- max_latitude:
40
- max_longitude:
41
- translations:
42
- en: Sandoyar
43
- comments:
44
- ST:
45
- name: Streymoyar
46
- code:
47
- unofficial_names: Streymoyar
48
- geo:
49
- latitude: 62.13333
50
- longitude: -7
51
- min_latitude:
52
- min_longitude:
53
- max_latitude:
54
- max_longitude:
55
- translations:
56
- en: Streymoyar
57
- comments:
58
- SU:
59
- name: Suduroyar
60
- code:
61
- unofficial_names: Suduroyar
62
- geo:
63
- latitude: 61.48333
64
- longitude: -6.81667
65
- min_latitude:
66
- min_longitude:
67
- max_latitude:
68
- max_longitude:
69
- translations:
70
- en: Suduroyar
71
- comments:
72
- VG:
73
- name: Vaga
74
- code:
75
- unofficial_names: Vaga
76
- geo:
77
- latitude: 62.08333
78
- longitude: -7.25
79
- min_latitude:
80
- min_longitude:
81
- max_latitude:
82
- max_longitude:
83
- translations:
84
- en: Vaga
85
- comments:
@@ -1,85 +0,0 @@
1
- ---
2
- 01~:
3
- name: Bodden Town
4
- code:
5
- unofficial_names: Bodden Town
6
- geo:
7
- latitude: 19.2833
8
- longitude: -81.25
9
- min_latitude: 19.2637998
10
- min_longitude: -81.2832928
11
- max_latitude: 19.2955093
12
- max_longitude: -81.2319991
13
- translations:
14
- en: Bodden Town
15
- comments:
16
- 02~:
17
- name: Cayman Brac
18
- code:
19
- unofficial_names: Cayman Brac
20
- geo:
21
- latitude: 19.7235328
22
- longitude: -79.8016569
23
- min_latitude: 19.6828109
24
- min_longitude: -79.89373119999999
25
- max_latitude: 19.7568975
26
- max_longitude: -79.7229158
27
- translations:
28
- en: Cayman Brac
29
- comments:
30
- 03~:
31
- name: East End
32
- code:
33
- unofficial_names: East End
34
- geo:
35
- latitude: 19.297494
36
- longitude: -81.10948599999999
37
- min_latitude: 19.2938296
38
- min_longitude: -81.1188626
39
- max_latitude: 19.3053111
40
- max_longitude: -81.0997654
41
- translations:
42
- en: East End
43
- comments:
44
- 04~:
45
- name: George Town
46
- code:
47
- unofficial_names: George Town
48
- geo:
49
- latitude: 19.2869323
50
- longitude: -81.3674389
51
- min_latitude: 19.2653752
52
- min_longitude: -81.39309759999999
53
- max_latitude: 19.315071
54
- max_longitude: -81.3460965
55
- translations:
56
- en: George Town
57
- comments:
58
- 06~:
59
- name: North Side
60
- code:
61
- unofficial_names: North Side
62
- geo:
63
- latitude: 19.351389
64
- longitude: -81.20972200000001
65
- min_latitude: 19.3482176
66
- min_longitude: -81.2158942
67
- max_latitude: 19.3527121
68
- max_longitude: -81.19960789999999
69
- translations:
70
- en: North Side
71
- comments:
72
- 07~:
73
- name: West Bay
74
- code:
75
- unofficial_names: West Bay
76
- geo:
77
- latitude: 19.3823423
78
- longitude: -81.3894297
79
- min_latitude: 19.3665063
80
- min_longitude: -81.4200639
81
- max_latitude: 19.3967704
82
- max_longitude: -81.3612529
83
- translations:
84
- en: West Bay
85
- comments: