countries 4.0.0 → 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 (595) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +5 -3
  3. data/CHANGELOG.md +108 -2
  4. data/README.markdown +61 -42
  5. data/Rakefile +23 -31
  6. data/countries.gemspec +3 -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/country/class_methods.rb +28 -8
  114. data/lib/countries/country.rb +42 -2
  115. data/lib/countries/data/countries/AD.yaml +28 -29
  116. data/lib/countries/data/countries/AE.yaml +32 -33
  117. data/lib/countries/data/countries/AF.yaml +32 -33
  118. data/lib/countries/data/countries/AG.yaml +28 -29
  119. data/lib/countries/data/countries/AI.yaml +27 -28
  120. data/lib/countries/data/countries/AL.yaml +28 -29
  121. data/lib/countries/data/countries/AM.yaml +30 -31
  122. data/lib/countries/data/countries/AO.yaml +25 -26
  123. data/lib/countries/data/countries/AQ.yaml +24 -25
  124. data/lib/countries/data/countries/AR.yaml +30 -31
  125. data/lib/countries/data/countries/AS.yaml +31 -32
  126. data/lib/countries/data/countries/AT.yaml +36 -37
  127. data/lib/countries/data/countries/AU.yaml +33 -34
  128. data/lib/countries/data/countries/AW.yaml +25 -26
  129. data/lib/countries/data/countries/AX.yaml +27 -28
  130. data/lib/countries/data/countries/AZ.yaml +30 -31
  131. data/lib/countries/data/countries/BA.yaml +32 -33
  132. data/lib/countries/data/countries/BB.yaml +28 -29
  133. data/lib/countries/data/countries/BD.yaml +27 -28
  134. data/lib/countries/data/countries/BE.yaml +41 -42
  135. data/lib/countries/data/countries/BF.yaml +27 -28
  136. data/lib/countries/data/countries/BG.yaml +36 -37
  137. data/lib/countries/data/countries/BH.yaml +28 -29
  138. data/lib/countries/data/countries/BI.yaml +27 -28
  139. data/lib/countries/data/countries/BJ.yaml +26 -27
  140. data/lib/countries/data/countries/BL.yaml +25 -26
  141. data/lib/countries/data/countries/BM.yaml +29 -30
  142. data/lib/countries/data/countries/BN.yaml +26 -27
  143. data/lib/countries/data/countries/BO.yaml +31 -32
  144. data/lib/countries/data/countries/BQ.yaml +28 -29
  145. data/lib/countries/data/countries/BR.yaml +35 -36
  146. data/lib/countries/data/countries/BS.yaml +27 -28
  147. data/lib/countries/data/countries/BT.yaml +28 -29
  148. data/lib/countries/data/countries/BV.yaml +23 -24
  149. data/lib/countries/data/countries/BW.yaml +27 -28
  150. data/lib/countries/data/countries/BY.yaml +30 -31
  151. data/lib/countries/data/countries/BZ.yaml +28 -29
  152. data/lib/countries/data/countries/CA.yaml +30 -31
  153. data/lib/countries/data/countries/CC.yaml +28 -29
  154. data/lib/countries/data/countries/CD.yaml +35 -36
  155. data/lib/countries/data/countries/CF.yaml +29 -30
  156. data/lib/countries/data/countries/CG.yaml +29 -30
  157. data/lib/countries/data/countries/CH.yaml +40 -41
  158. data/lib/countries/data/countries/CI.yaml +27 -28
  159. data/lib/countries/data/countries/CK.yaml +27 -28
  160. data/lib/countries/data/countries/CL.yaml +32 -33
  161. data/lib/countries/data/countries/CM.yaml +29 -30
  162. data/lib/countries/data/countries/CN.yaml +28 -29
  163. data/lib/countries/data/countries/CO.yaml +28 -29
  164. data/lib/countries/data/countries/CR.yaml +26 -27
  165. data/lib/countries/data/countries/CU.yaml +27 -28
  166. data/lib/countries/data/countries/CV.yaml +28 -29
  167. data/lib/countries/data/countries/CW.yaml +25 -26
  168. data/lib/countries/data/countries/CX.yaml +30 -31
  169. data/lib/countries/data/countries/CY.yaml +40 -41
  170. data/lib/countries/data/countries/CZ.yaml +38 -39
  171. data/lib/countries/data/countries/DE.yaml +36 -37
  172. data/lib/countries/data/countries/DJ.yaml +29 -30
  173. data/lib/countries/data/countries/DK.yaml +35 -36
  174. data/lib/countries/data/countries/DM.yaml +26 -27
  175. data/lib/countries/data/countries/DO.yaml +28 -29
  176. data/lib/countries/data/countries/DZ.yaml +28 -29
  177. data/lib/countries/data/countries/EC.yaml +28 -29
  178. data/lib/countries/data/countries/EE.yaml +35 -36
  179. data/lib/countries/data/countries/EG.yaml +28 -29
  180. data/lib/countries/data/countries/EH.yaml +30 -31
  181. data/lib/countries/data/countries/ER.yaml +31 -32
  182. data/lib/countries/data/countries/ES.yaml +36 -37
  183. data/lib/countries/data/countries/ET.yaml +28 -29
  184. data/lib/countries/data/countries/FI.yaml +38 -39
  185. data/lib/countries/data/countries/FJ.yaml +33 -34
  186. data/lib/countries/data/countries/FK.yaml +29 -30
  187. data/lib/countries/data/countries/FM.yaml +28 -29
  188. data/lib/countries/data/countries/FO.yaml +28 -29
  189. data/lib/countries/data/countries/FR.yaml +37 -38
  190. data/lib/countries/data/countries/GA.yaml +27 -28
  191. data/lib/countries/data/countries/GB.yaml +39 -38
  192. data/lib/countries/data/countries/GD.yaml +26 -27
  193. data/lib/countries/data/countries/GE.yaml +28 -29
  194. data/lib/countries/data/countries/GF.yaml +29 -30
  195. data/lib/countries/data/countries/GG.yaml +30 -31
  196. data/lib/countries/data/countries/GH.yaml +27 -28
  197. data/lib/countries/data/countries/GI.yaml +26 -27
  198. data/lib/countries/data/countries/GL.yaml +29 -30
  199. data/lib/countries/data/countries/GM.yaml +25 -26
  200. data/lib/countries/data/countries/GN.yaml +30 -31
  201. data/lib/countries/data/countries/GP.yaml +27 -28
  202. data/lib/countries/data/countries/GQ.yaml +29 -30
  203. data/lib/countries/data/countries/GR.yaml +37 -38
  204. data/lib/countries/data/countries/GS.yaml +27 -28
  205. data/lib/countries/data/countries/GT.yaml +26 -27
  206. data/lib/countries/data/countries/GU.yaml +31 -32
  207. data/lib/countries/data/countries/GW.yaml +28 -29
  208. data/lib/countries/data/countries/GY.yaml +26 -27
  209. data/lib/countries/data/countries/HK.yaml +28 -29
  210. data/lib/countries/data/countries/HM.yaml +27 -28
  211. data/lib/countries/data/countries/HN.yaml +27 -28
  212. data/lib/countries/data/countries/HR.yaml +37 -38
  213. data/lib/countries/data/countries/HT.yaml +29 -30
  214. data/lib/countries/data/countries/HU.yaml +37 -38
  215. data/lib/countries/data/countries/ID.yaml +28 -29
  216. data/lib/countries/data/countries/IE.yaml +39 -40
  217. data/lib/countries/data/countries/IL.yaml +35 -29
  218. data/lib/countries/data/countries/IM.yaml +29 -30
  219. data/lib/countries/data/countries/IN.yaml +30 -31
  220. data/lib/countries/data/countries/IO.yaml +26 -27
  221. data/lib/countries/data/countries/IQ.yaml +28 -29
  222. data/lib/countries/data/countries/IR.yaml +28 -29
  223. data/lib/countries/data/countries/IS.yaml +35 -36
  224. data/lib/countries/data/countries/IT.yaml +36 -37
  225. data/lib/countries/data/countries/JE.yaml +26 -27
  226. data/lib/countries/data/countries/JM.yaml +28 -29
  227. data/lib/countries/data/countries/JO.yaml +28 -29
  228. data/lib/countries/data/countries/JP.yaml +28 -29
  229. data/lib/countries/data/countries/KE.yaml +29 -30
  230. data/lib/countries/data/countries/KG.yaml +30 -31
  231. data/lib/countries/data/countries/KH.yaml +28 -29
  232. data/lib/countries/data/countries/KI.yaml +25 -26
  233. data/lib/countries/data/countries/KM.yaml +29 -30
  234. data/lib/countries/data/countries/KN.yaml +29 -29
  235. data/lib/countries/data/countries/KP.yaml +27 -28
  236. data/lib/countries/data/countries/KR.yaml +28 -29
  237. data/lib/countries/data/countries/KW.yaml +28 -29
  238. data/lib/countries/data/countries/KY.yaml +29 -30
  239. data/lib/countries/data/countries/KZ.yaml +30 -31
  240. data/lib/countries/data/countries/LA.yaml +27 -28
  241. data/lib/countries/data/countries/LB.yaml +30 -31
  242. data/lib/countries/data/countries/LC.yaml +28 -29
  243. data/lib/countries/data/countries/LI.yaml +27 -28
  244. data/lib/countries/data/countries/LK.yaml +28 -29
  245. data/lib/countries/data/countries/LR.yaml +28 -29
  246. data/lib/countries/data/countries/LS.yaml +28 -29
  247. data/lib/countries/data/countries/LT.yaml +37 -38
  248. data/lib/countries/data/countries/LU.yaml +39 -40
  249. data/lib/countries/data/countries/LV.yaml +36 -37
  250. data/lib/countries/data/countries/LY.yaml +27 -28
  251. data/lib/countries/data/countries/MA.yaml +28 -29
  252. data/lib/countries/data/countries/MC.yaml +28 -29
  253. data/lib/countries/data/countries/MD.yaml +28 -29
  254. data/lib/countries/data/countries/ME.yaml +33 -34
  255. data/lib/countries/data/countries/MF.yaml +29 -30
  256. data/lib/countries/data/countries/MG.yaml +30 -31
  257. data/lib/countries/data/countries/MH.yaml +30 -31
  258. data/lib/countries/data/countries/MK.yaml +28 -29
  259. data/lib/countries/data/countries/ML.yaml +25 -26
  260. data/lib/countries/data/countries/MM.yaml +27 -28
  261. data/lib/countries/data/countries/MN.yaml +28 -29
  262. data/lib/countries/data/countries/MO.yaml +28 -29
  263. data/lib/countries/data/countries/MP.yaml +31 -32
  264. data/lib/countries/data/countries/MQ.yaml +27 -28
  265. data/lib/countries/data/countries/MR.yaml +29 -30
  266. data/lib/countries/data/countries/MS.yaml +26 -27
  267. data/lib/countries/data/countries/MT.yaml +36 -37
  268. data/lib/countries/data/countries/MU.yaml +28 -29
  269. data/lib/countries/data/countries/MV.yaml +28 -29
  270. data/lib/countries/data/countries/MW.yaml +27 -28
  271. data/lib/countries/data/countries/MX.yaml +33 -34
  272. data/lib/countries/data/countries/MY.yaml +30 -31
  273. data/lib/countries/data/countries/MZ.yaml +28 -29
  274. data/lib/countries/data/countries/NA.yaml +30 -31
  275. data/lib/countries/data/countries/NC.yaml +29 -30
  276. data/lib/countries/data/countries/NE.yaml +27 -28
  277. data/lib/countries/data/countries/NF.yaml +29 -30
  278. data/lib/countries/data/countries/NG.yaml +33 -34
  279. data/lib/countries/data/countries/NI.yaml +26 -27
  280. data/lib/countries/data/countries/NL.yaml +36 -37
  281. data/lib/countries/data/countries/NO.yaml +36 -37
  282. data/lib/countries/data/countries/NP.yaml +32 -33
  283. data/lib/countries/data/countries/NR.yaml +27 -28
  284. data/lib/countries/data/countries/NU.yaml +25 -26
  285. data/lib/countries/data/countries/NZ.yaml +34 -35
  286. data/lib/countries/data/countries/OM.yaml +28 -29
  287. data/lib/countries/data/countries/PA.yaml +26 -27
  288. data/lib/countries/data/countries/PE.yaml +28 -29
  289. data/lib/countries/data/countries/PF.yaml +29 -30
  290. data/lib/countries/data/countries/PG.yaml +28 -29
  291. data/lib/countries/data/countries/PH.yaml +35 -36
  292. data/lib/countries/data/countries/PK.yaml +30 -31
  293. data/lib/countries/data/countries/PL.yaml +36 -37
  294. data/lib/countries/data/countries/PM.yaml +29 -30
  295. data/lib/countries/data/countries/PN.yaml +27 -28
  296. data/lib/countries/data/countries/PR.yaml +28 -29
  297. data/lib/countries/data/countries/PS.yaml +31 -32
  298. data/lib/countries/data/countries/PT.yaml +33 -34
  299. data/lib/countries/data/countries/PW.yaml +26 -27
  300. data/lib/countries/data/countries/PY.yaml +28 -29
  301. data/lib/countries/data/countries/QA.yaml +27 -28
  302. data/lib/countries/data/countries/RE.yaml +28 -29
  303. data/lib/countries/data/countries/RO.yaml +37 -38
  304. data/lib/countries/data/countries/RS.yaml +28 -29
  305. data/lib/countries/data/countries/RU.yaml +28 -29
  306. data/lib/countries/data/countries/RW.yaml +31 -32
  307. data/lib/countries/data/countries/SA.yaml +33 -29
  308. data/lib/countries/data/countries/SB.yaml +27 -28
  309. data/lib/countries/data/countries/SC.yaml +28 -29
  310. data/lib/countries/data/countries/SD.yaml +30 -31
  311. data/lib/countries/data/countries/SE.yaml +37 -38
  312. data/lib/countries/data/countries/SG.yaml +32 -33
  313. data/lib/countries/data/countries/SH.yaml +29 -30
  314. data/lib/countries/data/countries/SI.yaml +36 -37
  315. data/lib/countries/data/countries/SJ.yaml +29 -30
  316. data/lib/countries/data/countries/SK.yaml +36 -37
  317. data/lib/countries/data/countries/SL.yaml +25 -26
  318. data/lib/countries/data/countries/SM.yaml +28 -29
  319. data/lib/countries/data/countries/SN.yaml +27 -28
  320. data/lib/countries/data/countries/SO.yaml +30 -31
  321. data/lib/countries/data/countries/SR.yaml +26 -27
  322. data/lib/countries/data/countries/SS.yaml +29 -30
  323. data/lib/countries/data/countries/ST.yaml +27 -28
  324. data/lib/countries/data/countries/SV.yaml +27 -28
  325. data/lib/countries/data/countries/SX.yaml +28 -29
  326. data/lib/countries/data/countries/SY.yaml +27 -28
  327. data/lib/countries/data/countries/SZ.yaml +30 -31
  328. data/lib/countries/data/countries/TC.yaml +30 -31
  329. data/lib/countries/data/countries/TD.yaml +29 -30
  330. data/lib/countries/data/countries/TF.yaml +28 -29
  331. data/lib/countries/data/countries/TG.yaml +25 -26
  332. data/lib/countries/data/countries/TH.yaml +34 -35
  333. data/lib/countries/data/countries/TJ.yaml +30 -31
  334. data/lib/countries/data/countries/TK.yaml +27 -28
  335. data/lib/countries/data/countries/TL.yaml +27 -28
  336. data/lib/countries/data/countries/TM.yaml +30 -31
  337. data/lib/countries/data/countries/TN.yaml +30 -31
  338. data/lib/countries/data/countries/TO.yaml +29 -30
  339. data/lib/countries/data/countries/TR.yaml +28 -29
  340. data/lib/countries/data/countries/TT.yaml +28 -29
  341. data/lib/countries/data/countries/TV.yaml +25 -26
  342. data/lib/countries/data/countries/TW.yaml +28 -29
  343. data/lib/countries/data/countries/TZ.yaml +30 -31
  344. data/lib/countries/data/countries/UA.yaml +34 -35
  345. data/lib/countries/data/countries/UG.yaml +28 -29
  346. data/lib/countries/data/countries/UM.yaml +29 -30
  347. data/lib/countries/data/countries/US.yaml +29 -29
  348. data/lib/countries/data/countries/UY.yaml +27 -28
  349. data/lib/countries/data/countries/UZ.yaml +30 -31
  350. data/lib/countries/data/countries/VA.yaml +31 -32
  351. data/lib/countries/data/countries/VC.yaml +29 -30
  352. data/lib/countries/data/countries/VE.yaml +26 -27
  353. data/lib/countries/data/countries/VG.yaml +29 -30
  354. data/lib/countries/data/countries/VI.yaml +28 -29
  355. data/lib/countries/data/countries/VN.yaml +28 -29
  356. data/lib/countries/data/countries/VU.yaml +31 -32
  357. data/lib/countries/data/countries/WF.yaml +29 -30
  358. data/lib/countries/data/countries/WS.yaml +28 -29
  359. data/lib/countries/data/countries/YE.yaml +27 -28
  360. data/lib/countries/data/countries/YT.yaml +26 -27
  361. data/lib/countries/data/countries/ZA.yaml +39 -40
  362. data/lib/countries/data/countries/ZM.yaml +28 -29
  363. data/lib/countries/data/countries/ZW.yaml +31 -32
  364. data/lib/countries/data/subdivisions/AE.yaml +33 -21
  365. data/lib/countries/data/subdivisions/AF.yaml +162 -128
  366. data/lib/countries/data/subdivisions/AG.yaml +44 -35
  367. data/lib/countries/data/subdivisions/AL.yaml +252 -240
  368. data/lib/countries/data/subdivisions/AM.yaml +57 -45
  369. data/lib/countries/data/subdivisions/AO.yaml +72 -54
  370. data/lib/countries/data/subdivisions/AR.yaml +98 -72
  371. data/lib/countries/data/subdivisions/AS.yaml +40 -40
  372. data/lib/countries/data/subdivisions/AT.yaml +38 -27
  373. data/lib/countries/data/subdivisions/AU.yaml +33 -24
  374. data/lib/countries/data/subdivisions/AW.yaml +6 -6
  375. data/lib/countries/data/subdivisions/AX.yaml +27 -27
  376. data/lib/countries/data/subdivisions/AZ.yaml +367 -290
  377. data/lib/countries/data/subdivisions/BA.yaml +130 -127
  378. data/lib/countries/data/subdivisions/BB.yaml +47 -33
  379. data/lib/countries/data/subdivisions/BD.yaml +350 -338
  380. data/lib/countries/data/subdivisions/BE.yaml +69 -55
  381. data/lib/countries/data/subdivisions/BF.yaml +340 -282
  382. data/lib/countries/data/subdivisions/BG.yaml +112 -84
  383. data/lib/countries/data/subdivisions/BH.yaml +23 -19
  384. data/lib/countries/data/subdivisions/BI.yaml +98 -81
  385. data/lib/countries/data/subdivisions/BJ.yaml +60 -36
  386. data/lib/countries/data/subdivisions/BL.yaml +5 -5
  387. data/lib/countries/data/subdivisions/BN.yaml +20 -16
  388. data/lib/countries/data/subdivisions/BO.yaml +36 -27
  389. data/lib/countries/data/subdivisions/BQ.yaml +13 -9
  390. data/lib/countries/data/subdivisions/BR.yaml +138 -85
  391. data/lib/countries/data/subdivisions/BS.yaml +340 -309
  392. data/lib/countries/data/subdivisions/BT.yaml +80 -60
  393. data/lib/countries/data/subdivisions/BW.yaml +122 -104
  394. data/lib/countries/data/subdivisions/BY.yaml +58 -50
  395. data/lib/countries/data/subdivisions/BZ.yaml +24 -18
  396. data/lib/countries/data/subdivisions/CA.yaml +54 -39
  397. data/lib/countries/data/subdivisions/CD.yaml +269 -242
  398. data/lib/countries/data/subdivisions/CF.yaml +70 -51
  399. data/lib/countries/data/subdivisions/CG.yaml +57 -44
  400. data/lib/countries/data/subdivisions/CH.yaml +104 -78
  401. data/lib/countries/data/subdivisions/CI.yaml +247 -235
  402. data/lib/countries/data/subdivisions/CL.yaml +64 -48
  403. data/lib/countries/data/subdivisions/CM.yaml +44 -30
  404. data/lib/countries/data/subdivisions/CN.yaml +691 -12
  405. data/lib/countries/data/subdivisions/CO.yaml +169 -103
  406. data/lib/countries/data/subdivisions/CR.yaml +28 -21
  407. data/lib/countries/data/subdivisions/CU.yaml +63 -48
  408. data/lib/countries/data/subdivisions/CV.yaml +173 -150
  409. data/lib/countries/data/subdivisions/CW.yaml +6 -6
  410. data/lib/countries/data/subdivisions/CY.yaml +24 -18
  411. data/lib/countries/data/subdivisions/CZ.yaml +1046 -3706
  412. data/lib/countries/data/subdivisions/DE.yaml +98 -64
  413. data/lib/countries/data/subdivisions/DJ.yaml +26 -18
  414. data/lib/countries/data/subdivisions/DK.yaml +79 -296
  415. data/lib/countries/data/subdivisions/DM.yaml +40 -30
  416. data/lib/countries/data/subdivisions/DO.yaml +244 -214
  417. data/lib/countries/data/subdivisions/DZ.yaml +196 -148
  418. data/lib/countries/data/subdivisions/EC.yaml +100 -76
  419. data/lib/countries/data/subdivisions/EE.yaml +380 -87
  420. data/lib/countries/data/subdivisions/EG.yaml +108 -81
  421. data/lib/countries/data/subdivisions/ER.yaml +24 -18
  422. data/lib/countries/data/subdivisions/ES.yaml +415 -344
  423. data/lib/countries/data/subdivisions/ET.yaml +47 -33
  424. data/lib/countries/data/subdivisions/FI.yaml +128 -506
  425. data/lib/countries/data/subdivisions/FJ.yaml +189 -169
  426. data/lib/countries/data/subdivisions/FM.yaml +19 -16
  427. data/lib/countries/data/subdivisions/FR.yaml +1106 -1368
  428. data/lib/countries/data/subdivisions/GA.yaml +36 -27
  429. data/lib/countries/data/subdivisions/GB.yaml +1244 -1024
  430. data/lib/countries/data/subdivisions/GD.yaml +28 -21
  431. data/lib/countries/data/subdivisions/GE.yaml +50 -36
  432. data/lib/countries/data/subdivisions/GF.yaml +5 -5
  433. data/lib/countries/data/subdivisions/GH.yaml +87 -66
  434. data/lib/countries/data/subdivisions/GL.yaml +62 -56
  435. data/lib/countries/data/subdivisions/GM.yaml +26 -18
  436. data/lib/countries/data/subdivisions/GN.yaml +226 -183
  437. data/lib/countries/data/subdivisions/GP.yaml +5 -5
  438. data/lib/countries/data/subdivisions/GQ.yaml +42 -31
  439. data/lib/countries/data/subdivisions/GR.yaml +190 -1048
  440. data/lib/countries/data/subdivisions/GT.yaml +92 -70
  441. data/lib/countries/data/subdivisions/GU.yaml +139 -139
  442. data/lib/countries/data/subdivisions/GW.yaml +74 -64
  443. data/lib/countries/data/subdivisions/GY.yaml +40 -30
  444. data/lib/countries/data/subdivisions/HK.yaml +131 -131
  445. data/lib/countries/data/subdivisions/HN.yaml +71 -54
  446. data/lib/countries/data/subdivisions/HR.yaml +85 -63
  447. data/lib/countries/data/subdivisions/HT.yaml +48 -38
  448. data/lib/countries/data/subdivisions/HU.yaml +232 -191
  449. data/lib/countries/data/subdivisions/ID.yaml +296 -213
  450. data/lib/countries/data/subdivisions/IE.yaml +560 -529
  451. data/lib/countries/data/subdivisions/IL.yaml +24 -18
  452. data/lib/countries/data/subdivisions/IN.yaml +207 -135
  453. data/lib/countries/data/subdivisions/IQ.yaml +83 -65
  454. data/lib/countries/data/subdivisions/IR.yaml +143 -109
  455. data/lib/countries/data/subdivisions/IS.yaml +255 -31
  456. data/lib/countries/data/subdivisions/IT.yaml +2042 -2494
  457. data/lib/countries/data/subdivisions/JM.yaml +56 -42
  458. data/lib/countries/data/subdivisions/JO.yaml +84 -72
  459. data/lib/countries/data/subdivisions/JP.yaml +194 -145
  460. data/lib/countries/data/subdivisions/KE.yaml +786 -852
  461. data/lib/countries/data/subdivisions/KG.yaml +45 -35
  462. data/lib/countries/data/subdivisions/KH.yaml +130 -105
  463. data/lib/countries/data/subdivisions/KI.yaml +16 -13
  464. data/lib/countries/data/subdivisions/KM.yaml +12 -9
  465. data/lib/countries/data/subdivisions/KN.yaml +80 -64
  466. data/lib/countries/data/subdivisions/KP.yaml +201 -187
  467. data/lib/countries/data/subdivisions/KR.yaml +106 -83
  468. data/lib/countries/data/subdivisions/KW.yaml +23 -18
  469. data/lib/countries/data/subdivisions/KZ.yaml +74 -56
  470. data/lib/countries/data/subdivisions/LA.yaml +87 -71
  471. data/lib/countries/data/subdivisions/LB.yaml +65 -60
  472. data/lib/countries/data/subdivisions/LC.yaml +119 -110
  473. data/lib/countries/data/subdivisions/LI.yaml +85 -73
  474. data/lib/countries/data/subdivisions/LK.yaml +195 -174
  475. data/lib/countries/data/subdivisions/LR.yaml +82 -67
  476. data/lib/countries/data/subdivisions/LS.yaml +40 -30
  477. data/lib/countries/data/subdivisions/LT.yaml +771 -750
  478. data/lib/countries/data/subdivisions/LU.yaml +258 -295
  479. data/lib/countries/data/subdivisions/LV.yaml +492 -5363
  480. data/lib/countries/data/subdivisions/LY.yaml +98 -78
  481. data/lib/countries/data/subdivisions/MA.yaml +554 -520
  482. data/lib/countries/data/subdivisions/MC.yaml +189 -187
  483. data/lib/countries/data/subdivisions/MD.yaml +395 -356
  484. data/lib/countries/data/subdivisions/ME.yaml +108 -90
  485. data/lib/countries/data/subdivisions/MF.yaml +6 -6
  486. data/lib/countries/data/subdivisions/MG.yaml +24 -18
  487. data/lib/countries/data/subdivisions/MH.yaml +128 -121
  488. data/lib/countries/data/subdivisions/MK.yaml +3740 -5989
  489. data/lib/countries/data/subdivisions/ML.yaml +49 -38
  490. data/lib/countries/data/subdivisions/MM.yaml +80 -53
  491. data/lib/countries/data/subdivisions/MN.yaml +89 -66
  492. data/lib/countries/data/subdivisions/MO.yaml +6 -6
  493. data/lib/countries/data/subdivisions/MP.yaml +33 -33
  494. data/lib/countries/data/subdivisions/MQ.yaml +5 -5
  495. data/lib/countries/data/subdivisions/MR.yaml +84 -72
  496. data/lib/countries/data/subdivisions/MT.yaml +280 -212
  497. data/lib/countries/data/subdivisions/MU.yaml +74 -55
  498. data/lib/countries/data/subdivisions/MV.yaml +171 -151
  499. data/lib/countries/data/subdivisions/MW.yaml +156 -125
  500. data/lib/countries/data/subdivisions/MX.yaml +139 -105
  501. data/lib/countries/data/subdivisions/MY.yaml +66 -48
  502. data/lib/countries/data/subdivisions/MZ.yaml +46 -33
  503. data/lib/countries/data/subdivisions/NA.yaml +54 -42
  504. data/lib/countries/data/subdivisions/NC.yaml +26 -26
  505. data/lib/countries/data/subdivisions/NE.yaml +41 -24
  506. data/lib/countries/data/subdivisions/NG.yaml +185 -111
  507. data/lib/countries/data/subdivisions/NI.yaml +68 -51
  508. data/lib/countries/data/subdivisions/NL.yaml +118 -102
  509. data/lib/countries/data/subdivisions/NO.yaml +627 -1584
  510. data/lib/countries/data/subdivisions/NP.yaml +157 -145
  511. data/lib/countries/data/subdivisions/NR.yaml +56 -42
  512. data/lib/countries/data/subdivisions/NZ.yaml +130 -158
  513. data/lib/countries/data/subdivisions/OM.yaml +104 -93
  514. data/lib/countries/data/subdivisions/PA.yaml +74 -61
  515. data/lib/countries/data/subdivisions/PE.yaml +108 -82
  516. data/lib/countries/data/subdivisions/PF.yaml +40 -40
  517. data/lib/countries/data/subdivisions/PG.yaml +113 -93
  518. data/lib/countries/data/subdivisions/PH.yaml +525 -432
  519. data/lib/countries/data/subdivisions/PK.yaml +55 -46
  520. data/lib/countries/data/subdivisions/PL.yaml +212 -1179
  521. data/lib/countries/data/subdivisions/PM.yaml +19 -19
  522. data/lib/countries/data/subdivisions/PR.yaml +551 -551
  523. data/lib/countries/data/subdivisions/PS.yaml +184 -176
  524. data/lib/countries/data/subdivisions/PT.yaml +81 -60
  525. data/lib/countries/data/subdivisions/PW.yaml +72 -52
  526. data/lib/countries/data/subdivisions/PY.yaml +72 -54
  527. data/lib/countries/data/subdivisions/QA.yaml +62 -53
  528. data/lib/countries/data/subdivisions/RE.yaml +5 -5
  529. data/lib/countries/data/subdivisions/RO.yaml +169 -126
  530. data/lib/countries/data/subdivisions/RS.yaml +158 -130
  531. data/lib/countries/data/subdivisions/RU.yaml +357 -270
  532. data/lib/countries/data/subdivisions/RW.yaml +22 -15
  533. data/lib/countries/data/subdivisions/SA.yaml +52 -39
  534. data/lib/countries/data/subdivisions/SB.yaml +40 -30
  535. data/lib/countries/data/subdivisions/SC.yaml +120 -91
  536. data/lib/countries/data/subdivisions/SD.yaml +98 -81
  537. data/lib/countries/data/subdivisions/SE.yaml +84 -63
  538. data/lib/countries/data/subdivisions/SG.yaml +57 -127
  539. data/lib/countries/data/subdivisions/SH.yaml +23 -20
  540. data/lib/countries/data/subdivisions/SI.yaml +987 -811
  541. data/lib/countries/data/subdivisions/SK.yaml +32 -24
  542. data/lib/countries/data/subdivisions/SL.yaml +21 -17
  543. data/lib/countries/data/subdivisions/SM.yaml +37 -27
  544. data/lib/countries/data/subdivisions/SN.yaml +80 -66
  545. data/lib/countries/data/subdivisions/SO.yaml +69 -54
  546. data/lib/countries/data/subdivisions/SR.yaml +40 -30
  547. data/lib/countries/data/subdivisions/SS.yaml +120 -110
  548. data/lib/countries/data/subdivisions/ST.yaml +27 -6
  549. data/lib/countries/data/subdivisions/SV.yaml +54 -42
  550. data/lib/countries/data/subdivisions/SX.yaml +6 -6
  551. data/lib/countries/data/subdivisions/SY.yaml +67 -54
  552. data/lib/countries/data/subdivisions/SZ.yaml +16 -12
  553. data/lib/countries/data/subdivisions/TD.yaml +143 -120
  554. data/lib/countries/data/subdivisions/TF.yaml +27 -27
  555. data/lib/countries/data/subdivisions/TG.yaml +20 -15
  556. data/lib/countries/data/subdivisions/TH.yaml +322 -242
  557. data/lib/countries/data/subdivisions/TJ.yaml +37 -31
  558. data/lib/countries/data/subdivisions/TL.yaml +52 -39
  559. data/lib/countries/data/subdivisions/TM.yaml +31 -26
  560. data/lib/countries/data/subdivisions/TN.yaml +96 -72
  561. data/lib/countries/data/subdivisions/TO.yaml +19 -15
  562. data/lib/countries/data/subdivisions/TR.yaml +324 -243
  563. data/lib/countries/data/subdivisions/TT.yaml +88 -70
  564. data/lib/countries/data/subdivisions/TV.yaml +55 -47
  565. data/lib/countries/data/subdivisions/TW.yaml +146 -123
  566. data/lib/countries/data/subdivisions/TZ.yaml +182 -127
  567. data/lib/countries/data/subdivisions/UA.yaml +109 -81
  568. data/lib/countries/data/subdivisions/UG.yaml +912 -775
  569. data/lib/countries/data/subdivisions/UM.yaml +45 -36
  570. data/lib/countries/data/subdivisions/US.yaml +304 -227
  571. data/lib/countries/data/subdivisions/UY.yaml +78 -57
  572. data/lib/countries/data/subdivisions/UZ.yaml +57 -42
  573. data/lib/countries/data/subdivisions/VC.yaml +32 -22
  574. data/lib/countries/data/subdivisions/VE.yaml +100 -75
  575. data/lib/countries/data/subdivisions/VI.yaml +26 -26
  576. data/lib/countries/data/subdivisions/VN.yaml +256 -191
  577. data/lib/countries/data/subdivisions/VU.yaml +24 -18
  578. data/lib/countries/data/subdivisions/WF.yaml +41 -38
  579. data/lib/countries/data/subdivisions/WS.yaml +44 -33
  580. data/lib/countries/data/subdivisions/YE.yaml +114 -94
  581. data/lib/countries/data/subdivisions/YT.yaml +125 -125
  582. data/lib/countries/data/subdivisions/ZA.yaml +56 -39
  583. data/lib/countries/data/subdivisions/ZM.yaml +48 -38
  584. data/lib/countries/data/subdivisions/ZW.yaml +39 -30
  585. data/lib/countries/data/translation_corrections.yaml +22 -12
  586. data/lib/countries/global.rb +1 -3
  587. data/lib/countries/structure.rb +2 -5
  588. data/lib/countries/tasks/geocoding.rake +1 -1
  589. data/lib/countries/translations.rb +1 -1
  590. data/lib/countries/version.rb +1 -1
  591. data/spec/country_spec.rb +120 -53
  592. data/spec/data_spec.rb +13 -13
  593. metadata +9 -11
  594. data/lib/countries/data/subdivisions/FO.yaml +0 -85
  595. data/lib/countries/data/subdivisions/KY.yaml +0 -85
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8db9aae6e0cb07ba00d5a73f149ede858343a195ccec5f8e99418b56aa2e470
4
- data.tar.gz: 9a99cb141b6917918d7657114a9d9e5f7a4dddc339147e158c29155bf7ec8d6d
3
+ metadata.gz: 887715ef29fbd425dc5ed15b431c742a4fc65122768658232604ad34fade76e9
4
+ data.tar.gz: 21da6fd08a9ce1ff90cc3b3be66843811b1439c67d1bb4d17b39437b2e1c9ac8
5
5
  SHA512:
6
- metadata.gz: 99f1ce3e9377df75586502f443ad33c5dc4675ffd14ad75db31774c578fa47a5032f0e814bad668ce69a82164ea17885d440918609a42142f29ba064156e7311
7
- data.tar.gz: 65a16b67b83b192468324e7bf57bf783e98944d05d150dbcf30e59985af4d486a1baef43dc356366272f1892438111efca70db72ddb0a81902840fd9cc863a2e
6
+ metadata.gz: ee49e9f7940118d1bf3ce03d9784b7e7d89c3f0d2f5c08b89548855447ebdd02d7be05b2ec52c3e3d03d753de2f73aae9db666fb5c6c4b989b6800e4bcc0c857
7
+ data.tar.gz: 3e0b5dcd574ce266e2d0243164d9370aad9aaf9a2c5a6572dae9b117e8c18a0b2e5e19b59382fac36516c744c5bf75fce4fbc08b9aa54c981360468ce8e18634
@@ -17,11 +17,13 @@ jobs:
17
17
  include:
18
18
  - ruby-version: 2.5.9
19
19
  bundler-version: default
20
- - ruby-version: 2.6.7
20
+ - ruby-version: 2.6.9
21
21
  bundler-version: default
22
- - ruby-version: 2.7.3
22
+ - ruby-version: 2.7.5
23
23
  bundler-version: default
24
- - ruby-version: 3.0.1
24
+ - ruby-version: 3.0.3
25
+ bundler-version: default
26
+ - ruby-version: 3.1.0
25
27
  bundler-version: default
26
28
  steps:
27
29
  - uses: actions/checkout@v2
data/CHANGELOG.md CHANGED
@@ -2,13 +2,119 @@
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
+
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.0](https://github.com/countries/countries/releases/tag/v4.2.0) (2022/01/11 11:04 +00:00)
12
+
13
+ **Deprecations**
14
+
15
+ - `Country#name`, `Country#names` and the finders using these attributes. See README ('Upgrading to 4.2 and 5.x')
16
+ - `latitude_dec` and `longitude_dec` attributes
17
+
18
+ **Merged pull requests:**
19
+
20
+ * Name methods refactor [\#717](https://github.com/countries/countries/pull/717) ([pmor](https://github.com/pmor))
21
+ * Remove non-ISO US subdivisions [\#720](https://github.com/countries/countries/pull/720) ([pmor](https://github.com/pmor))
22
+ * Update MK subdivisions [\#721](https://github.com/countries/countries/pull/721) ([pmor](https://github.com/pmor))
23
+ * Update Kenya subdivision data [\#722](https://github.com/countries/countries/pull/722) ([pmor](https://github.com/pmor))
24
+ * Fix French Southern Territories continent and region data [\#725](https://github.com/countries/countries/pull/725) ([pmor](https://github.com/pmor))
25
+ * Fix SG subdivision data [\#726](https://github.com/countries/countries/pull/726) ([pmor](https://github.com/pmor))
26
+ * Remove FO subdivisions [\#727](https://github.com/countries/countries/pull/727) ([pmor](https://github.com/pmor))
27
+ * JE and IM currencies should be GBP [\#728](https://github.com/countries/countries/pull/728) ([pmor](https://github.com/pmor))
28
+ * Fix US translations in nb and no locales [\#729](https://github.com/countries/countries/pull/729) ([pmor](https://github.com/pmor))
29
+ * Missing alternative names for GB and US [\#724](https://github.com/countries/countries/pull/#724) ([dima4p](https://github.com/dima4p))
30
+ * Deprecate latitude_dec and longitude_dec, delegate to latitude [\#723](https://github.com/countries/countries/pull/#723) ([pmor](https://github.com/pmor)
31
+ * add VAT for Israel and Saudi Arabia [\#730](https://github.com/countries/countries/pull/#723) ([Venca24](https://github.com/Venca24)
32
+ * Remove non-ISO KY subdivisions [\#731](https://github.com/countries/countries/pull/731) ([pmor](https://github.com/pmor))
33
+ * Fix duplicated translations of CZ-10 subdivision [\#733](https://github.com/countries/countries/pull/733) ([pmor](https://github.com/pmor))
34
+
35
+ **Closed issues:**
36
+
37
+ * Update Kenya subdivisions/states [\#318](https://github.com/countries/countries/issues/318)
38
+ * North Macedonia updates (2020-03-02) [\#674](https://github.com/countries/countries/issues/674)
39
+ * Singapore wrong subdivision codes (SG-SG-0x) [\#663](https://github.com/countries/countries/issues/663)
40
+ * Remove Faroe Islands subdivisions [\#606](https://github.com/countries/countries/issues/606)
41
+ * Jersey uses GBP instead of JEP currency [\#492](https://github.com/countries/countries/issues/492)
42
+ * USA in Norwegian translation should be 'USA' instead of 'De forente stater' [\#564](https://github.com/countries/countries/issues/564)
43
+ * Geographic bounds for UK includes all of Europe [\#535](https://github.com/countries/countries/issues/535)
44
+ * Wrong min_longitude for United States of America? [\#698](https://github.com/countries/countries/issues/698)
45
+ * Translations for CZ-10 are defined twice [\#732](https://github.com/countries/countries/issues/732)
46
+
47
+
48
+ ## [4.1.3](https://github.com/countries/countries/releases/tag/v4.1.2) (2022/01/03 12:16 +00:00)
49
+
50
+ **Merged pull requests:**
51
+
52
+ * Fix empty translations in LV subdivisions [\#719](https://github.com/countries/countries/pull/719) ([pmor](https://github.com/pmor))
53
+
54
+ **Closed issues:**
55
+
56
+ * Subdivision translations for some latvian subdivisions nil in countries 4.1.2 [\#718](https://github.com/countries/countries/issues/718)
57
+
58
+ ## [4.1.2](https://github.com/countries/countries/releases/tag/v4.1.2) (2021/12/20 17:06 +00:00)
59
+
60
+ **Merged pull requests:**
61
+
62
+ * Update subdivisions, fix #600 conflicts [\#710](https://github.com/countries/countries/pull/710) ([donnen](https://github.com/donnen), [pmor](https://github.com/pmor))
63
+ * 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))
64
+ * Update NZ subdivision data and fix Chatham Island entry [\#712](https://github.com/countries/countries/pull/712) ([pmor](https://github.com/pmor))
65
+ * Update translation corrections for Occitan.[\#713](https://github.com/countries/countries/pull/713) ([pmor](https://github.com/pmor))
66
+ * Update i18n_data to 0.15.0 [\#715](https://github.com/countries/countries/pull/715) ([pmor](https://github.com/pmor))
67
+
68
+ ## [4.1.1](https://github.com/countries/countries/releases/tag/v4.1.1) (2021/12/06 13:31 +00:00)
69
+
70
+ **Merged pull requests:**
71
+
72
+ * Fix ISO3166::Country respond_to_missing? [\#625](https://github.com/countries/countries/pull/625) ([biinari](https://github.com/biinari))
73
+ * Revert subdivision changes to NO.yaml [\#709](https://github.com/countries/countries/pull/709) ([pmor](https://github.com/pmor))
74
+
75
+ ## [4.1.0](https://github.com/countries/countries/releases/tag/v4.1.0) (2021/11/30 09:44 +00:00)
76
+
77
+ **New features:**
78
+
79
+ - `Country.pluck` [\#706](https://github.com/countries/countries/pull/706) ([dorianmariefr](https://github.com/dorianmariefr))
80
+
81
+ **Closed issues:**
82
+
83
+ - Ensure Moscow Oblast translations reference the "province" [\#694](https://github.com/countries/countries/pull/694) ([carlesjove](https://github.com/carlesjove))
84
+ - Update NL reduced VAT rate [\#693](https://github.com/countries/countries/pull/693) ([oscaredel](https://github.com/oscaredel))
85
+ - Serbian translation for North Macedonia is incorrect [\#703](https://github.com/countries/countries/issues/703)
86
+
87
+ **Merged pull requests:**
88
+
89
+ - Set the code when creating subdivisions [\#658](https://github.com/countries/countries/pull/658) ([IamDavidovich](https://github.com/IamDavidovich))
90
+ - Refresh subdivision data from CLDR [\#704](https://github.com/countries/countries/pull/704) ([pmor](https://github.com/pmor))
91
+ - Update I18nData gem to 0.13.1 and fix MK translation in `mk` locale [\#705](https://github.com/countries/countries/pull/705) ([pmor](https://github.com/pmor))
92
+
93
+ ## [4.0.1](https://github.com/countries/countries/releases/tag/v4.0.1) (2021/07/19 14:47 +01:00)
94
+
95
+ **Closed issues:**
96
+
97
+ - ISO Country Code for Czechia/Czech Republic should be updated. [\#688](https://github.com/countries/countries/issues/688)
98
+ - Regression in 4.0.0: ISO3166::Country.translations(:en) with symbol arg raises [\#691](https://github.com/countries/countries/issues/691)
99
+
100
+ **Merged pull requests:**
101
+
102
+ - Updating Norway subdivision codes to match late 2020 ISO change [\#666](https://github.com/countries/countries/pull/666) and [\#689](https://github.com/countries/countries/pull/689) ([thomascrumrine](https://github.com/thomascrumrine))
103
+ - Update CZ.yaml: Czechia is the ISO short name for the Czech Republic [\#690](https://github.com/countries/countries/pull/690) ([pmor](https://github.com/pmor))
104
+ - Fix regression in `ISO3166::Country.translations` with symbols [\#692](https://github.com/countries/countries/pull/692) ([pmor](https://github.com/pmor))
105
+
6
106
 
7
107
  ## [4.0.0](https://github.com/countries/countries/releases/tag/v4.0.0) (2021/06/11 09:47 +01:00)
8
108
 
109
+ [Full changelog](https://github.com/countries/countries/compare/v3.1.0...v4.0.0)
110
+
111
+ **Breaking changes:**
112
+
113
+ - None
114
+
9
115
  **Closed issues:**
10
116
 
11
- - update_cldr_subdivison_data Rake task broken due to CLDR repo change [\#633](https://github.com/countries/countries/issues/663)
117
+ - update_cldr_subdivison_data Rake task broken due to CLDR repo change [\#633](https://github.com/countries/countries/issues/633)
12
118
  - Fix ISO3166::Data.register loading of nested hashes (from https://github.com/countries/countries/pull/397#issuecomment-846543094)
13
119
  - Angola's bounds is the same as Austria? [\#682](https://github.com/countries/countries/issues/682)
14
120
 
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,20 +48,18 @@ 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.
58
+
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.
60
62
 
61
- has become
62
- ```ruby
63
- gem 'countries', require: 'countries/global'
64
- ```
65
63
 
66
64
  ## Selective Loading of Locales
67
65
 
@@ -89,7 +87,7 @@ end
89
87
  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
88
 
91
89
  ```ruby
92
- c = ISO3166::Country.find_country_by_name('united states')
90
+ c = ISO3166::Country.find_country_by_iso_short_name('united states')
93
91
  h = ISO3166::Country.find_all_by(:translated_names, 'França')
94
92
  list = ISO3166::Country.find_all_countries_by_region('Americas')
95
93
  c = ISO3166::Country.find_country_by_alpha3('can')
@@ -98,6 +96,9 @@ c = ISO3166::Country.find_country_by_alpha3('can')
98
96
  For a list of available attributes please see ISO3166::DEFAULT_COUNTRY_HASH.
99
97
  Note: searches are *case insensitive and ignore accents*.
100
98
 
99
+ _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_
100
+
101
+
101
102
  ## Country Info
102
103
 
103
104
  ### Identification Codes
@@ -112,7 +113,9 @@ c.gec # => "US"
112
113
  ### Names & Translations
113
114
 
114
115
  ```ruby
115
- c.name # => "United States"
116
+ c.iso_long_name # => "The United States of America"
117
+ c.iso_short_name # => "United States of America"
118
+ c.common_name # => "United States" (This is a shortcut for c.translations('en'))
116
119
  c.unofficial_names # => ["United States of America", "Vereinigte Staaten von Amerika", "États-Unis", "Estados Unidos"]
117
120
 
118
121
  # Get the names for a country translated to its local languages
@@ -128,6 +131,9 @@ ISO3166::Country.translations # {"DE"=>"Germany",...}
128
131
  ISO3166::Country.translations('DE') # {"DE"=>"Deutschland",...}
129
132
  ISO3166::Country.all_translated # ['Germany', ...]
130
133
  ISO3166::Country.all_translated('DE') # ['Deutschland', ...]
134
+
135
+ # Nationality
136
+ c.nationality # => "American"
131
137
  ```
132
138
 
133
139
  ### Subdivisions & States
@@ -140,15 +146,16 @@ c.states # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
140
146
  ### Location
141
147
 
142
148
  ```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
149
+ c.latitude # => "37.09024"
150
+ c.longitude # => "-95.712891"
147
151
 
152
+ c.world_region # => "AMER"
148
153
  c.region # => "Americas"
149
154
  c.subregion # => "Northern America"
150
155
  ```
151
156
 
157
+ Please note that `latitude_dec` and `longitude_dec` will be deprecated on release 4.2 and deleted in 5.0. These attribues have been redundant for several years, since the `latitude` and `longitude` fields have been switched decimal coordinates.
158
+
152
159
  ### Timezones **(optional)**
153
160
 
154
161
  Add `tzinfo` to your Gemfile and ensure it's required, Countries will not do this for you.
@@ -180,6 +187,8 @@ c.min_longitude # => '45'
180
187
  c.min_latitude # => '22.166667'
181
188
  c.max_longitude # => '58'
182
189
  c.max_latitude # => '26.133333'
190
+
191
+ c.bounds #> {"northeast"=>{"lat"=>22.166667, "lng"=>58}, "southwest"=>{"lat"=>26.133333, "lng"=>45}}
183
192
  ```
184
193
 
185
194
  ### European Union Membership
@@ -188,6 +197,25 @@ c.max_latitude # => '26.133333'
188
197
  c.in_eu? # => false
189
198
  ```
190
199
 
200
+ ### European Economic Area Membership
201
+
202
+ ```ruby
203
+ c.in_eea? # => false
204
+ ```
205
+
206
+
207
+ ### European Single Market Membership
208
+
209
+ ```ruby
210
+ c.in_esm? # => false
211
+ ```
212
+
213
+ ### Plucking multiple attributes
214
+
215
+ ```ruby
216
+ ISO3166::Country.pluck(:alpha2, :iso_short_name) # => [["AD", "Andorra"], ["AE", "United Arab Emirates"], ...
217
+ ```
218
+
191
219
  ## Currencies
192
220
 
193
221
  To enable currencies extension please add the following to countries initializer.
@@ -202,9 +230,7 @@ Please note that it requires you to add "money" dependency to your gemfile.
202
230
  gem "money", "~> 6.9"
203
231
  ```
204
232
 
205
- **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.
206
-
207
- 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.
233
+ 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.
208
234
 
209
235
  ```ruby
210
236
  c = ISO3166::Country['us']
@@ -215,7 +241,7 @@ c.currency.symbol # => '$'
215
241
 
216
242
  ## Address Formatting
217
243
 
218
- A template for formatting addresses is available through the address_format method. These templates are compatible with the [Liquid][] template system.
244
+ A template for formatting addresses is available through the address_format method. These templates are compatible with the [Liquid](http://www.liquidmarkup.org/) template system.
219
245
 
220
246
  ```ruby
221
247
  c.address_format # => "{{recipient}}\n{{street}}\n{{city}} {{region}} {{postalcode}}\n{{country}}"
@@ -230,14 +256,14 @@ Any country registered this way will have its data available for searching etc..
230
256
  ```ruby
231
257
  ISO3166::Data.register(
232
258
  alpha2: 'LOL',
233
- name: 'Happy Country',
259
+ iso_short_name: 'Happy Country',
234
260
  translations: {
235
261
  'en' => 'Happy Country',
236
262
  'de' => 'glückliches Land'
237
263
  }
238
264
  )
239
265
 
240
- ISO3166::Country.new('LOL').name == 'Happy Country'
266
+ ISO3166::Country.new('LOL').iso_short_name == 'Happy Country'
241
267
  ```
242
268
 
243
269
  ## Mongoid
@@ -256,33 +282,33 @@ Searching:
256
282
 
257
283
  ```ruby
258
284
  # By alpha2
259
- british_things = Things.where(country: 'GB')
260
- british_things.first.country.name # => "United Kingdom"
285
+ spanish_things = Things.where(country: 'ES')
286
+ spanish_things.first.country.iso_short_name # => "Spain"
261
287
 
262
288
  # By object
263
- british_things = Things.where(country: Country.find_by_name('United Kingdom')[1])
264
- british_things.first.country.name # => "United Kingdom"
289
+ spanish_things = Things.where(country: Country.find_by_iso_short_name('Spain')[1])
290
+ spanish_things.first.country.iso_short_name # => "Spain"
265
291
  ```
266
292
 
267
293
  Saving:
268
294
 
269
295
  ```ruby
270
296
  # By alpha2
271
- british_thing = Thing.new(country: 'GB')
272
- british_thing.save!
273
- british_thing.country.name # => "United Kingdom"
297
+ spanish_things = Thing.new(country: 'ES')
298
+ spanish_things.save!
299
+ spanish_things.country.iso_short_name # => "Spain"
274
300
 
275
301
  # By object
276
- british_thing = Thing.new(country: Country.find_by_name('United Kingdom')[1])
277
- british_thing.save!
278
- british_thing.country.name # => "United Kingdom"
302
+ spanish_things = Thing.new(country: Country.find_by_iso_short_name('Spain')[1])
303
+ spanish_things.save!
304
+ spanish_things.country.iso_short_name # => "Spain"
279
305
  ```
280
306
 
281
307
  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:
282
308
 
283
309
  ```ruby
284
310
  def country
285
- super.name
311
+ super.iso_short_name
286
312
  end
287
313
  ```
288
314
 
@@ -299,7 +325,7 @@ c.emoji_flag # => "🇲🇾"
299
325
 
300
326
  Any additions should be directed upstream to [pkg-isocodes](https://salsa.debian.org/iso-codes-team/iso-codes)
301
327
 
302
- New Bugs can be filed upstream here https://salsa.debian.org/iso-codes-team/iso-codes/issues
328
+ 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
303
329
  If you need to correct an upstream translation please add it to the lib/countries/data/translations_corrections.yaml
304
330
 
305
331
  ```
@@ -326,10 +352,3 @@ the next `rake update_cache`.
326
352
 
327
353
  Copyright (c) 2016 hexorx. See LICENSE for details.
328
354
 
329
- [Teliax]: http://teliax.com
330
- [Centrex]: http://en.wikipedia.org/wiki/Centrex
331
- [CommonDataHub]: http://commondatahub.com
332
- [Currencies]: http://gemcutter.org/gems/currencies
333
- [Money]: http://gemcutter.org/gems/money
334
- [Liquid]: http://www.liquidmarkup.org/
335
- [country_select]: https://github.com/stefanpenner/country_select
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
@@ -19,7 +19,9 @@ Gem::Specification.new do |gem|
19
19
  gem.version = Countries::VERSION.dup
20
20
  gem.license = 'MIT'
21
21
 
22
- gem.add_dependency('i18n_data', '~> 0.13.0')
22
+ gem.required_ruby_version = '>= 2.5'
23
+
24
+ gem.add_dependency('i18n_data', '~> 0.15.0')
23
25
  gem.add_dependency('sixarm_ruby_unaccent', '~> 1.1')
24
26
  gem.add_development_dependency('rspec', '>= 3')
25
27
  gem.add_development_dependency('activesupport', '>= 3')