countries 4.1.3 → 4.2.0

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.
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: