countries 4.1.1 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +2 -0
  3. data/CHANGELOG.md +73 -4
  4. data/README.markdown +43 -37
  5. data/Rakefile +23 -31
  6. data/countries.gemspec +1 -1
  7. data/lib/countries/cache/countries.json +1 -1
  8. data/lib/countries/cache/locales/ab.json +1 -1
  9. data/lib/countries/cache/locales/af.json +1 -1
  10. data/lib/countries/cache/locales/ak.json +1 -1
  11. data/lib/countries/cache/locales/am.json +1 -1
  12. data/lib/countries/cache/locales/an.json +1 -1
  13. data/lib/countries/cache/locales/as.json +1 -1
  14. data/lib/countries/cache/locales/ay.json +1 -1
  15. data/lib/countries/cache/locales/az.json +1 -1
  16. data/lib/countries/cache/locales/ba.json +1 -1
  17. data/lib/countries/cache/locales/bg.json +1 -1
  18. data/lib/countries/cache/locales/bi.json +1 -1
  19. data/lib/countries/cache/locales/br.json +1 -1
  20. data/lib/countries/cache/locales/bs.json +1 -1
  21. data/lib/countries/cache/locales/ca.json +1 -1
  22. data/lib/countries/cache/locales/ce.json +1 -1
  23. data/lib/countries/cache/locales/ch.json +1 -1
  24. data/lib/countries/cache/locales/cv.json +1 -1
  25. data/lib/countries/cache/locales/de.json +1 -1
  26. data/lib/countries/cache/locales/dv.json +1 -1
  27. data/lib/countries/cache/locales/dz.json +1 -1
  28. data/lib/countries/cache/locales/ee.json +1 -1
  29. data/lib/countries/cache/locales/en.json +1 -1
  30. data/lib/countries/cache/locales/eo.json +1 -1
  31. data/lib/countries/cache/locales/es.json +1 -1
  32. data/lib/countries/cache/locales/et.json +1 -1
  33. data/lib/countries/cache/locales/ff.json +1 -1
  34. data/lib/countries/cache/locales/fi.json +1 -1
  35. data/lib/countries/cache/locales/fo.json +1 -1
  36. data/lib/countries/cache/locales/fr.json +1 -1
  37. data/lib/countries/cache/locales/fy.json +1 -1
  38. data/lib/countries/cache/locales/ga.json +1 -1
  39. data/lib/countries/cache/locales/gl.json +1 -1
  40. data/lib/countries/cache/locales/gn.json +1 -1
  41. data/lib/countries/cache/locales/gu.json +1 -1
  42. data/lib/countries/cache/locales/gv.json +1 -1
  43. data/lib/countries/cache/locales/ha.json +1 -1
  44. data/lib/countries/cache/locales/he.json +1 -1
  45. data/lib/countries/cache/locales/hi.json +1 -1
  46. data/lib/countries/cache/locales/hr.json +1 -1
  47. data/lib/countries/cache/locales/ht.json +1 -1
  48. data/lib/countries/cache/locales/hy.json +1 -1
  49. data/lib/countries/cache/locales/io.json +1 -1
  50. data/lib/countries/cache/locales/is.json +1 -1
  51. data/lib/countries/cache/locales/iu.json +1 -1
  52. data/lib/countries/cache/locales/ja.json +1 -1
  53. data/lib/countries/cache/locales/ka.json +1 -1
  54. data/lib/countries/cache/locales/ki.json +1 -1
  55. data/lib/countries/cache/locales/kk.json +1 -1
  56. data/lib/countries/cache/locales/kl.json +1 -1
  57. data/lib/countries/cache/locales/km.json +1 -1
  58. data/lib/countries/cache/locales/kn.json +1 -1
  59. data/lib/countries/cache/locales/kv.json +1 -1
  60. data/lib/countries/cache/locales/kw.json +1 -1
  61. data/lib/countries/cache/locales/ky.json +1 -1
  62. data/lib/countries/cache/locales/lo.json +1 -1
  63. data/lib/countries/cache/locales/lt.json +1 -1
  64. data/lib/countries/cache/locales/lv.json +1 -1
  65. data/lib/countries/cache/locales/mi.json +1 -1
  66. data/lib/countries/cache/locales/mk.json +1 -1
  67. data/lib/countries/cache/locales/ml.json +1 -1
  68. data/lib/countries/cache/locales/mn.json +1 -1
  69. data/lib/countries/cache/locales/ms.json +1 -1
  70. data/lib/countries/cache/locales/mt.json +1 -1
  71. data/lib/countries/cache/locales/my.json +1 -1
  72. data/lib/countries/cache/locales/na.json +1 -1
  73. data/lib/countries/cache/locales/nb.json +1 -1
  74. data/lib/countries/cache/locales/ne.json +1 -1
  75. data/lib/countries/cache/locales/nl.json +1 -1
  76. data/lib/countries/cache/locales/nn.json +1 -1
  77. data/lib/countries/cache/locales/nv.json +1 -1
  78. data/lib/countries/cache/locales/oc.json +1 -1
  79. data/lib/countries/cache/locales/pi.json +1 -1
  80. data/lib/countries/cache/locales/ps.json +1 -1
  81. data/lib/countries/cache/locales/pt-br.json +1 -1
  82. data/lib/countries/cache/locales/ro.json +1 -1
  83. data/lib/countries/cache/locales/ru.json +1 -1
  84. data/lib/countries/cache/locales/rw.json +1 -1
  85. data/lib/countries/cache/locales/sc.json +1 -1
  86. data/lib/countries/cache/locales/sd.json +1 -1
  87. data/lib/countries/cache/locales/si.json +1 -1
  88. data/lib/countries/cache/locales/sk.json +1 -1
  89. data/lib/countries/cache/locales/sl.json +1 -1
  90. data/lib/countries/cache/locales/so.json +1 -1
  91. data/lib/countries/cache/locales/sr.json +1 -1
  92. data/lib/countries/cache/locales/sv.json +1 -1
  93. data/lib/countries/cache/locales/sw.json +1 -1
  94. data/lib/countries/cache/locales/ta.json +1 -1
  95. data/lib/countries/cache/locales/te.json +1 -1
  96. data/lib/countries/cache/locales/th.json +1 -1
  97. data/lib/countries/cache/locales/ti.json +1 -1
  98. data/lib/countries/cache/locales/tk.json +1 -1
  99. data/lib/countries/cache/locales/tl.json +1 -1
  100. data/lib/countries/cache/locales/tr.json +1 -1
  101. data/lib/countries/cache/locales/tt.json +1 -1
  102. data/lib/countries/cache/locales/ur.json +1 -1
  103. data/lib/countries/cache/locales/uz.json +1 -1
  104. data/lib/countries/cache/locales/ve.json +1 -1
  105. data/lib/countries/cache/locales/vi.json +1 -1
  106. data/lib/countries/cache/locales/wa.json +1 -1
  107. data/lib/countries/cache/locales/wo.json +1 -1
  108. data/lib/countries/cache/locales/xh.json +1 -1
  109. data/lib/countries/cache/locales/yo.json +1 -1
  110. data/lib/countries/cache/locales/zh-cn.json +1 -1
  111. data/lib/countries/cache/locales/zh.json +1 -1
  112. data/lib/countries/cache/locales/zu.json +1 -1
  113. data/lib/countries/configuration.rb +13 -0
  114. data/lib/countries/country/class_methods.rb +19 -6
  115. data/lib/countries/country/currency_methods.rb +4 -1
  116. data/lib/countries/country/emoji.rb +3 -0
  117. data/lib/countries/country.rb +147 -7
  118. data/lib/countries/data/countries/AD.yaml +28 -29
  119. data/lib/countries/data/countries/AE.yaml +32 -33
  120. data/lib/countries/data/countries/AF.yaml +32 -33
  121. data/lib/countries/data/countries/AG.yaml +28 -29
  122. data/lib/countries/data/countries/AI.yaml +27 -28
  123. data/lib/countries/data/countries/AL.yaml +28 -29
  124. data/lib/countries/data/countries/AM.yaml +30 -31
  125. data/lib/countries/data/countries/AO.yaml +25 -26
  126. data/lib/countries/data/countries/AQ.yaml +24 -25
  127. data/lib/countries/data/countries/AR.yaml +30 -31
  128. data/lib/countries/data/countries/AS.yaml +31 -32
  129. data/lib/countries/data/countries/AT.yaml +36 -37
  130. data/lib/countries/data/countries/AU.yaml +33 -34
  131. data/lib/countries/data/countries/AW.yaml +25 -26
  132. data/lib/countries/data/countries/AX.yaml +27 -28
  133. data/lib/countries/data/countries/AZ.yaml +30 -31
  134. data/lib/countries/data/countries/BA.yaml +32 -33
  135. data/lib/countries/data/countries/BB.yaml +28 -29
  136. data/lib/countries/data/countries/BD.yaml +27 -28
  137. data/lib/countries/data/countries/BE.yaml +41 -42
  138. data/lib/countries/data/countries/BF.yaml +27 -28
  139. data/lib/countries/data/countries/BG.yaml +36 -37
  140. data/lib/countries/data/countries/BH.yaml +28 -29
  141. data/lib/countries/data/countries/BI.yaml +27 -28
  142. data/lib/countries/data/countries/BJ.yaml +26 -27
  143. data/lib/countries/data/countries/BL.yaml +25 -26
  144. data/lib/countries/data/countries/BM.yaml +29 -30
  145. data/lib/countries/data/countries/BN.yaml +26 -27
  146. data/lib/countries/data/countries/BO.yaml +31 -32
  147. data/lib/countries/data/countries/BQ.yaml +28 -29
  148. data/lib/countries/data/countries/BR.yaml +35 -36
  149. data/lib/countries/data/countries/BS.yaml +27 -28
  150. data/lib/countries/data/countries/BT.yaml +28 -29
  151. data/lib/countries/data/countries/BV.yaml +23 -24
  152. data/lib/countries/data/countries/BW.yaml +27 -28
  153. data/lib/countries/data/countries/BY.yaml +30 -31
  154. data/lib/countries/data/countries/BZ.yaml +28 -29
  155. data/lib/countries/data/countries/CA.yaml +30 -31
  156. data/lib/countries/data/countries/CC.yaml +28 -29
  157. data/lib/countries/data/countries/CD.yaml +35 -36
  158. data/lib/countries/data/countries/CF.yaml +29 -30
  159. data/lib/countries/data/countries/CG.yaml +29 -30
  160. data/lib/countries/data/countries/CH.yaml +40 -41
  161. data/lib/countries/data/countries/CI.yaml +27 -28
  162. data/lib/countries/data/countries/CK.yaml +27 -28
  163. data/lib/countries/data/countries/CL.yaml +32 -33
  164. data/lib/countries/data/countries/CM.yaml +29 -30
  165. data/lib/countries/data/countries/CN.yaml +28 -29
  166. data/lib/countries/data/countries/CO.yaml +28 -29
  167. data/lib/countries/data/countries/CR.yaml +26 -27
  168. data/lib/countries/data/countries/CU.yaml +27 -28
  169. data/lib/countries/data/countries/CV.yaml +28 -29
  170. data/lib/countries/data/countries/CW.yaml +25 -26
  171. data/lib/countries/data/countries/CX.yaml +30 -31
  172. data/lib/countries/data/countries/CY.yaml +40 -41
  173. data/lib/countries/data/countries/CZ.yaml +38 -39
  174. data/lib/countries/data/countries/DE.yaml +36 -37
  175. data/lib/countries/data/countries/DJ.yaml +29 -30
  176. data/lib/countries/data/countries/DK.yaml +35 -36
  177. data/lib/countries/data/countries/DM.yaml +26 -27
  178. data/lib/countries/data/countries/DO.yaml +28 -29
  179. data/lib/countries/data/countries/DZ.yaml +28 -29
  180. data/lib/countries/data/countries/EC.yaml +28 -29
  181. data/lib/countries/data/countries/EE.yaml +35 -36
  182. data/lib/countries/data/countries/EG.yaml +28 -29
  183. data/lib/countries/data/countries/EH.yaml +30 -31
  184. data/lib/countries/data/countries/ER.yaml +31 -32
  185. data/lib/countries/data/countries/ES.yaml +36 -37
  186. data/lib/countries/data/countries/ET.yaml +28 -29
  187. data/lib/countries/data/countries/FI.yaml +38 -39
  188. data/lib/countries/data/countries/FJ.yaml +33 -34
  189. data/lib/countries/data/countries/FK.yaml +29 -30
  190. data/lib/countries/data/countries/FM.yaml +28 -29
  191. data/lib/countries/data/countries/FO.yaml +28 -29
  192. data/lib/countries/data/countries/FR.yaml +37 -38
  193. data/lib/countries/data/countries/GA.yaml +27 -28
  194. data/lib/countries/data/countries/GB.yaml +39 -38
  195. data/lib/countries/data/countries/GD.yaml +26 -27
  196. data/lib/countries/data/countries/GE.yaml +28 -29
  197. data/lib/countries/data/countries/GF.yaml +29 -30
  198. data/lib/countries/data/countries/GG.yaml +30 -31
  199. data/lib/countries/data/countries/GH.yaml +27 -28
  200. data/lib/countries/data/countries/GI.yaml +26 -27
  201. data/lib/countries/data/countries/GL.yaml +29 -30
  202. data/lib/countries/data/countries/GM.yaml +25 -26
  203. data/lib/countries/data/countries/GN.yaml +30 -31
  204. data/lib/countries/data/countries/GP.yaml +27 -28
  205. data/lib/countries/data/countries/GQ.yaml +29 -30
  206. data/lib/countries/data/countries/GR.yaml +37 -38
  207. data/lib/countries/data/countries/GS.yaml +27 -28
  208. data/lib/countries/data/countries/GT.yaml +26 -27
  209. data/lib/countries/data/countries/GU.yaml +31 -32
  210. data/lib/countries/data/countries/GW.yaml +28 -29
  211. data/lib/countries/data/countries/GY.yaml +26 -27
  212. data/lib/countries/data/countries/HK.yaml +28 -29
  213. data/lib/countries/data/countries/HM.yaml +27 -28
  214. data/lib/countries/data/countries/HN.yaml +27 -28
  215. data/lib/countries/data/countries/HR.yaml +37 -38
  216. data/lib/countries/data/countries/HT.yaml +29 -30
  217. data/lib/countries/data/countries/HU.yaml +37 -38
  218. data/lib/countries/data/countries/ID.yaml +28 -29
  219. data/lib/countries/data/countries/IE.yaml +39 -40
  220. data/lib/countries/data/countries/IL.yaml +35 -31
  221. data/lib/countries/data/countries/IM.yaml +29 -30
  222. data/lib/countries/data/countries/IN.yaml +30 -31
  223. data/lib/countries/data/countries/IO.yaml +26 -27
  224. data/lib/countries/data/countries/IQ.yaml +28 -29
  225. data/lib/countries/data/countries/IR.yaml +28 -29
  226. data/lib/countries/data/countries/IS.yaml +35 -36
  227. data/lib/countries/data/countries/IT.yaml +36 -37
  228. data/lib/countries/data/countries/JE.yaml +26 -27
  229. data/lib/countries/data/countries/JM.yaml +28 -29
  230. data/lib/countries/data/countries/JO.yaml +28 -29
  231. data/lib/countries/data/countries/JP.yaml +28 -29
  232. data/lib/countries/data/countries/KE.yaml +29 -30
  233. data/lib/countries/data/countries/KG.yaml +30 -31
  234. data/lib/countries/data/countries/KH.yaml +28 -29
  235. data/lib/countries/data/countries/KI.yaml +25 -26
  236. data/lib/countries/data/countries/KM.yaml +29 -30
  237. data/lib/countries/data/countries/KN.yaml +29 -29
  238. data/lib/countries/data/countries/KP.yaml +27 -28
  239. data/lib/countries/data/countries/KR.yaml +28 -29
  240. data/lib/countries/data/countries/KW.yaml +28 -29
  241. data/lib/countries/data/countries/KY.yaml +29 -30
  242. data/lib/countries/data/countries/KZ.yaml +30 -31
  243. data/lib/countries/data/countries/LA.yaml +27 -28
  244. data/lib/countries/data/countries/LB.yaml +30 -31
  245. data/lib/countries/data/countries/LC.yaml +28 -29
  246. data/lib/countries/data/countries/LI.yaml +27 -28
  247. data/lib/countries/data/countries/LK.yaml +28 -29
  248. data/lib/countries/data/countries/LR.yaml +28 -29
  249. data/lib/countries/data/countries/LS.yaml +28 -29
  250. data/lib/countries/data/countries/LT.yaml +37 -38
  251. data/lib/countries/data/countries/LU.yaml +39 -40
  252. data/lib/countries/data/countries/LV.yaml +36 -37
  253. data/lib/countries/data/countries/LY.yaml +27 -28
  254. data/lib/countries/data/countries/MA.yaml +28 -29
  255. data/lib/countries/data/countries/MC.yaml +28 -29
  256. data/lib/countries/data/countries/MD.yaml +28 -29
  257. data/lib/countries/data/countries/ME.yaml +33 -34
  258. data/lib/countries/data/countries/MF.yaml +29 -30
  259. data/lib/countries/data/countries/MG.yaml +30 -31
  260. data/lib/countries/data/countries/MH.yaml +30 -31
  261. data/lib/countries/data/countries/MK.yaml +28 -29
  262. data/lib/countries/data/countries/ML.yaml +25 -26
  263. data/lib/countries/data/countries/MM.yaml +27 -28
  264. data/lib/countries/data/countries/MN.yaml +28 -29
  265. data/lib/countries/data/countries/MO.yaml +28 -29
  266. data/lib/countries/data/countries/MP.yaml +31 -32
  267. data/lib/countries/data/countries/MQ.yaml +27 -28
  268. data/lib/countries/data/countries/MR.yaml +29 -30
  269. data/lib/countries/data/countries/MS.yaml +26 -27
  270. data/lib/countries/data/countries/MT.yaml +36 -37
  271. data/lib/countries/data/countries/MU.yaml +28 -29
  272. data/lib/countries/data/countries/MV.yaml +28 -29
  273. data/lib/countries/data/countries/MW.yaml +27 -28
  274. data/lib/countries/data/countries/MX.yaml +33 -34
  275. data/lib/countries/data/countries/MY.yaml +30 -31
  276. data/lib/countries/data/countries/MZ.yaml +28 -29
  277. data/lib/countries/data/countries/NA.yaml +30 -31
  278. data/lib/countries/data/countries/NC.yaml +29 -30
  279. data/lib/countries/data/countries/NE.yaml +27 -28
  280. data/lib/countries/data/countries/NF.yaml +29 -30
  281. data/lib/countries/data/countries/NG.yaml +33 -34
  282. data/lib/countries/data/countries/NI.yaml +26 -27
  283. data/lib/countries/data/countries/NL.yaml +36 -37
  284. data/lib/countries/data/countries/NO.yaml +36 -37
  285. data/lib/countries/data/countries/NP.yaml +32 -33
  286. data/lib/countries/data/countries/NR.yaml +27 -28
  287. data/lib/countries/data/countries/NU.yaml +25 -26
  288. data/lib/countries/data/countries/NZ.yaml +34 -35
  289. data/lib/countries/data/countries/OM.yaml +28 -29
  290. data/lib/countries/data/countries/PA.yaml +26 -27
  291. data/lib/countries/data/countries/PE.yaml +28 -29
  292. data/lib/countries/data/countries/PF.yaml +29 -30
  293. data/lib/countries/data/countries/PG.yaml +28 -29
  294. data/lib/countries/data/countries/PH.yaml +35 -36
  295. data/lib/countries/data/countries/PK.yaml +30 -31
  296. data/lib/countries/data/countries/PL.yaml +36 -37
  297. data/lib/countries/data/countries/PM.yaml +29 -30
  298. data/lib/countries/data/countries/PN.yaml +27 -28
  299. data/lib/countries/data/countries/PR.yaml +28 -29
  300. data/lib/countries/data/countries/PS.yaml +31 -32
  301. data/lib/countries/data/countries/PT.yaml +33 -34
  302. data/lib/countries/data/countries/PW.yaml +26 -27
  303. data/lib/countries/data/countries/PY.yaml +28 -29
  304. data/lib/countries/data/countries/QA.yaml +27 -28
  305. data/lib/countries/data/countries/RE.yaml +28 -29
  306. data/lib/countries/data/countries/RO.yaml +37 -38
  307. data/lib/countries/data/countries/RS.yaml +28 -29
  308. data/lib/countries/data/countries/RU.yaml +28 -29
  309. data/lib/countries/data/countries/RW.yaml +31 -32
  310. data/lib/countries/data/countries/SA.yaml +33 -29
  311. data/lib/countries/data/countries/SB.yaml +27 -28
  312. data/lib/countries/data/countries/SC.yaml +28 -29
  313. data/lib/countries/data/countries/SD.yaml +30 -31
  314. data/lib/countries/data/countries/SE.yaml +37 -38
  315. data/lib/countries/data/countries/SG.yaml +32 -33
  316. data/lib/countries/data/countries/SH.yaml +29 -30
  317. data/lib/countries/data/countries/SI.yaml +36 -37
  318. data/lib/countries/data/countries/SJ.yaml +29 -30
  319. data/lib/countries/data/countries/SK.yaml +36 -37
  320. data/lib/countries/data/countries/SL.yaml +25 -26
  321. data/lib/countries/data/countries/SM.yaml +28 -29
  322. data/lib/countries/data/countries/SN.yaml +27 -28
  323. data/lib/countries/data/countries/SO.yaml +30 -31
  324. data/lib/countries/data/countries/SR.yaml +26 -27
  325. data/lib/countries/data/countries/SS.yaml +29 -30
  326. data/lib/countries/data/countries/ST.yaml +27 -28
  327. data/lib/countries/data/countries/SV.yaml +27 -28
  328. data/lib/countries/data/countries/SX.yaml +28 -29
  329. data/lib/countries/data/countries/SY.yaml +27 -28
  330. data/lib/countries/data/countries/SZ.yaml +30 -31
  331. data/lib/countries/data/countries/TC.yaml +30 -31
  332. data/lib/countries/data/countries/TD.yaml +29 -30
  333. data/lib/countries/data/countries/TF.yaml +28 -29
  334. data/lib/countries/data/countries/TG.yaml +25 -26
  335. data/lib/countries/data/countries/TH.yaml +34 -35
  336. data/lib/countries/data/countries/TJ.yaml +30 -31
  337. data/lib/countries/data/countries/TK.yaml +27 -28
  338. data/lib/countries/data/countries/TL.yaml +27 -28
  339. data/lib/countries/data/countries/TM.yaml +30 -31
  340. data/lib/countries/data/countries/TN.yaml +30 -31
  341. data/lib/countries/data/countries/TO.yaml +29 -30
  342. data/lib/countries/data/countries/TR.yaml +28 -29
  343. data/lib/countries/data/countries/TT.yaml +28 -29
  344. data/lib/countries/data/countries/TV.yaml +25 -26
  345. data/lib/countries/data/countries/TW.yaml +28 -29
  346. data/lib/countries/data/countries/TZ.yaml +30 -31
  347. data/lib/countries/data/countries/UA.yaml +34 -35
  348. data/lib/countries/data/countries/UG.yaml +28 -29
  349. data/lib/countries/data/countries/UM.yaml +29 -30
  350. data/lib/countries/data/countries/US.yaml +29 -29
  351. data/lib/countries/data/countries/UY.yaml +27 -28
  352. data/lib/countries/data/countries/UZ.yaml +30 -31
  353. data/lib/countries/data/countries/VA.yaml +31 -32
  354. data/lib/countries/data/countries/VC.yaml +29 -30
  355. data/lib/countries/data/countries/VE.yaml +26 -27
  356. data/lib/countries/data/countries/VG.yaml +29 -30
  357. data/lib/countries/data/countries/VI.yaml +28 -29
  358. data/lib/countries/data/countries/VN.yaml +28 -29
  359. data/lib/countries/data/countries/VU.yaml +31 -32
  360. data/lib/countries/data/countries/WF.yaml +29 -30
  361. data/lib/countries/data/countries/WS.yaml +28 -29
  362. data/lib/countries/data/countries/YE.yaml +27 -28
  363. data/lib/countries/data/countries/YT.yaml +26 -27
  364. data/lib/countries/data/countries/ZA.yaml +39 -40
  365. data/lib/countries/data/countries/ZM.yaml +28 -29
  366. data/lib/countries/data/countries/ZW.yaml +31 -32
  367. data/lib/countries/data/subdivisions/CZ.yaml +1045 -3736
  368. data/lib/countries/data/subdivisions/DE.yaml +16 -16
  369. data/lib/countries/data/subdivisions/DK.yaml +65 -287
  370. data/lib/countries/data/subdivisions/EE.yaml +96 -88
  371. data/lib/countries/data/subdivisions/FI.yaml +102 -499
  372. data/lib/countries/data/subdivisions/FR.yaml +584 -977
  373. data/lib/countries/data/subdivisions/GR.yaml +117 -988
  374. data/lib/countries/data/subdivisions/HU.yaml +62 -62
  375. data/lib/countries/data/subdivisions/IE.yaml +483 -482
  376. data/lib/countries/data/subdivisions/IT.yaml +1251 -1839
  377. data/lib/countries/data/subdivisions/KE.yaml +391 -503
  378. data/lib/countries/data/subdivisions/LU.yaml +194 -243
  379. data/lib/countries/data/subdivisions/LV.yaml +147 -5139
  380. data/lib/countries/data/subdivisions/MK.yaml +3501 -5809
  381. data/lib/countries/data/subdivisions/NZ.yaml +67 -111
  382. data/lib/countries/data/subdivisions/PL.yaml +210 -1208
  383. data/lib/countries/data/subdivisions/SG.yaml +39 -109
  384. data/lib/countries/data/subdivisions/US.yaml +0 -42
  385. data/lib/countries/data/translation_corrections.yaml +20 -12
  386. data/lib/countries/data.rb +5 -1
  387. data/lib/countries/global.rb +13 -3
  388. data/lib/countries/mongoid.rb +3 -0
  389. data/lib/countries/sources/cldr/downloader.rb +3 -0
  390. data/lib/countries/sources/cldr/subdivision.rb +1 -0
  391. data/lib/countries/sources/cldr/subdivision_updater.rb +1 -0
  392. data/lib/countries/sources/local/cached_loader.rb +2 -0
  393. data/lib/countries/sources/local/subdivision.rb +1 -0
  394. data/lib/countries/structure.rb +2 -5
  395. data/lib/countries/tasks/geocoding.rake +1 -1
  396. data/lib/countries/timezones.rb +4 -2
  397. data/lib/countries/translations.rb +2 -3
  398. data/lib/countries/version.rb +1 -1
  399. data/spec/country_spec.rb +60 -56
  400. data/spec/data_spec.rb +9 -9
  401. metadata +5 -7
  402. data/lib/countries/data/subdivisions/FO.yaml +0 -85
  403. data/lib/countries/data/subdivisions/KY.yaml +0 -85
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e92774738bb8bd03ce6ea03faefddf5318b166e40c1997d09ace3fa417abba8c
4
- data.tar.gz: 1f3e6c44fd8db1865d362e3d8e07a6238fbcf717daeea404a1c3c7dab71d5829
3
+ metadata.gz: 678e46df92cdbff4228c25619b4a2314ce1d6226fff8a482ec0f9ed9a6bac464
4
+ data.tar.gz: fb5e189397d9af4855751ddcb0168156c84a9409c79bbd707b36cc91155051ba
5
5
  SHA512:
6
- metadata.gz: f7ce86dd2a2aec4463d27b07c427a3ea6fa097d04661343b9309a603a52c5ab3dcbaff6f50dcb4c19ce9bdd373f144dc718f7409bdcdde83811395b341b39625
7
- data.tar.gz: adb4cbf79ae7da1315810ec6aaf55c71f9a7d6c0d9d99743fc32cd686db63fe5157523b22aedcc425abf3576e3e99ec5af7e9d19655df4562deb8f055029bbb7
6
+ metadata.gz: 161184e5015c11d10070be7d17bfe02c7292e5c1ff1fb68e9344f8fad39e23ed1fde5f7bef46f256999ef80a5503cdecb290e411343ce328bf085517e1a1a205
7
+ data.tar.gz: cb629c1eaf3626afe096159e170d5bf02c678db4ea4046623ed719cc5eea76983500ae38b8c7cb22146b32e7ddc91a006377bcace5e94d590ed85a70850ed67e
@@ -23,6 +23,8 @@ jobs:
23
23
  bundler-version: default
24
24
  - ruby-version: 3.0.3
25
25
  bundler-version: default
26
+ - ruby-version: 3.1.0
27
+ bundler-version: default
26
28
  steps:
27
29
  - uses: actions/checkout@v2
28
30
  - name: Set up Ruby ${{ matrix.ruby-version }}
data/CHANGELOG.md CHANGED
@@ -2,16 +2,81 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## [Unreleased]
5
+ ## [Future 5.0 release]
6
6
 
7
- - Dropped support for Ruby 2.5
7
+ **Breaking Changes**
8
+
9
+ - Drop support for Ruby 2.5 and 2.6 [\#708](https://github.com/countries/countries/pull/708) ([pmor](https://github.com/pmor))
10
+
11
+ ## [4.2.1](https://github.com/countries/countries/releases/tag/v4.2.0) (2022/01/11 12:39 +00:00)
12
+
13
+ - Missing update to cache files on release 4.2.0
14
+ - Update postal code regexes from rake task [\#734 ](https://github.com/countries/countries/pull/734 ) ([cover](https://github.com/cover))
15
+
16
+
17
+ ## [4.2.0](https://github.com/countries/countries/releases/tag/v4.2.0) (2022/01/11 11:04 +00:00)
18
+
19
+ **Deprecations**
20
+
21
+ - `Country#name`, `Country#names` and the finders using these attributes. See README ('Upgrading to 4.2 and 5.x')
22
+ - `latitude_dec` and `longitude_dec` attributes
23
+
24
+ **Merged pull requests:**
25
+
26
+ * Name methods refactor [\#717](https://github.com/countries/countries/pull/717) ([pmor](https://github.com/pmor))
27
+ * Remove non-ISO US subdivisions [\#720](https://github.com/countries/countries/pull/720) ([pmor](https://github.com/pmor))
28
+ * Update MK subdivisions [\#721](https://github.com/countries/countries/pull/721) ([pmor](https://github.com/pmor))
29
+ * Update Kenya subdivision data [\#722](https://github.com/countries/countries/pull/722) ([pmor](https://github.com/pmor))
30
+ * Fix French Southern Territories continent and region data [\#725](https://github.com/countries/countries/pull/725) ([pmor](https://github.com/pmor))
31
+ * Fix SG subdivision data [\#726](https://github.com/countries/countries/pull/726) ([pmor](https://github.com/pmor))
32
+ * Remove FO subdivisions [\#727](https://github.com/countries/countries/pull/727) ([pmor](https://github.com/pmor))
33
+ * JE and IM currencies should be GBP [\#728](https://github.com/countries/countries/pull/728) ([pmor](https://github.com/pmor))
34
+ * Fix US translations in nb and no locales [\#729](https://github.com/countries/countries/pull/729) ([pmor](https://github.com/pmor))
35
+ * Missing alternative names for GB and US [\#724](https://github.com/countries/countries/pull/#724) ([dima4p](https://github.com/dima4p))
36
+ * Deprecate latitude_dec and longitude_dec, delegate to latitude [\#723](https://github.com/countries/countries/pull/#723) ([pmor](https://github.com/pmor)
37
+ * add VAT for Israel and Saudi Arabia [\#730](https://github.com/countries/countries/pull/#723) ([Venca24](https://github.com/Venca24)
38
+ * Remove non-ISO KY subdivisions [\#731](https://github.com/countries/countries/pull/731) ([pmor](https://github.com/pmor))
39
+ * Fix duplicated translations of CZ-10 subdivision [\#733](https://github.com/countries/countries/pull/733) ([pmor](https://github.com/pmor))
40
+
41
+ **Closed issues:**
42
+
43
+ * Update Kenya subdivisions/states [\#318](https://github.com/countries/countries/issues/318)
44
+ * North Macedonia updates (2020-03-02) [\#674](https://github.com/countries/countries/issues/674)
45
+ * Singapore wrong subdivision codes (SG-SG-0x) [\#663](https://github.com/countries/countries/issues/663)
46
+ * Remove Faroe Islands subdivisions [\#606](https://github.com/countries/countries/issues/606)
47
+ * Jersey uses GBP instead of JEP currency [\#492](https://github.com/countries/countries/issues/492)
48
+ * USA in Norwegian translation should be 'USA' instead of 'De forente stater' [\#564](https://github.com/countries/countries/issues/564)
49
+ * Geographic bounds for UK includes all of Europe [\#535](https://github.com/countries/countries/issues/535)
50
+ * Wrong min_longitude for United States of America? [\#698](https://github.com/countries/countries/issues/698)
51
+ * Translations for CZ-10 are defined twice [\#732](https://github.com/countries/countries/issues/732)
52
+
53
+
54
+ ## [4.1.3](https://github.com/countries/countries/releases/tag/v4.1.2) (2022/01/03 12:16 +00:00)
55
+
56
+ **Merged pull requests:**
57
+
58
+ * Fix empty translations in LV subdivisions [\#719](https://github.com/countries/countries/pull/719) ([pmor](https://github.com/pmor))
59
+
60
+ **Closed issues:**
61
+
62
+ * Subdivision translations for some latvian subdivisions nil in countries 4.1.2 [\#718](https://github.com/countries/countries/issues/718)
63
+
64
+ ## [4.1.2](https://github.com/countries/countries/releases/tag/v4.1.2) (2021/12/20 17:06 +00:00)
65
+
66
+ **Merged pull requests:**
67
+
68
+ * Update subdivisions, fix #600 conflicts [\#710](https://github.com/countries/countries/pull/710) ([donnen](https://github.com/donnen), [pmor](https://github.com/pmor))
69
+ * Fix conflicts in #605 and update those countries to the latest subdivision data [\#711](https://github.com/countries/countries/pull/711) ([jjamesjohnson](https://github.com/jjamesjohnson), [pmor](https://github.com/pmor))
70
+ * Update NZ subdivision data and fix Chatham Island entry [\#712](https://github.com/countries/countries/pull/712) ([pmor](https://github.com/pmor))
71
+ * Update translation corrections for Occitan.[\#713](https://github.com/countries/countries/pull/713) ([pmor](https://github.com/pmor))
72
+ * Update i18n_data to 0.15.0 [\#715](https://github.com/countries/countries/pull/715) ([pmor](https://github.com/pmor))
8
73
 
9
74
  ## [4.1.1](https://github.com/countries/countries/releases/tag/v4.1.1) (2021/12/06 13:31 +00:00)
10
75
 
11
76
  **Merged pull requests:**
12
77
 
13
- * Fix ISO3166::Country respond_to_missing? by @biinari in https://github.com/countries/countries/pull/625
14
- * Revert subdivision changes to NO.yaml by @pmor in https://github.com/countries/countries/pull/709
78
+ * Fix ISO3166::Country respond_to_missing? [\#625](https://github.com/countries/countries/pull/625) ([biinari](https://github.com/biinari))
79
+ * Revert subdivision changes to NO.yaml [\#709](https://github.com/countries/countries/pull/709) ([pmor](https://github.com/pmor))
15
80
 
16
81
  ## [4.1.0](https://github.com/countries/countries/releases/tag/v4.1.0) (2021/11/30 09:44 +00:00)
17
82
 
@@ -49,6 +114,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
49
114
 
50
115
  [Full changelog](https://github.com/countries/countries/compare/v3.1.0...v4.0.0)
51
116
 
117
+ **Breaking changes:**
118
+
119
+ - None
120
+
52
121
  **Closed issues:**
53
122
 
54
123
  - update_cldr_subdivison_data Rake task broken due to CLDR repo change [\#633](https://github.com/countries/countries/issues/633)
data/README.markdown CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard. It contains info for the following standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers). I will add any country based data I can get access to. I hope this to be a repository for all country based information.
4
4
 
5
- [![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries) [![Tests](https://github.com/countries/countries/actions/workflows/tests.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/tests.yml) [![Code Climate](https://codeclimate.com/github/hexorx/countries.svg)](https://codeclimate.com/github/hexorx/countries)
5
+ [![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries) [![Tests](https://github.com/countries/countries/actions/workflows/tests.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/tests.yml) [![Code Climate](https://codeclimate.com/github/countries/countries.svg)](https://codeclimate.com/github/countries/countries)
6
6
 
7
7
  ## Installation
8
8
 
@@ -48,26 +48,23 @@ To Use
48
48
  gem 'countries', require: 'countries/global'
49
49
  ```
50
50
 
51
- ## Upgrading to 3.x
51
+ ## Upgrading to 4.2 and 5.x
52
52
 
53
- We dropped currency support via money by default, read these [instructions](README.markdown#Currencies) if you are using currency features.
53
+ In release 4.2 the `#name` attribute was deprecated in favour of `#iso_short_name` and we added the `#iso_long_name` attribute, to make it clear that these attributes use the ISO3166 names, and are not the "common names" most people might expect, eg: The ISO name for "United Kingdom" is "United Kingdom of Great Britain and Northern Ireland", but if you're building a dropdown box to select a country, you're likely expecting to see "United Kingdom" instead.
54
54
 
55
- ## Upgrading Country Helper to > 1.2.0
55
+ "Common names" in English have been available in the translation data, via `#translation('en')`. As of release 4.2, a shortcut method has been added for simplicity, `#common_name`, which delegates to `#translation('en')`.
56
56
 
57
- ```ruby
58
- gem 'countries', require: 'global'
59
- ```
57
+ For additional clarity, the `#names` method, which was an alias to `#unofficial_names` has also been deprecated, together with the finder methods that use `name` or `names` attributes.
60
58
 
61
- has become
62
- ```ruby
63
- gem 'countries', require: 'countries/global'
64
- ```
59
+ The `#name` and `#names` attributes, and corresponding finder methods will be removed in 5.0.
60
+
61
+ For translated country names, we use data from [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes), via the [i18n_data](https://github.com/grosser/i18n_data) gem, and these generally correspond to the expected "common names". These names and the corresponding methods have not been changed.
65
62
 
66
63
  ## Selective Loading of Locales
67
64
 
68
65
  As of 2.0 you can selectively load locales to reduce memory usage in production.
69
66
 
70
- By default we load I18n.available_locales if I18n is present, otherwise only [:en]. This means almost any rails environment will only bring in its supported translations.
67
+ By default we load `I18n.available_locales` if I18n is present, otherwise only `[:en]`. This means almost any Rails environment will only bring in its supported translations.
71
68
 
72
69
  You can add all the locales like this.
73
70
 
@@ -89,15 +86,18 @@ end
89
86
  You can lookup a country or an array of countries using any of the data attributes via the find\_country\_by_*attribute* dynamic methods:
90
87
 
91
88
  ```ruby
92
- c = ISO3166::Country.find_country_by_name('united states')
89
+ c = ISO3166::Country.find_country_by_iso_short_name('united states')
93
90
  h = ISO3166::Country.find_all_by(:translated_names, 'França')
94
91
  list = ISO3166::Country.find_all_countries_by_region('Americas')
95
92
  c = ISO3166::Country.find_country_by_alpha3('can')
96
93
  ```
97
94
 
98
- For a list of available attributes please see ISO3166::DEFAULT_COUNTRY_HASH.
95
+ For a list of available attributes please see `ISO3166::DEFAULT_COUNTRY_HASH`.
99
96
  Note: searches are *case insensitive and ignore accents*.
100
97
 
98
+ _Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods are deprecated and will be removed in 5.0. See [Upgrading to 4.2 and 5.x](#upgrading-to-4-2-and-5-x) above_
99
+
100
+
101
101
  ## Country Info
102
102
 
103
103
  ### Identification Codes
@@ -112,7 +112,9 @@ c.gec # => "US"
112
112
  ### Names & Translations
113
113
 
114
114
  ```ruby
115
- c.name # => "United States"
115
+ c.iso_long_name # => "The United States of America"
116
+ c.iso_short_name # => "United States of America"
117
+ c.common_name # => "United States" (This is a shortcut for c.translations('en'))
116
118
  c.unofficial_names # => ["United States of America", "Vereinigte Staaten von Amerika", "États-Unis", "Estados Unidos"]
117
119
 
118
120
  # Get the names for a country translated to its local languages
@@ -128,6 +130,9 @@ ISO3166::Country.translations # {"DE"=>"Germany",...}
128
130
  ISO3166::Country.translations('DE') # {"DE"=>"Deutschland",...}
129
131
  ISO3166::Country.all_translated # ['Germany', ...]
130
132
  ISO3166::Country.all_translated('DE') # ['Deutschland', ...]
133
+
134
+ # Nationality
135
+ c.nationality # => "American"
131
136
  ```
132
137
 
133
138
  ### Subdivisions & States
@@ -140,15 +145,16 @@ c.states # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
140
145
  ### Location
141
146
 
142
147
  ```ruby
143
- c.latitude # => "38 00 N"
144
- c.longitude # => "97 00 W"
145
- c.latitude_dec # => 39.44325637817383
146
- c.longitude_dec # => -98.95733642578125
148
+ c.latitude # => "37.09024"
149
+ c.longitude # => "-95.712891"
147
150
 
151
+ c.world_region # => "AMER"
148
152
  c.region # => "Americas"
149
153
  c.subregion # => "Northern America"
150
154
  ```
151
155
 
156
+ Please note that `latitude_dec` and `longitude_dec` was be deprecated on release 4.2 and will be deleted in 5.0. These attributes have been redundant for several years, since the `latitude` and `longitude` fields have been switched decimal coordinates.
157
+
152
158
  ### Timezones **(optional)**
153
159
 
154
160
  Add `tzinfo` to your Gemfile and ensure it's required, Countries will not do this for you.
@@ -180,6 +186,8 @@ c.min_longitude # => '45'
180
186
  c.min_latitude # => '22.166667'
181
187
  c.max_longitude # => '58'
182
188
  c.max_latitude # => '26.133333'
189
+
190
+ c.bounds #> {"northeast"=>{"lat"=>22.166667, "lng"=>58}, "southwest"=>{"lat"=>26.133333, "lng"=>45}}
183
191
  ```
184
192
 
185
193
  ### European Union Membership
@@ -204,7 +212,7 @@ c.in_esm? # => false
204
212
  ### Plucking multiple attributes
205
213
 
206
214
  ```ruby
207
- ISO3166::Country.pluck(:alpha2, :name) # => [["AD", "Andorra"], ["AE", "United Arab Emirates"], ...
215
+ ISO3166::Country.pluck(:alpha2, :iso_short_name) # => [["AD", "Andorra"], ["AE", "United Arab Emirates"], ...
208
216
  ```
209
217
 
210
218
  ## Currencies
@@ -221,9 +229,7 @@ Please note that it requires you to add "money" dependency to your gemfile.
221
229
  gem "money", "~> 6.9"
222
230
  ```
223
231
 
224
- **WARNING** if you have a top level class named `Money` you will conflict with this gem. If this is a large issue we will add a feature to turn currency features off.
225
-
226
- Countries now uses the [Money](https://github.com/RubyMoney/money) gem. What this means is you now get back a Money::Currency object that gives you access to all the currency information.
232
+ Countries now uses the [Money](https://github.com/RubyMoney/money) gem. What this means is you now get back a `Money::Currency` object that gives you access to all the currency information.
227
233
 
228
234
  ```ruby
229
235
  c = ISO3166::Country['us']
@@ -249,14 +255,14 @@ Any country registered this way will have its data available for searching etc..
249
255
  ```ruby
250
256
  ISO3166::Data.register(
251
257
  alpha2: 'LOL',
252
- name: 'Happy Country',
258
+ iso_short_name: 'Happy Country',
253
259
  translations: {
254
260
  'en' => 'Happy Country',
255
261
  'de' => 'glückliches Land'
256
262
  }
257
263
  )
258
264
 
259
- ISO3166::Country.new('LOL').name == 'Happy Country'
265
+ ISO3166::Country.new('LOL').iso_short_name == 'Happy Country'
260
266
  ```
261
267
 
262
268
  ## Mongoid
@@ -275,33 +281,33 @@ Searching:
275
281
 
276
282
  ```ruby
277
283
  # By alpha2
278
- british_things = Things.where(country: 'GB')
279
- british_things.first.country.name # => "United Kingdom"
284
+ spanish_things = Things.where(country: 'ES')
285
+ spanish_things.first.country.iso_short_name # => "Spain"
280
286
 
281
287
  # By object
282
- british_things = Things.where(country: Country.find_by_name('United Kingdom')[1])
283
- british_things.first.country.name # => "United Kingdom"
288
+ spanish_things = Things.where(country: Country.find_by_iso_short_name('Spain')[1])
289
+ spanish_things.first.country.iso_short_name # => "Spain"
284
290
  ```
285
291
 
286
292
  Saving:
287
293
 
288
294
  ```ruby
289
295
  # By alpha2
290
- british_thing = Thing.new(country: 'GB')
291
- british_thing.save!
292
- british_thing.country.name # => "United Kingdom"
296
+ spanish_things = Thing.new(country: 'ES')
297
+ spanish_things.save!
298
+ spanish_things.country.iso_short_name # => "Spain"
293
299
 
294
300
  # By object
295
- british_thing = Thing.new(country: Country.find_by_name('United Kingdom')[1])
296
- british_thing.save!
297
- british_thing.country.name # => "United Kingdom"
301
+ spanish_things = Thing.new(country: Country.find_by_iso_short_name('Spain')[1])
302
+ spanish_things.save!
303
+ spanish_things.country.iso_short_name # => "Spain"
298
304
  ```
299
305
 
300
306
  Note that the database stores only the alpha2 code and rebuilds the object when queried. To return the country name by default you can override the reader method in your model:
301
307
 
302
308
  ```ruby
303
309
  def country
304
- super.name
310
+ super.iso_short_name
305
311
  end
306
312
  ```
307
313
 
@@ -318,7 +324,7 @@ c.emoji_flag # => "🇲🇾"
318
324
 
319
325
  Any additions should be directed upstream to [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes)
320
326
 
321
- New Bugs can be filed upstream here https://salsa.debian.org/iso-codes-team/iso-codes/issues
327
+ Localized country name data is sourced from https://github.com/grosser/i18n_data (which is based on https://salsa.debian.org/iso-codes-team/iso-codes/). Issues regarding localized country names can be reported to https://github.com/grosser/i18n_data/issues or https://salsa.debian.org/iso-codes-team/iso-codes/issues
322
328
  If you need to correct an upstream translation please add it to the lib/countries/data/translations_corrections.yaml
323
329
 
324
330
  ```
data/Rakefile CHANGED
@@ -19,36 +19,6 @@ end
19
19
 
20
20
  task default: [:spec]
21
21
 
22
- task :update_yaml_structure do
23
-
24
- d = Dir['lib/countries/data/subdivisions/*.yaml']
25
- d.each do |file|
26
- puts "checking : #{file}"
27
- data = YAML.load_file(file)
28
-
29
- data = data.each_with_object({}) do |(k, subd), a|
30
- a[k] ||= {}
31
- a[k]['unofficial_names'] = subd.delete('names')
32
- a[k]['translations'] = { 'en' => subd['name'] }
33
- a[k]['geo'] = {
34
- 'latitude' => subd.delete('latitude'),
35
- 'longitude' => subd.delete('longitude'),
36
- 'min_latitude' => subd.delete('min_latitude'),
37
- 'min_longitude' => subd.delete('min_longitude'),
38
- 'max_latitude' => subd.delete('max_latitude'),
39
- 'max_longitude' => subd.delete('max_longitude')
40
- }
41
-
42
- a[k] = a[k].merge(subd)
43
- end
44
- File.open(file, 'w') { |f| f.write data.to_yaml }
45
- begin
46
- rescue
47
- puts "failed to read #{file}: #{$ERROR_INFO}"
48
- end
49
- end
50
- end
51
-
52
22
  desc 'Update CLDR subdivison data set'
53
23
  task :update_cldr_subdivison_data do
54
24
  require_relative './lib/countries/sources'
@@ -61,7 +31,7 @@ task :update_cache do
61
31
  require 'yaml'
62
32
  require 'i18n_data'
63
33
 
64
- codes = Dir['lib/countries/data/countries/*.yaml'].map { |x| File.basename(x, File.extname(x)) }.uniq
34
+ codes = Dir['lib/countries/data/countries/*.yaml'].map { |x| File.basename(x, File.extname(x)) }.uniq.sort
65
35
  data = {}
66
36
 
67
37
  corrections = YAML.load_file(File.join(File.dirname(__FILE__), 'lib', 'countries', 'data', 'translation_corrections.yaml')) || {}
@@ -91,3 +61,25 @@ task :update_cache do
91
61
 
92
62
  File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'countries.json'), 'wb') { |f| f.write(data.to_json) }
93
63
  end
64
+
65
+ # Temporary task to update YAML file structure with iso_long_name and iso_short_name attributes
66
+ task :update_iso_names do
67
+ require 'csv'
68
+ isodata = CSV.read 'isonames.csv', headers: true
69
+
70
+ d = Dir['lib/countries/data/countries/*.yaml']
71
+ d.each do |file|
72
+ puts "checking : #{file}"
73
+ data = YAML.load_file(file)
74
+
75
+ country_code = data.keys.first
76
+ iso_country = isodata.find {|c| c['cc'] == country_code}
77
+
78
+ data.values.first['iso_long_name'] = iso_country['iso_full_name']
79
+ data.values.first['iso_short_name'] = data.values.first.delete('name')
80
+
81
+ data[country_code.upcase] = data[country_code.upcase].sort.to_h
82
+
83
+ File.open(file, 'w') { |f| f.write data.to_yaml }
84
+ end
85
+ end
data/countries.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.required_ruby_version = '>= 2.5'
23
23
 
24
- gem.add_dependency('i18n_data', '~> 0.13.1')
24
+ gem.add_dependency('i18n_data', '~> 0.15.0')
25
25
  gem.add_dependency('sixarm_ruby_unaccent', '~> 1.1')
26
26
  gem.add_development_dependency('rspec', '>= 3')
27
27
  gem.add_development_dependency('activesupport', '>= 3')