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
@@ -1,7 +1,7 @@
1
1
  ---
2
- BU:
2
+ BU:
3
3
  name: Bulawayo
4
- code:
4
+ code:
5
5
  unofficial_names: Bulawayo
6
6
  geo:
7
7
  latitude: -20.1325066
@@ -17,10 +17,10 @@ BU:
17
17
  ar: إقليم بولاوايو
18
18
  ccp: "\U0001111D\U0001112A\U00011123\U00011124\U00011103\U0001112E"
19
19
  be: Булавая
20
- comments:
21
- HA:
20
+ comments:
21
+ HA:
22
22
  name: Harare
23
- code:
23
+ code:
24
24
  unofficial_names: Harare
25
25
  geo:
26
26
  latitude: -17.863889
@@ -41,10 +41,11 @@ HA:
41
41
  pt: Harare
42
42
  nb: Harare Province
43
43
  ne: हरारे प्रदेश
44
- comments:
45
- MA:
44
+ 'no': Harare Province
45
+ comments:
46
+ MA:
46
47
  name: Manicaland
47
- code:
48
+ code:
48
49
  unofficial_names: Manicaland
49
50
  geo:
50
51
  latitude: -18.9216386
@@ -102,10 +103,11 @@ MA:
102
103
  ceb: Manicaland Province
103
104
  sr_Latn: Manikalend
104
105
  ccp: "\U0001111F\U00011127\U0001111A\U00011128\U00011107\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134"
105
- comments:
106
- MC:
106
+ 'no': Manicaland
107
+ comments:
108
+ MC:
107
109
  name: Mashonaland Central
108
- code:
110
+ code:
109
111
  unofficial_names: Mashonaland Central
110
112
  geo:
111
113
  latitude: -16.7644295
@@ -163,10 +165,11 @@ MC:
163
165
  sr_Latn: Mašonalend Central
164
166
  ccp: "\U0001111F\U00011125\U0001112E\U0001111A\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
165
167
  \U00011125\U0001112C\U0001111A\U00011134\U00011111\U00011133\U00011122\U00011123\U00011134"
166
- comments:
167
- ME:
168
+ 'no': Mashonaland Central
169
+ comments:
170
+ ME:
168
171
  name: Mashonaland East
169
- code:
172
+ code:
170
173
  unofficial_names: Mashonaland East
171
174
  geo:
172
175
  latitude: -18.5871642
@@ -225,10 +228,11 @@ ME:
225
228
  ccp: "\U0001111F\U00011125\U0001112E\U0001111A\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
226
229
  \U0001111B\U0001112A\U00011107\U00011134"
227
230
  he: משונאלנד מזרח פרובינציה
228
- comments:
229
- MI:
231
+ 'no': Mashonaland East
232
+ comments:
233
+ MI:
230
234
  name: Midlands
231
- code:
235
+ code:
232
236
  unofficial_names: Midlands
233
237
  geo:
234
238
  latitude: -19.0552009
@@ -285,10 +289,11 @@ MI:
285
289
  ceb: Midlands Province
286
290
  sr_Latn: Midlends
287
291
  ccp: "\U0001111F\U00011128\U00011116\U00011134\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134\U00011125\U00011134"
288
- comments:
289
- MN:
292
+ 'no': Midlands
293
+ comments:
294
+ MN:
290
295
  name: Matabeleland North
291
- code:
296
+ code:
292
297
  unofficial_names: Matabeleland North
293
298
  geo:
294
299
  latitude: -18.5331566
@@ -347,10 +352,11 @@ MN:
347
352
  sr_Latn: Matabelelend Sever
348
353
  ccp: "\U0001111F\U00011111\U0001111D\U00011128\U00011123\U00011128\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
349
354
  \U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134"
350
- comments:
351
- MS:
355
+ 'no': Matabeleland North
356
+ comments:
357
+ MS:
352
358
  name: Matabeleland South
353
- code:
359
+ code:
354
360
  unofficial_names: Matabeleland South
355
361
  geo:
356
362
  latitude: -21.052337
@@ -408,10 +414,11 @@ MS:
408
414
  sr_Latn: Matabelelend Jug
409
415
  ccp: "\U0001111F\U00011111\U0001111D\U00011128\U00011123\U00011128\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
410
416
  \U00011118\U00011127\U0001110A\U00011128\U0001111A\U00011134"
411
- comments:
412
- MV:
417
+ 'no': Matabeleland South
418
+ comments:
419
+ MV:
413
420
  name: Masvingo
414
- code:
421
+ code:
415
422
  unofficial_names: Masvingo
416
423
  geo:
417
424
  latitude: -20.074444
@@ -468,10 +475,11 @@ MV:
468
475
  ceb: Masvingo Province
469
476
  sr_Latn: Mašvingo
470
477
  ccp: "\U0001111F\U0001110C\U00011134\U0001111E\U00011128\U00011101\U00011109\U0001112E"
471
- comments:
472
- MW:
478
+ 'no': Masvingo
479
+ comments:
480
+ MW:
473
481
  name: Mashonaland West
474
- code:
482
+ code:
475
483
  unofficial_names: Mashonaland West
476
484
  geo:
477
485
  latitude: -17.4851029
@@ -529,4 +537,5 @@ MW:
529
537
  sr_Latn: Mašonalend Zapad
530
538
  ccp: "\U0001111F\U00011125\U0001112E\U0001111A\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
531
539
  \U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134"
532
- comments:
540
+ 'no': Mashonaland West
541
+ comments:
@@ -10,8 +10,6 @@
10
10
  # alpha2: localized_name
11
11
  #
12
12
  ---
13
- oc:
14
- US: USA
15
13
  ar:
16
14
  PS: "فلسطين"
17
15
  SA: "السعودية"
@@ -21,21 +19,33 @@ ar:
21
19
  SY: "سوريا"
22
20
  BQ: "بونير، سينت أوستاتيوس وسابا"
23
21
  CW: "كوراساو"
24
- nn:
25
- PT: Portugal
26
- zh:
27
- KH: '柬埔寨'
28
- zh_cn:
29
- KH: '柬埔寨'
22
+ da:
23
+ CZ: 'Tjekkiet'
30
24
  fa:
31
25
  IR: "ایران"
32
26
  he:
33
27
  PS: "פלסטין, מדינת"
34
28
  VI: "איי הבתולה (ארה)"
29
+ jp:
30
+ ES: スペイン
31
+ mk:
32
+ MK: "Северна Македонија"
33
+ nn:
34
+ PT: Portugal
35
+ oc:
36
+ US: Estats Units
37
+ UM: Islas perifericas Menores dels Estats Units
38
+ MK: Macedònia del Nòrd
39
+ pt:
40
+ CZ: 'República Checa'
35
41
  sv:
36
42
  GB: "Storbritannien"
37
43
  RU: "Ryssland"
38
- pt:
39
- CZ: 'República Checa'
40
- da:
41
- CZ: 'Tjekkiet'
44
+ zh:
45
+ KH: '柬埔寨'
46
+ zh_cn:
47
+ KH: '柬埔寨'
48
+ nb:
49
+ US: USA
50
+ nn:
51
+ US: USA
@@ -1,7 +1,5 @@
1
1
  require 'countries'
2
2
 
3
3
  class Country < ISO3166::Country
4
- def to_s
5
- name
6
- end
4
+
7
5
  end
@@ -11,9 +11,7 @@ module ISO3166
11
11
  'gec' => nil,
12
12
  'geo' => {
13
13
  'latitude' => nil,
14
- 'latitude_dec' => nil,
15
14
  'longitude' => nil,
16
- 'longitude_dec' => nil,
17
15
  'max_latitude' => nil,
18
16
  'max_longitude' => nil,
19
17
  'min_latitude' => nil,
@@ -31,7 +29,8 @@ module ISO3166
31
29
  },
32
30
  'international_prefix' => nil,
33
31
  'ioc' => nil,
34
- 'name' => nil,
32
+ 'iso_long_name' => nil,
33
+ 'iso_short_name' => nil,
35
34
  'national_destination_code_lengths' => [],
36
35
  'national_number_lengths' => [],
37
36
  'national_prefix' => nil,
@@ -63,9 +62,7 @@ module ISO3166
63
62
  'translations' => {},
64
63
  'geo' => {
65
64
  'latitude' => nil,
66
- 'latitude_dec' => nil,
67
65
  'longitude' => nil,
68
- 'longitude_dec' => nil,
69
66
  'max_latitude' => nil,
70
67
  'max_longitude' => nil,
71
68
  'min_latitude' => nil,
@@ -43,7 +43,7 @@ namespace :geocode do
43
43
  # Load unmutated yaml file.
44
44
  data = load_country_yaml(country.alpha2)
45
45
 
46
- next unless (result = geocode(country.name, {region: country.alpha2}))
46
+ next unless (result = geocode(country.iso_short_name, {region: country.alpha2}))
47
47
  puts "WARNING:: Geocoder returned something that was not a country for #{country.alpha2}" unless result.types.include?('country')
48
48
  geometry = result.geometry
49
49
 
@@ -6,7 +6,7 @@ module ISO3166
6
6
  # to `pt` to prevent from showing nil values
7
7
  class Translations < Hash
8
8
  def [](locale)
9
- super(locale) || super(locale.sub(/-.*/, ''))
9
+ super(locale) || super(locale.to_s.sub(/-.*/, ''))
10
10
  end
11
11
  end
12
12
  end
@@ -1,3 +1,3 @@
1
1
  module Countries
2
- VERSION = '4.0.0'.freeze
2
+ VERSION = '4.2.0'.freeze
3
3
  end
data/spec/country_spec.rb CHANGED
@@ -43,12 +43,12 @@ describe ISO3166::Country do
43
43
  expect(country.alpha3).to eq('USA')
44
44
  end
45
45
 
46
- it 'should return 3166 name' do
47
- expect(country.name).to eq('United States of America')
46
+ it 'should return 3166 iso_short_name' do
47
+ expect(country.iso_short_name).to eq('United States of America')
48
48
  end
49
49
 
50
50
  it 'should return alternate names' do
51
- expect(country.names).to eq(['United States', 'Murica', 'Vereinigte Staaten von Amerika', 'États-Unis', 'Estados Unidos', 'アメリカ合衆国', 'Verenigde Staten'])
51
+ expect(country.unofficial_names).to eq(['United States', 'USA', 'Murica', 'Vereinigte Staaten von Amerika', 'États-Unis', 'Estados Unidos', 'アメリカ合衆国', 'Verenigde Staten'])
52
52
  end
53
53
 
54
54
  it 'should return translations' do
@@ -65,15 +65,7 @@ describe ISO3166::Country do
65
65
  end
66
66
 
67
67
  it 'should return bounds' do
68
- expect(country.bounds['northeast']['lat']).to eq(71.5388001)
69
- end
70
-
71
- it 'should return the decimal Latitude' do
72
- expect(country.latitude_dec).to eq('39.44325637817383')
73
- end
74
-
75
- it 'should return the decimal Longitude' do
76
- expect(country.longitude_dec).to eq('-98.95733642578125')
68
+ expect(country.bounds['northeast']['lat']).to eq(71.3577635769)
77
69
  end
78
70
 
79
71
  it 'should return continent' do
@@ -144,7 +136,7 @@ describe ISO3166::Country do
144
136
  before do
145
137
  ISO3166::Data.register(
146
138
  alpha2: 'BR2',
147
- name: 'Brazil',
139
+ iso_short_name: 'Brazil',
148
140
  languages_official: %w(pt-BR),
149
141
  translations: {
150
142
  'pt-BR' => 'Translation for pt-BR',
@@ -168,7 +160,7 @@ describe ISO3166::Country do
168
160
  before do
169
161
  ISO3166::Data.register(
170
162
  alpha2: 'BR2',
171
- name: 'Brazil',
163
+ iso_short_name: 'Brazil',
172
164
  languages_official: %w(pt-BR),
173
165
  translations: {
174
166
  'pt' => 'Translation for pt'
@@ -233,11 +225,11 @@ describe ISO3166::Country do
233
225
  end
234
226
 
235
227
  it 'should return a hash with all sub divisions' do
236
- expect(country.subdivisions.size).to eq(60)
228
+ expect(country.subdivisions.size).to eq(57)
237
229
  end
238
230
 
239
231
  it 'should be available through states' do
240
- expect(country.states.size).to eq(60)
232
+ expect(country.states.size).to eq(57)
241
233
  end
242
234
 
243
235
  it 'should be a subdivision object' do
@@ -248,6 +240,10 @@ describe ISO3166::Country do
248
240
  expect(virginia.name).to eq('Virginia')
249
241
  end
250
242
 
243
+ it 'should have a code' do
244
+ expect(virginia.code).to eq('VA')
245
+ end
246
+
251
247
  it 'should behave like a hash' do
252
248
  expect(virginia['name']).to eq('Virginia')
253
249
  end
@@ -319,7 +315,7 @@ describe ISO3166::Country do
319
315
  end
320
316
 
321
317
  it 'should allow to customize each country representation passing a block to the method' do
322
- countries = ISO3166::Country.all { |country, data| [data['name'], country, data['country_code']] }
318
+ countries = ISO3166::Country.all { |country, data| [data['iso_short_name'], country, data['country_code']] }
323
319
  expect(countries).to be_an(Array)
324
320
  expect(countries.first).to be_an(Array)
325
321
  expect(countries.first.size).to eq(3)
@@ -350,7 +346,7 @@ describe ISO3166::Country do
350
346
  before do
351
347
  ISO3166::Data.register(
352
348
  alpha2: 'XX',
353
- name: 'Custom Country',
349
+ iso_short_name: 'Custom Country',
354
350
  translations: { 'en' => 'Custom Country' }
355
351
  )
356
352
  end
@@ -358,7 +354,7 @@ describe ISO3166::Country do
358
354
  it 'should include custom registered countries' do
359
355
  custom_country = ISO3166::Country.find_by_alpha2('XX')[1]
360
356
  countries = ISO3166::Country.all_translated
361
- expect(countries).to include(custom_country['name'])
357
+ expect(countries).to include(custom_country['iso_short_name'])
362
358
  end
363
359
 
364
360
  after do
@@ -545,7 +541,7 @@ describe ISO3166::Country do
545
541
  end
546
542
 
547
543
  it 'also performs searches with regexps and forces it to ignore case' do
548
- spain_data = ISO3166::Country.find_all_by(:names, /Españ/)
544
+ spain_data = ISO3166::Country.find_all_by(:unofficial_names, /Españ/)
549
545
  expect(spain_data).to be_a Hash
550
546
  expect(spain_data.keys).to eq(['ES'])
551
547
  end
@@ -557,7 +553,7 @@ describe ISO3166::Country do
557
553
  case lookup.length
558
554
  when 2 then ISO3166::Country.find_all_by(:alpha2, lookup)
559
555
  when 3 then ISO3166::Country.find_all_by(:alpha3, lookup)
560
- else ISO3166::Country.find_all_by(:name, lookup)
556
+ else ISO3166::Country.find_all_by(:iso_short_name, lookup)
561
557
  end
562
558
  end
563
559
  expect(Time.now - start).to be < 1
@@ -565,22 +561,22 @@ describe ISO3166::Country do
565
561
  end
566
562
 
567
563
  describe 'hash finder methods' do
568
- context "when search name in 'name'" do
569
- subject { ISO3166::Country.find_by_name('Poland') }
564
+ context "when search name in 'iso_short_name'" do
565
+ subject { ISO3166::Country.find_by_iso_short_name('Poland') }
570
566
  it 'should return' do
571
567
  expect(subject.first).to eq('PL')
572
568
  end
573
569
  end
574
570
 
575
- context "when search lowercase name in 'name'" do
576
- subject { ISO3166::Country.find_by_name('poland') }
571
+ context "when search lowercase name in 'iso_short_name'" do
572
+ subject { ISO3166::Country.find_by_iso_short_name('poland') }
577
573
  it 'should return' do
578
574
  expect(subject.first).to eq('PL')
579
575
  end
580
576
  end
581
577
 
582
- context "when search name with comma in 'name'" do
583
- subject { ISO3166::Country.find_by_name(country_name) }
578
+ context "when search name with comma in 'iso_short_name'" do
579
+ subject { ISO3166::Country.find_by_iso_short_name(country_name) }
584
580
 
585
581
  context 'with Republic of Korea' do
586
582
  let(:country_name) { 'Korea, Republic of' }
@@ -605,7 +601,7 @@ describe ISO3166::Country do
605
601
  end
606
602
 
607
603
  context 'when search lowercase multibyte name found' do
608
- subject { ISO3166::Country.find_country_by_name('россия') }
604
+ subject { ISO3166::Country.find_country_by_unofficial_names('россия') }
609
605
 
610
606
  it 'should be a country instance' do
611
607
  expect(subject).to be_a(ISO3166::Country)
@@ -614,7 +610,7 @@ describe ISO3166::Country do
614
610
  end
615
611
 
616
612
  context 'when search lowercase multibyte name found' do
617
- subject { ISO3166::Country.find_country_by_name(/россия/) }
613
+ subject { ISO3166::Country.find_country_by_unofficial_names(/россия/) }
618
614
 
619
615
  it 'should be a country instance' do
620
616
  expect(subject).to be_a(ISO3166::Country)
@@ -623,7 +619,7 @@ describe ISO3166::Country do
623
619
  end
624
620
 
625
621
  context 'when accents are not used' do
626
- subject { ISO3166::Country.find_country_by_name('emirats Arabes Unis') }
622
+ subject { ISO3166::Country.find_country_by_unofficial_names('emirats Arabes Unis') }
627
623
 
628
624
  it 'should be a country instance' do
629
625
  expect(subject).to be_a(ISO3166::Country)
@@ -631,8 +627,20 @@ describe ISO3166::Country do
631
627
  end
632
628
  end
633
629
 
634
- context "when search name in 'names'" do
635
- subject { ISO3166::Country.find_by_name('Polonia') }
630
+ context "when search name in 'unofficial_names'" do
631
+ subject { ISO3166::Country.find_by_unofficial_names('Polonia') }
632
+ it 'should return' do
633
+ expect(subject.first).to eq('PL')
634
+ end
635
+ end
636
+
637
+ context "when search name in 'translated_names'" do
638
+ before do
639
+ ISO3166.configure do |config|
640
+ config.locales = [:bs]
641
+ end
642
+ end
643
+ subject { ISO3166::Country.find_by_translated_names('Poljska') }
636
644
  it 'should return' do
637
645
  expect(subject.first).to eq('PL')
638
646
  end
@@ -665,7 +673,7 @@ describe ISO3166::Country do
665
673
 
666
674
  describe 'country finder methods' do
667
675
  context 'when search name found' do
668
- let(:uk) { ISO3166::Country.find_country_by_name('United Kingdom') }
676
+ let(:uk) { ISO3166::Country.find_country_by_unofficial_names('United Kingdom') }
669
677
 
670
678
  it 'should be a country instance' do
671
679
  expect(uk).to be_a(ISO3166::Country)
@@ -674,7 +682,7 @@ describe ISO3166::Country do
674
682
  end
675
683
 
676
684
  context 'when search lowercase name found' do
677
- let(:uk) { ISO3166::Country.find_country_by_name('united kingdom') }
685
+ let(:uk) { ISO3166::Country.find_country_by_unofficial_names('united kingdom') }
678
686
 
679
687
  it 'should be a country instance' do
680
688
  expect(uk).to be_a(ISO3166::Country)
@@ -683,7 +691,7 @@ describe ISO3166::Country do
683
691
  end
684
692
 
685
693
  context 'when the search term contains comma' do
686
- let(:korea) { ISO3166::Country.find_country_by_name('Korea, Republic of') }
694
+ let(:korea) { ISO3166::Country.find_country_by_unofficial_names('Korea, Republic of') }
687
695
 
688
696
  it 'should be a country instance' do
689
697
  expect(korea).to be_a(ISO3166::Country)
@@ -722,7 +730,7 @@ describe ISO3166::Country do
722
730
  end
723
731
  end
724
732
  context 'when search name not found' do
725
- let(:bogus) { ISO3166::Country.find_country_by_name('Does not exist') }
733
+ let(:bogus) { ISO3166::Country.find_country_by_unofficial_names('Does not exist') }
726
734
 
727
735
  it 'should be a country instance' do
728
736
  expect(bogus).to eq(nil)
@@ -731,7 +739,7 @@ describe ISO3166::Country do
731
739
 
732
740
  # Spot checks #243
733
741
  context 'when search name not found' do
734
- let(:belgium) { ISO3166::Country.find_country_by_name('Belgium') }
742
+ let(:belgium) { ISO3166::Country.find_country_by_unofficial_names('Belgium') }
735
743
 
736
744
  it 'should be a country instance' do
737
745
  expect(belgium.alpha2).to eq('BE')
@@ -740,7 +748,7 @@ describe ISO3166::Country do
740
748
 
741
749
  # Spot checks #240
742
750
  context 'when search name not found' do
743
- let(:canada) { ISO3166::Country.find_country_by_name('Canada') }
751
+ let(:canada) { ISO3166::Country.find_country_by_unofficial_names('Canada') }
744
752
 
745
753
  it 'should be a country instance' do
746
754
  expect(canada.alpha2).to eq('CA')
@@ -749,7 +757,7 @@ describe ISO3166::Country do
749
757
 
750
758
  # Spot checks #241
751
759
  context 'when search name not found' do
752
- let(:israel) { ISO3166::Country.find_country_by_name('Israel') }
760
+ let(:israel) { ISO3166::Country.find_country_by_unofficial_names('Israel') }
753
761
 
754
762
  it 'should be a country instance' do
755
763
  expect(israel.alpha2).to eq('IL')
@@ -758,7 +766,7 @@ describe ISO3166::Country do
758
766
 
759
767
  # Spot checks #241
760
768
  context 'when search name not found' do
761
- let(:israel) { ISO3166::Country.find_by_name('Israel') }
769
+ let(:israel) { ISO3166::Country.find_by_iso_short_name('Israel') }
762
770
 
763
771
  it 'should be a country instance' do
764
772
  expect(israel[0]).to eq('IL')
@@ -767,7 +775,7 @@ describe ISO3166::Country do
767
775
 
768
776
  # Spot checks #241
769
777
  context 'when search name not found' do
770
- let(:israel) { ISO3166::Country.find_all_by(:name, 'Israel') }
778
+ let(:israel) { ISO3166::Country.find_all_by(:iso_short_name, 'Israel') }
771
779
 
772
780
  it 'should be a country instance' do
773
781
  expect(israel.size).to eq(1)
@@ -800,10 +808,49 @@ describe ISO3166::Country do
800
808
  end
801
809
  end
802
810
 
811
+ describe 'finder methods respond_to_missing?' do
812
+ subject { ISO3166::Country.respond_to?(method_name) }
813
+ describe 'find_all_by' do
814
+ context 'find by a valid Country attribute' do
815
+ let(:method_name) { :find_all_by_currency }
816
+ it { is_expected.to be true }
817
+ end
818
+
819
+ context 'find by an invalid attribute' do
820
+ let(:method_name) { :find_all_by_invalid }
821
+ it { is_expected.to be false }
822
+ end
823
+ end
824
+
825
+ describe 'hash finder methods' do
826
+ context 'find by a valid Country attribute' do
827
+ let(:method_name) { :find_by_iso_short_name }
828
+ it { is_expected.to be true }
829
+ end
830
+
831
+ context 'find by an invalid attribute' do
832
+ let(:method_name) { :find_by_invalid }
833
+ it { is_expected.to be false }
834
+ end
835
+ end
836
+
837
+ describe 'country finder methods' do
838
+ context 'find country by a valid Country attribute' do
839
+ let(:method_name) { :find_country_by_alpha3 }
840
+ it { is_expected.to be true }
841
+ end
842
+
843
+ context 'find by an invalid attribute' do
844
+ let(:method_name) { :find_country_by_invalid }
845
+ it { is_expected.to be false }
846
+ end
847
+ end
848
+ end
849
+
803
850
  describe 'names in Data' do
804
851
  it 'should be unique (to allow .find_by_name work properly)' do
805
852
  names = ISO3166::Data.cache.map do |_k, v|
806
- [v['name'], v['unofficial_names']].flatten.uniq
853
+ [v['iso_short_name'], v['unofficial_names']].flatten.uniq
807
854
  end.flatten
808
855
 
809
856
  expect(names.size).to eq(names.uniq.size)
@@ -886,7 +933,7 @@ describe ISO3166::Country do
886
933
  end
887
934
 
888
935
  describe 'to_s' do
889
- it 'should return the country name' do
936
+ it 'should return the country iso_short_name' do
890
937
  expect(ISO3166::Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
891
938
  end
892
939
  end
@@ -927,30 +974,30 @@ describe ISO3166::Country do
927
974
 
928
975
  describe 'Added country names to search by' do
929
976
  it 'should return country code for Democratic Republic of the Congo' do
930
- expect(ISO3166::Country.find_country_by_name('Democratic Republic of the Congo').alpha2).to eq 'CD'
977
+ expect(ISO3166::Country.find_country_by_unofficial_names('Democratic Republic of the Congo').alpha2).to eq 'CD'
931
978
  end
932
979
  it 'should return country code for Ivory Coast' do
933
- expect(ISO3166::Country.find_country_by_name('Ivory Coast').alpha2).to eq 'CI'
980
+ expect(ISO3166::Country.find_country_by_unofficial_names('Ivory Coast').alpha2).to eq 'CI'
934
981
  end
935
982
  it 'should return Pakistan code for Guinea Bissau' do
936
- expect(ISO3166::Country.find_country_by_name('Guinea Bissau').alpha2).to eq 'GW'
983
+ expect(ISO3166::Country.find_country_by_unofficial_names('Guinea Bissau').alpha2).to eq 'GW'
937
984
  end
938
985
  it 'should return Pakistan code for St Kitts and Nevis' do
939
- expect(ISO3166::Country.find_country_by_name('St Kitts and Nevis').alpha2).to eq 'KN'
986
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Kitts and Nevis').alpha2).to eq 'KN'
940
987
  end
941
988
  it 'should return Pakistan code for St Lucia' do
942
- expect(ISO3166::Country.find_country_by_name('St Lucia').alpha2).to eq 'LC'
943
- expect(ISO3166::Country.find_country_by_name('St. Lucia').alpha2).to eq 'LC'
989
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Lucia').alpha2).to eq 'LC'
990
+ expect(ISO3166::Country.find_country_by_unofficial_names('St. Lucia').alpha2).to eq 'LC'
944
991
  end
945
992
  it 'should return Pakistan code for Turks and Caicos' do
946
- expect(ISO3166::Country.find_country_by_name('Turks and Caicos').alpha2).to eq 'TC'
993
+ expect(ISO3166::Country.find_country_by_unofficial_names('Turks and Caicos').alpha2).to eq 'TC'
947
994
  end
948
995
  it 'should return Pakistan code for St Vincent Grenadines' do
949
- expect(ISO3166::Country.find_country_by_name('St Vincent Grenadines').alpha2).to eq 'VC'
950
- expect(ISO3166::Country.find_country_by_name('St. Vincent Grenadines').alpha2).to eq 'VC'
996
+ expect(ISO3166::Country.find_country_by_unofficial_names('St Vincent Grenadines').alpha2).to eq 'VC'
997
+ expect(ISO3166::Country.find_country_by_unofficial_names('St. Vincent Grenadines').alpha2).to eq 'VC'
951
998
  end
952
999
  it 'should return country code for Palestinian Authority' do
953
- expect(ISO3166::Country.find_country_by_name('Palestinian Authority').alpha2).to eq 'PS'
1000
+ expect(ISO3166::Country.find_country_by_unofficial_names('Palestinian Authority').alpha2).to eq 'PS'
954
1001
  end
955
1002
  end
956
1003
 
@@ -968,4 +1015,24 @@ describe ISO3166::Country do
968
1015
  expect(countries.all? { |country| country.un_locode.length == 2 }).to be
969
1016
  end
970
1017
  end
1018
+
1019
+ describe '.pluck' do
1020
+ let(:args) { [] }
1021
+
1022
+ subject { ISO3166::Country.pluck(*args) }
1023
+
1024
+ it "returns empty arrays" do
1025
+ expect(subject.first).to be_empty
1026
+ expect(subject.last).to be_empty
1027
+ end
1028
+
1029
+ context "when asking for alpha2, alpha3 and iso_short_name" do
1030
+ let(:args) { [:alpha2, :alpha3, :iso_short_name] }
1031
+
1032
+ it "returns the correct values" do
1033
+ expect(subject.first).to eq(["AD", "AND", "Andorra"])
1034
+ expect(subject.last).to eq(["ZW", "ZWE", "Zimbabwe"])
1035
+ end
1036
+ end
1037
+ end
971
1038
  end