countries 4.1.1 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/tests.yml +2 -0
  3. data/CHANGELOG.md +73 -4
  4. data/README.markdown +43 -37
  5. data/Rakefile +23 -31
  6. data/countries.gemspec +1 -1
  7. data/lib/countries/cache/countries.json +1 -1
  8. data/lib/countries/cache/locales/ab.json +1 -1
  9. data/lib/countries/cache/locales/af.json +1 -1
  10. data/lib/countries/cache/locales/ak.json +1 -1
  11. data/lib/countries/cache/locales/am.json +1 -1
  12. data/lib/countries/cache/locales/an.json +1 -1
  13. data/lib/countries/cache/locales/as.json +1 -1
  14. data/lib/countries/cache/locales/ay.json +1 -1
  15. data/lib/countries/cache/locales/az.json +1 -1
  16. data/lib/countries/cache/locales/ba.json +1 -1
  17. data/lib/countries/cache/locales/bg.json +1 -1
  18. data/lib/countries/cache/locales/bi.json +1 -1
  19. data/lib/countries/cache/locales/br.json +1 -1
  20. data/lib/countries/cache/locales/bs.json +1 -1
  21. data/lib/countries/cache/locales/ca.json +1 -1
  22. data/lib/countries/cache/locales/ce.json +1 -1
  23. data/lib/countries/cache/locales/ch.json +1 -1
  24. data/lib/countries/cache/locales/cv.json +1 -1
  25. data/lib/countries/cache/locales/de.json +1 -1
  26. data/lib/countries/cache/locales/dv.json +1 -1
  27. data/lib/countries/cache/locales/dz.json +1 -1
  28. data/lib/countries/cache/locales/ee.json +1 -1
  29. data/lib/countries/cache/locales/en.json +1 -1
  30. data/lib/countries/cache/locales/eo.json +1 -1
  31. data/lib/countries/cache/locales/es.json +1 -1
  32. data/lib/countries/cache/locales/et.json +1 -1
  33. data/lib/countries/cache/locales/ff.json +1 -1
  34. data/lib/countries/cache/locales/fi.json +1 -1
  35. data/lib/countries/cache/locales/fo.json +1 -1
  36. data/lib/countries/cache/locales/fr.json +1 -1
  37. data/lib/countries/cache/locales/fy.json +1 -1
  38. data/lib/countries/cache/locales/ga.json +1 -1
  39. data/lib/countries/cache/locales/gl.json +1 -1
  40. data/lib/countries/cache/locales/gn.json +1 -1
  41. data/lib/countries/cache/locales/gu.json +1 -1
  42. data/lib/countries/cache/locales/gv.json +1 -1
  43. data/lib/countries/cache/locales/ha.json +1 -1
  44. data/lib/countries/cache/locales/he.json +1 -1
  45. data/lib/countries/cache/locales/hi.json +1 -1
  46. data/lib/countries/cache/locales/hr.json +1 -1
  47. data/lib/countries/cache/locales/ht.json +1 -1
  48. data/lib/countries/cache/locales/hy.json +1 -1
  49. data/lib/countries/cache/locales/io.json +1 -1
  50. data/lib/countries/cache/locales/is.json +1 -1
  51. data/lib/countries/cache/locales/iu.json +1 -1
  52. data/lib/countries/cache/locales/ja.json +1 -1
  53. data/lib/countries/cache/locales/ka.json +1 -1
  54. data/lib/countries/cache/locales/ki.json +1 -1
  55. data/lib/countries/cache/locales/kk.json +1 -1
  56. data/lib/countries/cache/locales/kl.json +1 -1
  57. data/lib/countries/cache/locales/km.json +1 -1
  58. data/lib/countries/cache/locales/kn.json +1 -1
  59. data/lib/countries/cache/locales/kv.json +1 -1
  60. data/lib/countries/cache/locales/kw.json +1 -1
  61. data/lib/countries/cache/locales/ky.json +1 -1
  62. data/lib/countries/cache/locales/lo.json +1 -1
  63. data/lib/countries/cache/locales/lt.json +1 -1
  64. data/lib/countries/cache/locales/lv.json +1 -1
  65. data/lib/countries/cache/locales/mi.json +1 -1
  66. data/lib/countries/cache/locales/mk.json +1 -1
  67. data/lib/countries/cache/locales/ml.json +1 -1
  68. data/lib/countries/cache/locales/mn.json +1 -1
  69. data/lib/countries/cache/locales/ms.json +1 -1
  70. data/lib/countries/cache/locales/mt.json +1 -1
  71. data/lib/countries/cache/locales/my.json +1 -1
  72. data/lib/countries/cache/locales/na.json +1 -1
  73. data/lib/countries/cache/locales/nb.json +1 -1
  74. data/lib/countries/cache/locales/ne.json +1 -1
  75. data/lib/countries/cache/locales/nl.json +1 -1
  76. data/lib/countries/cache/locales/nn.json +1 -1
  77. data/lib/countries/cache/locales/nv.json +1 -1
  78. data/lib/countries/cache/locales/oc.json +1 -1
  79. data/lib/countries/cache/locales/pi.json +1 -1
  80. data/lib/countries/cache/locales/ps.json +1 -1
  81. data/lib/countries/cache/locales/pt-br.json +1 -1
  82. data/lib/countries/cache/locales/ro.json +1 -1
  83. data/lib/countries/cache/locales/ru.json +1 -1
  84. data/lib/countries/cache/locales/rw.json +1 -1
  85. data/lib/countries/cache/locales/sc.json +1 -1
  86. data/lib/countries/cache/locales/sd.json +1 -1
  87. data/lib/countries/cache/locales/si.json +1 -1
  88. data/lib/countries/cache/locales/sk.json +1 -1
  89. data/lib/countries/cache/locales/sl.json +1 -1
  90. data/lib/countries/cache/locales/so.json +1 -1
  91. data/lib/countries/cache/locales/sr.json +1 -1
  92. data/lib/countries/cache/locales/sv.json +1 -1
  93. data/lib/countries/cache/locales/sw.json +1 -1
  94. data/lib/countries/cache/locales/ta.json +1 -1
  95. data/lib/countries/cache/locales/te.json +1 -1
  96. data/lib/countries/cache/locales/th.json +1 -1
  97. data/lib/countries/cache/locales/ti.json +1 -1
  98. data/lib/countries/cache/locales/tk.json +1 -1
  99. data/lib/countries/cache/locales/tl.json +1 -1
  100. data/lib/countries/cache/locales/tr.json +1 -1
  101. data/lib/countries/cache/locales/tt.json +1 -1
  102. data/lib/countries/cache/locales/ur.json +1 -1
  103. data/lib/countries/cache/locales/uz.json +1 -1
  104. data/lib/countries/cache/locales/ve.json +1 -1
  105. data/lib/countries/cache/locales/vi.json +1 -1
  106. data/lib/countries/cache/locales/wa.json +1 -1
  107. data/lib/countries/cache/locales/wo.json +1 -1
  108. data/lib/countries/cache/locales/xh.json +1 -1
  109. data/lib/countries/cache/locales/yo.json +1 -1
  110. data/lib/countries/cache/locales/zh-cn.json +1 -1
  111. data/lib/countries/cache/locales/zh.json +1 -1
  112. data/lib/countries/cache/locales/zu.json +1 -1
  113. data/lib/countries/configuration.rb +13 -0
  114. data/lib/countries/country/class_methods.rb +19 -6
  115. data/lib/countries/country/currency_methods.rb +4 -1
  116. data/lib/countries/country/emoji.rb +3 -0
  117. data/lib/countries/country.rb +147 -7
  118. data/lib/countries/data/countries/AD.yaml +28 -29
  119. data/lib/countries/data/countries/AE.yaml +32 -33
  120. data/lib/countries/data/countries/AF.yaml +32 -33
  121. data/lib/countries/data/countries/AG.yaml +28 -29
  122. data/lib/countries/data/countries/AI.yaml +27 -28
  123. data/lib/countries/data/countries/AL.yaml +28 -29
  124. data/lib/countries/data/countries/AM.yaml +30 -31
  125. data/lib/countries/data/countries/AO.yaml +25 -26
  126. data/lib/countries/data/countries/AQ.yaml +24 -25
  127. data/lib/countries/data/countries/AR.yaml +30 -31
  128. data/lib/countries/data/countries/AS.yaml +31 -32
  129. data/lib/countries/data/countries/AT.yaml +36 -37
  130. data/lib/countries/data/countries/AU.yaml +33 -34
  131. data/lib/countries/data/countries/AW.yaml +25 -26
  132. data/lib/countries/data/countries/AX.yaml +27 -28
  133. data/lib/countries/data/countries/AZ.yaml +30 -31
  134. data/lib/countries/data/countries/BA.yaml +32 -33
  135. data/lib/countries/data/countries/BB.yaml +28 -29
  136. data/lib/countries/data/countries/BD.yaml +27 -28
  137. data/lib/countries/data/countries/BE.yaml +41 -42
  138. data/lib/countries/data/countries/BF.yaml +27 -28
  139. data/lib/countries/data/countries/BG.yaml +36 -37
  140. data/lib/countries/data/countries/BH.yaml +28 -29
  141. data/lib/countries/data/countries/BI.yaml +27 -28
  142. data/lib/countries/data/countries/BJ.yaml +26 -27
  143. data/lib/countries/data/countries/BL.yaml +25 -26
  144. data/lib/countries/data/countries/BM.yaml +29 -30
  145. data/lib/countries/data/countries/BN.yaml +26 -27
  146. data/lib/countries/data/countries/BO.yaml +31 -32
  147. data/lib/countries/data/countries/BQ.yaml +28 -29
  148. data/lib/countries/data/countries/BR.yaml +35 -36
  149. data/lib/countries/data/countries/BS.yaml +27 -28
  150. data/lib/countries/data/countries/BT.yaml +28 -29
  151. data/lib/countries/data/countries/BV.yaml +23 -24
  152. data/lib/countries/data/countries/BW.yaml +27 -28
  153. data/lib/countries/data/countries/BY.yaml +30 -31
  154. data/lib/countries/data/countries/BZ.yaml +28 -29
  155. data/lib/countries/data/countries/CA.yaml +30 -31
  156. data/lib/countries/data/countries/CC.yaml +28 -29
  157. data/lib/countries/data/countries/CD.yaml +35 -36
  158. data/lib/countries/data/countries/CF.yaml +29 -30
  159. data/lib/countries/data/countries/CG.yaml +29 -30
  160. data/lib/countries/data/countries/CH.yaml +40 -41
  161. data/lib/countries/data/countries/CI.yaml +27 -28
  162. data/lib/countries/data/countries/CK.yaml +27 -28
  163. data/lib/countries/data/countries/CL.yaml +32 -33
  164. data/lib/countries/data/countries/CM.yaml +29 -30
  165. data/lib/countries/data/countries/CN.yaml +28 -29
  166. data/lib/countries/data/countries/CO.yaml +28 -29
  167. data/lib/countries/data/countries/CR.yaml +26 -27
  168. data/lib/countries/data/countries/CU.yaml +27 -28
  169. data/lib/countries/data/countries/CV.yaml +28 -29
  170. data/lib/countries/data/countries/CW.yaml +25 -26
  171. data/lib/countries/data/countries/CX.yaml +30 -31
  172. data/lib/countries/data/countries/CY.yaml +40 -41
  173. data/lib/countries/data/countries/CZ.yaml +38 -39
  174. data/lib/countries/data/countries/DE.yaml +36 -37
  175. data/lib/countries/data/countries/DJ.yaml +29 -30
  176. data/lib/countries/data/countries/DK.yaml +35 -36
  177. data/lib/countries/data/countries/DM.yaml +26 -27
  178. data/lib/countries/data/countries/DO.yaml +28 -29
  179. data/lib/countries/data/countries/DZ.yaml +28 -29
  180. data/lib/countries/data/countries/EC.yaml +28 -29
  181. data/lib/countries/data/countries/EE.yaml +35 -36
  182. data/lib/countries/data/countries/EG.yaml +28 -29
  183. data/lib/countries/data/countries/EH.yaml +30 -31
  184. data/lib/countries/data/countries/ER.yaml +31 -32
  185. data/lib/countries/data/countries/ES.yaml +36 -37
  186. data/lib/countries/data/countries/ET.yaml +28 -29
  187. data/lib/countries/data/countries/FI.yaml +38 -39
  188. data/lib/countries/data/countries/FJ.yaml +33 -34
  189. data/lib/countries/data/countries/FK.yaml +29 -30
  190. data/lib/countries/data/countries/FM.yaml +28 -29
  191. data/lib/countries/data/countries/FO.yaml +28 -29
  192. data/lib/countries/data/countries/FR.yaml +37 -38
  193. data/lib/countries/data/countries/GA.yaml +27 -28
  194. data/lib/countries/data/countries/GB.yaml +39 -38
  195. data/lib/countries/data/countries/GD.yaml +26 -27
  196. data/lib/countries/data/countries/GE.yaml +28 -29
  197. data/lib/countries/data/countries/GF.yaml +29 -30
  198. data/lib/countries/data/countries/GG.yaml +30 -31
  199. data/lib/countries/data/countries/GH.yaml +27 -28
  200. data/lib/countries/data/countries/GI.yaml +26 -27
  201. data/lib/countries/data/countries/GL.yaml +29 -30
  202. data/lib/countries/data/countries/GM.yaml +25 -26
  203. data/lib/countries/data/countries/GN.yaml +30 -31
  204. data/lib/countries/data/countries/GP.yaml +27 -28
  205. data/lib/countries/data/countries/GQ.yaml +29 -30
  206. data/lib/countries/data/countries/GR.yaml +37 -38
  207. data/lib/countries/data/countries/GS.yaml +27 -28
  208. data/lib/countries/data/countries/GT.yaml +26 -27
  209. data/lib/countries/data/countries/GU.yaml +31 -32
  210. data/lib/countries/data/countries/GW.yaml +28 -29
  211. data/lib/countries/data/countries/GY.yaml +26 -27
  212. data/lib/countries/data/countries/HK.yaml +28 -29
  213. data/lib/countries/data/countries/HM.yaml +27 -28
  214. data/lib/countries/data/countries/HN.yaml +27 -28
  215. data/lib/countries/data/countries/HR.yaml +37 -38
  216. data/lib/countries/data/countries/HT.yaml +29 -30
  217. data/lib/countries/data/countries/HU.yaml +37 -38
  218. data/lib/countries/data/countries/ID.yaml +28 -29
  219. data/lib/countries/data/countries/IE.yaml +39 -40
  220. data/lib/countries/data/countries/IL.yaml +35 -31
  221. data/lib/countries/data/countries/IM.yaml +29 -30
  222. data/lib/countries/data/countries/IN.yaml +30 -31
  223. data/lib/countries/data/countries/IO.yaml +26 -27
  224. data/lib/countries/data/countries/IQ.yaml +28 -29
  225. data/lib/countries/data/countries/IR.yaml +28 -29
  226. data/lib/countries/data/countries/IS.yaml +35 -36
  227. data/lib/countries/data/countries/IT.yaml +36 -37
  228. data/lib/countries/data/countries/JE.yaml +26 -27
  229. data/lib/countries/data/countries/JM.yaml +28 -29
  230. data/lib/countries/data/countries/JO.yaml +28 -29
  231. data/lib/countries/data/countries/JP.yaml +28 -29
  232. data/lib/countries/data/countries/KE.yaml +29 -30
  233. data/lib/countries/data/countries/KG.yaml +30 -31
  234. data/lib/countries/data/countries/KH.yaml +28 -29
  235. data/lib/countries/data/countries/KI.yaml +25 -26
  236. data/lib/countries/data/countries/KM.yaml +29 -30
  237. data/lib/countries/data/countries/KN.yaml +29 -29
  238. data/lib/countries/data/countries/KP.yaml +27 -28
  239. data/lib/countries/data/countries/KR.yaml +28 -29
  240. data/lib/countries/data/countries/KW.yaml +28 -29
  241. data/lib/countries/data/countries/KY.yaml +29 -30
  242. data/lib/countries/data/countries/KZ.yaml +30 -31
  243. data/lib/countries/data/countries/LA.yaml +27 -28
  244. data/lib/countries/data/countries/LB.yaml +30 -31
  245. data/lib/countries/data/countries/LC.yaml +28 -29
  246. data/lib/countries/data/countries/LI.yaml +27 -28
  247. data/lib/countries/data/countries/LK.yaml +28 -29
  248. data/lib/countries/data/countries/LR.yaml +28 -29
  249. data/lib/countries/data/countries/LS.yaml +28 -29
  250. data/lib/countries/data/countries/LT.yaml +37 -38
  251. data/lib/countries/data/countries/LU.yaml +39 -40
  252. data/lib/countries/data/countries/LV.yaml +36 -37
  253. data/lib/countries/data/countries/LY.yaml +27 -28
  254. data/lib/countries/data/countries/MA.yaml +28 -29
  255. data/lib/countries/data/countries/MC.yaml +28 -29
  256. data/lib/countries/data/countries/MD.yaml +28 -29
  257. data/lib/countries/data/countries/ME.yaml +33 -34
  258. data/lib/countries/data/countries/MF.yaml +29 -30
  259. data/lib/countries/data/countries/MG.yaml +30 -31
  260. data/lib/countries/data/countries/MH.yaml +30 -31
  261. data/lib/countries/data/countries/MK.yaml +28 -29
  262. data/lib/countries/data/countries/ML.yaml +25 -26
  263. data/lib/countries/data/countries/MM.yaml +27 -28
  264. data/lib/countries/data/countries/MN.yaml +28 -29
  265. data/lib/countries/data/countries/MO.yaml +28 -29
  266. data/lib/countries/data/countries/MP.yaml +31 -32
  267. data/lib/countries/data/countries/MQ.yaml +27 -28
  268. data/lib/countries/data/countries/MR.yaml +29 -30
  269. data/lib/countries/data/countries/MS.yaml +26 -27
  270. data/lib/countries/data/countries/MT.yaml +36 -37
  271. data/lib/countries/data/countries/MU.yaml +28 -29
  272. data/lib/countries/data/countries/MV.yaml +28 -29
  273. data/lib/countries/data/countries/MW.yaml +27 -28
  274. data/lib/countries/data/countries/MX.yaml +33 -34
  275. data/lib/countries/data/countries/MY.yaml +30 -31
  276. data/lib/countries/data/countries/MZ.yaml +28 -29
  277. data/lib/countries/data/countries/NA.yaml +30 -31
  278. data/lib/countries/data/countries/NC.yaml +29 -30
  279. data/lib/countries/data/countries/NE.yaml +27 -28
  280. data/lib/countries/data/countries/NF.yaml +29 -30
  281. data/lib/countries/data/countries/NG.yaml +33 -34
  282. data/lib/countries/data/countries/NI.yaml +26 -27
  283. data/lib/countries/data/countries/NL.yaml +36 -37
  284. data/lib/countries/data/countries/NO.yaml +36 -37
  285. data/lib/countries/data/countries/NP.yaml +32 -33
  286. data/lib/countries/data/countries/NR.yaml +27 -28
  287. data/lib/countries/data/countries/NU.yaml +25 -26
  288. data/lib/countries/data/countries/NZ.yaml +34 -35
  289. data/lib/countries/data/countries/OM.yaml +28 -29
  290. data/lib/countries/data/countries/PA.yaml +26 -27
  291. data/lib/countries/data/countries/PE.yaml +28 -29
  292. data/lib/countries/data/countries/PF.yaml +29 -30
  293. data/lib/countries/data/countries/PG.yaml +28 -29
  294. data/lib/countries/data/countries/PH.yaml +35 -36
  295. data/lib/countries/data/countries/PK.yaml +30 -31
  296. data/lib/countries/data/countries/PL.yaml +36 -37
  297. data/lib/countries/data/countries/PM.yaml +29 -30
  298. data/lib/countries/data/countries/PN.yaml +27 -28
  299. data/lib/countries/data/countries/PR.yaml +28 -29
  300. data/lib/countries/data/countries/PS.yaml +31 -32
  301. data/lib/countries/data/countries/PT.yaml +33 -34
  302. data/lib/countries/data/countries/PW.yaml +26 -27
  303. data/lib/countries/data/countries/PY.yaml +28 -29
  304. data/lib/countries/data/countries/QA.yaml +27 -28
  305. data/lib/countries/data/countries/RE.yaml +28 -29
  306. data/lib/countries/data/countries/RO.yaml +37 -38
  307. data/lib/countries/data/countries/RS.yaml +28 -29
  308. data/lib/countries/data/countries/RU.yaml +28 -29
  309. data/lib/countries/data/countries/RW.yaml +31 -32
  310. data/lib/countries/data/countries/SA.yaml +33 -29
  311. data/lib/countries/data/countries/SB.yaml +27 -28
  312. data/lib/countries/data/countries/SC.yaml +28 -29
  313. data/lib/countries/data/countries/SD.yaml +30 -31
  314. data/lib/countries/data/countries/SE.yaml +37 -38
  315. data/lib/countries/data/countries/SG.yaml +32 -33
  316. data/lib/countries/data/countries/SH.yaml +29 -30
  317. data/lib/countries/data/countries/SI.yaml +36 -37
  318. data/lib/countries/data/countries/SJ.yaml +29 -30
  319. data/lib/countries/data/countries/SK.yaml +36 -37
  320. data/lib/countries/data/countries/SL.yaml +25 -26
  321. data/lib/countries/data/countries/SM.yaml +28 -29
  322. data/lib/countries/data/countries/SN.yaml +27 -28
  323. data/lib/countries/data/countries/SO.yaml +30 -31
  324. data/lib/countries/data/countries/SR.yaml +26 -27
  325. data/lib/countries/data/countries/SS.yaml +29 -30
  326. data/lib/countries/data/countries/ST.yaml +27 -28
  327. data/lib/countries/data/countries/SV.yaml +27 -28
  328. data/lib/countries/data/countries/SX.yaml +28 -29
  329. data/lib/countries/data/countries/SY.yaml +27 -28
  330. data/lib/countries/data/countries/SZ.yaml +30 -31
  331. data/lib/countries/data/countries/TC.yaml +30 -31
  332. data/lib/countries/data/countries/TD.yaml +29 -30
  333. data/lib/countries/data/countries/TF.yaml +28 -29
  334. data/lib/countries/data/countries/TG.yaml +25 -26
  335. data/lib/countries/data/countries/TH.yaml +34 -35
  336. data/lib/countries/data/countries/TJ.yaml +30 -31
  337. data/lib/countries/data/countries/TK.yaml +27 -28
  338. data/lib/countries/data/countries/TL.yaml +27 -28
  339. data/lib/countries/data/countries/TM.yaml +30 -31
  340. data/lib/countries/data/countries/TN.yaml +30 -31
  341. data/lib/countries/data/countries/TO.yaml +29 -30
  342. data/lib/countries/data/countries/TR.yaml +28 -29
  343. data/lib/countries/data/countries/TT.yaml +28 -29
  344. data/lib/countries/data/countries/TV.yaml +25 -26
  345. data/lib/countries/data/countries/TW.yaml +28 -29
  346. data/lib/countries/data/countries/TZ.yaml +30 -31
  347. data/lib/countries/data/countries/UA.yaml +34 -35
  348. data/lib/countries/data/countries/UG.yaml +28 -29
  349. data/lib/countries/data/countries/UM.yaml +29 -30
  350. data/lib/countries/data/countries/US.yaml +29 -29
  351. data/lib/countries/data/countries/UY.yaml +27 -28
  352. data/lib/countries/data/countries/UZ.yaml +30 -31
  353. data/lib/countries/data/countries/VA.yaml +31 -32
  354. data/lib/countries/data/countries/VC.yaml +29 -30
  355. data/lib/countries/data/countries/VE.yaml +26 -27
  356. data/lib/countries/data/countries/VG.yaml +29 -30
  357. data/lib/countries/data/countries/VI.yaml +28 -29
  358. data/lib/countries/data/countries/VN.yaml +28 -29
  359. data/lib/countries/data/countries/VU.yaml +31 -32
  360. data/lib/countries/data/countries/WF.yaml +29 -30
  361. data/lib/countries/data/countries/WS.yaml +28 -29
  362. data/lib/countries/data/countries/YE.yaml +27 -28
  363. data/lib/countries/data/countries/YT.yaml +26 -27
  364. data/lib/countries/data/countries/ZA.yaml +39 -40
  365. data/lib/countries/data/countries/ZM.yaml +28 -29
  366. data/lib/countries/data/countries/ZW.yaml +31 -32
  367. data/lib/countries/data/subdivisions/CZ.yaml +1045 -3736
  368. data/lib/countries/data/subdivisions/DE.yaml +16 -16
  369. data/lib/countries/data/subdivisions/DK.yaml +65 -287
  370. data/lib/countries/data/subdivisions/EE.yaml +96 -88
  371. data/lib/countries/data/subdivisions/FI.yaml +102 -499
  372. data/lib/countries/data/subdivisions/FR.yaml +584 -977
  373. data/lib/countries/data/subdivisions/GR.yaml +117 -988
  374. data/lib/countries/data/subdivisions/HU.yaml +62 -62
  375. data/lib/countries/data/subdivisions/IE.yaml +483 -482
  376. data/lib/countries/data/subdivisions/IT.yaml +1251 -1839
  377. data/lib/countries/data/subdivisions/KE.yaml +391 -503
  378. data/lib/countries/data/subdivisions/LU.yaml +194 -243
  379. data/lib/countries/data/subdivisions/LV.yaml +147 -5139
  380. data/lib/countries/data/subdivisions/MK.yaml +3501 -5809
  381. data/lib/countries/data/subdivisions/NZ.yaml +67 -111
  382. data/lib/countries/data/subdivisions/PL.yaml +210 -1208
  383. data/lib/countries/data/subdivisions/SG.yaml +39 -109
  384. data/lib/countries/data/subdivisions/US.yaml +0 -42
  385. data/lib/countries/data/translation_corrections.yaml +20 -12
  386. data/lib/countries/data.rb +5 -1
  387. data/lib/countries/global.rb +13 -3
  388. data/lib/countries/mongoid.rb +3 -0
  389. data/lib/countries/sources/cldr/downloader.rb +3 -0
  390. data/lib/countries/sources/cldr/subdivision.rb +1 -0
  391. data/lib/countries/sources/cldr/subdivision_updater.rb +1 -0
  392. data/lib/countries/sources/local/cached_loader.rb +2 -0
  393. data/lib/countries/sources/local/subdivision.rb +1 -0
  394. data/lib/countries/structure.rb +2 -5
  395. data/lib/countries/tasks/geocoding.rake +1 -1
  396. data/lib/countries/timezones.rb +4 -2
  397. data/lib/countries/translations.rb +2 -3
  398. data/lib/countries/version.rb +1 -1
  399. data/spec/country_spec.rb +60 -56
  400. data/spec/data_spec.rb +9 -9
  401. metadata +5 -7
  402. data/lib/countries/data/subdivisions/FO.yaml +0 -85
  403. data/lib/countries/data/subdivisions/KY.yaml +0 -85
@@ -11,7 +11,17 @@ SG-01:
11
11
  max_latitude: 1.3948174
12
12
  max_longitude: 103.86428
13
13
  translations:
14
+ de: Central Singapore District
14
15
  en: Central Singapore
16
+ es: Consejo Central (Singapur)
17
+ ja: シンガポール中央地区
18
+ ko: 중앙싱가포르 지구 사회 발전 이사회
19
+ ur: مرکزی سنگاپور کمیونٹی ڈیولپمنٹ کونسل
20
+ ceb: Central Singapore Community Development Council
21
+ zh: 中区社区发展理事会
22
+ ccp: "\U00011125\U0001112C\U0001111A\U00011134\U00011111\U00011133\U00011122\U00011123\U00011134
23
+ \U00011125\U00011128\U00011101\U00011109\U0001111B\U0001112A\U00011122\U00011134"
24
+ fr: Singapour central
15
25
  comments:
16
26
  SG-02:
17
27
  name: North East
@@ -26,6 +36,17 @@ SG-02:
26
36
  max_longitude: 104.0884808
27
37
  translations:
28
38
  en: North East
39
+ es: Consejo del Noreste (Singapur)
40
+ it: Distretto Nordorientale
41
+ ja: 北東地区 (シンガポール)
42
+ ko: 북동부 지구 사회 발전 이사회
43
+ nl: North East Community Development Council
44
+ ceb: North East Community Development Region
45
+ ur: شمال مشرقی کمیونٹی ڈیولپمنٹ کونسل
46
+ zh: 东北社区发展理事会
47
+ ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134
48
+ \U0001111B\U0001112A\U00011107\U00011134"
49
+ fr: District du Nord-Est
29
50
  comments:
30
51
  SG-03:
31
52
  name: North West
@@ -40,6 +61,15 @@ SG-03:
40
61
  max_longitude:
41
62
  translations:
42
63
  en: North West
64
+ es: Consejo del Noroeste (Singapur)
65
+ ja: 北西地区 (シンガポール)
66
+ ko: 북서부 지구 사회 발전 이사회
67
+ ceb: North West Community Development Council
68
+ ur: شمال مغربی کمیونٹی ڈیولپمنٹ کونسل
69
+ zh: 西北社区发展理事会
70
+ ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134
71
+ \U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134"
72
+ fr: District du Nord-Ouest
43
73
  comments:
44
74
  SG-04:
45
75
  name: South East
@@ -52,58 +82,6 @@ SG-04:
52
82
  min_longitude: 103.6055448
53
83
  max_latitude: 1.4707592
54
84
  max_longitude: 104.0884808
55
- translations:
56
- en: South East
57
- comments:
58
- SG-05:
59
- name: South West
60
- code:
61
- unofficial_names: South West
62
- geo:
63
- latitude: 1.352083
64
- longitude: 103.819836
65
- min_latitude: 1.1587023
66
- min_longitude: 103.6055448
67
- max_latitude: 1.4707592
68
- max_longitude: 104.0884808
69
- translations:
70
- en: South West
71
- comments:
72
- '01':
73
- name:
74
- code:
75
- unofficial_names:
76
- geo:
77
- latitude:
78
- longitude:
79
- min_latitude:
80
- min_longitude:
81
- max_latitude:
82
- max_longitude:
83
- translations:
84
- de: Central Singapore District
85
- en: Central Singapore
86
- es: Consejo Central (Singapur)
87
- ja: シンガポール中央地区
88
- ko: 중앙싱가포르 지구 사회 발전 이사회
89
- ur: مرکزی سنگاپور کمیونٹی ڈیولپمنٹ کونسل
90
- ceb: Central Singapore Community Development Council
91
- zh: 中区社区发展理事会
92
- ccp: "\U00011125\U0001112C\U0001111A\U00011134\U00011111\U00011133\U00011122\U00011123\U00011134
93
- \U00011125\U00011128\U00011101\U00011109\U0001111B\U0001112A\U00011122\U00011134"
94
- fr: Singapour central
95
- comments:
96
- '04':
97
- name:
98
- code:
99
- unofficial_names:
100
- geo:
101
- latitude:
102
- longitude:
103
- min_latitude:
104
- min_longitude:
105
- max_latitude:
106
- max_longitude:
107
85
  translations:
108
86
  de: Südost
109
87
  en: South East
@@ -116,17 +94,17 @@ SG-05:
116
94
  ccp: "\U00011118\U00011127\U0001110A\U00011128\U0001111A\U00011134 \U0001111B\U0001112A\U00011107\U00011134"
117
95
  fr: District du Sud-Est
118
96
  comments:
119
- '05':
120
- name:
97
+ SG-05:
98
+ name: South West
121
99
  code:
122
- unofficial_names:
100
+ unofficial_names: South West
123
101
  geo:
124
- latitude:
125
- longitude:
126
- min_latitude:
127
- min_longitude:
128
- max_latitude:
129
- max_longitude:
102
+ latitude: 1.352083
103
+ longitude: 103.819836
104
+ min_latitude: 1.1587023
105
+ min_longitude: 103.6055448
106
+ max_latitude: 1.4707592
107
+ max_longitude: 104.0884808
130
108
  translations:
131
109
  de: South West Singapore District
132
110
  en: South West
@@ -139,51 +117,3 @@ SG-05:
139
117
  ccp: "\U00011118\U00011127\U0001110A\U00011128\U0001111A\U00011134 \U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134"
140
118
  fr: District du Sud-Ouest
141
119
  comments:
142
- '02':
143
- name:
144
- code:
145
- unofficial_names:
146
- geo:
147
- latitude:
148
- longitude:
149
- min_latitude:
150
- min_longitude:
151
- max_latitude:
152
- max_longitude:
153
- translations:
154
- en: North East
155
- es: Consejo del Noreste (Singapur)
156
- it: Distretto Nordorientale
157
- ja: 北東地区 (シンガポール)
158
- ko: 북동부 지구 사회 발전 이사회
159
- nl: North East Community Development Council
160
- ceb: North East Community Development Region
161
- ur: شمال مشرقی کمیونٹی ڈیولپمنٹ کونسل
162
- zh: 东北社区发展理事会
163
- ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134
164
- \U0001111B\U0001112A\U00011107\U00011134"
165
- fr: District du Nord-Est
166
- comments:
167
- '03':
168
- name:
169
- code:
170
- unofficial_names:
171
- geo:
172
- latitude:
173
- longitude:
174
- min_latitude:
175
- min_longitude:
176
- max_latitude:
177
- max_longitude:
178
- translations:
179
- en: North West
180
- es: Consejo del Noroeste (Singapur)
181
- ja: 北西地区 (シンガポール)
182
- ko: 북서부 지구 사회 발전 이사회
183
- ceb: North West Community Development Council
184
- ur: شمال مغربی کمیونٹی ڈیولپمنٹ کونسل
185
- zh: 西北社区发展理事会
186
- ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134
187
- \U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134"
188
- fr: District du Nord-Ouest
189
- comments:
@@ -1,32 +1,4 @@
1
1
  ---
2
- AA:
3
- name: Armed Forces Americas
4
- code:
5
- unofficial_names: Armed Forces Americas
6
- geo:
7
- latitude: 33.8934985
8
- longitude: -117.2732567
9
- min_latitude: 33.8403275
10
- min_longitude: -117.2985014
11
- max_latitude: 33.9460679
12
- max_longitude: -117.2498013
13
- translations:
14
- en: Armed Forces Americas
15
- comments:
16
- AE:
17
- name: Armed Forces Europe
18
- code:
19
- unofficial_names: Armed Forces Europe
20
- geo:
21
- latitude: 59.90441850000001
22
- longitude: 10.7408094
23
- min_latitude:
24
- min_longitude:
25
- max_latitude:
26
- max_longitude:
27
- translations:
28
- en: Armed Forces Europe
29
- comments:
30
2
  AK:
31
3
  name: Alaska
32
4
  code:
@@ -223,20 +195,6 @@ AL:
223
195
  ha_NE: Alabama
224
196
  'no': Alabama
225
197
  comments:
226
- AP:
227
- name: Armed Forces Pacific
228
- code:
229
- unofficial_names: Armed Forces Pacific
230
- geo:
231
- latitude:
232
- longitude:
233
- min_latitude:
234
- min_longitude:
235
- max_latitude:
236
- max_longitude:
237
- translations:
238
- en: Armed Forces Pacific
239
- comments:
240
198
  AR:
241
199
  name: Arkansas
242
200
  code:
@@ -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,23 +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: スペイン
35
31
  mk:
36
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'
37
41
  sv:
38
42
  GB: "Storbritannien"
39
43
  RU: "Ryssland"
40
- pt:
41
- CZ: 'República Checa'
42
- da:
43
- CZ: 'Tjekkiet'
44
+ zh:
45
+ KH: '柬埔寨'
46
+ zh_cn:
47
+ KH: '柬埔寨'
48
+ nb:
49
+ US: USA
50
+ nn:
51
+ US: USA
@@ -1,5 +1,4 @@
1
1
  module ISO3166
2
- ##
3
2
  # Handles building the in memory store of countries data
4
3
  class Data
5
4
  @@cache_dir = [File.dirname(__FILE__), 'cache']
@@ -24,6 +23,9 @@ module ISO3166
24
23
  @@cache_dir = value
25
24
  end
26
25
 
26
+ # Registers a new Country with custom data.
27
+ # If you are overriding an existing country, this does not perform a deep merge so you will need to __bring in all data you wish to be available__.
28
+ # Overriding an existing country will also remove it from the internal management of translations.
27
29
  def register(data)
28
30
  alpha2 = data[:alpha2].upcase
29
31
  @@registered_data[alpha2] = deep_stringify_keys(data)
@@ -32,6 +34,7 @@ module ISO3166
32
34
  @@cache = cache.merge(@@registered_data)
33
35
  end
34
36
 
37
+ # Removes a country from the loaded data
35
38
  def unregister(alpha2)
36
39
  alpha2 = alpha2.to_s.upcase
37
40
  @@cache.delete(alpha2)
@@ -42,6 +45,7 @@ module ISO3166
42
45
  update_cache
43
46
  end
44
47
 
48
+ # Resets the loaded data and cache
45
49
  def reset
46
50
  @@cache = {}
47
51
  @@registered_data = {}
@@ -1,7 +1,17 @@
1
1
  require 'countries'
2
2
 
3
+ # Some apps might not want to constantly call +ISO3166::Country+. This gem has a helper that can provide a Country class
4
+ #
5
+ # With global Country Helper enabled
6
+ #
7
+ # c = Country['US']
8
+ #
9
+ # This will conflict with any existing Country constant
10
+ #
11
+ # To Use
12
+ #
13
+ # gem 'countries', require: 'countries/global'
14
+ #
3
15
  class Country < ISO3166::Country
4
- def to_s
5
- name
6
- end
16
+
7
17
  end
@@ -5,6 +5,7 @@ module ISO3166
5
5
  end
6
6
 
7
7
  class << self
8
+ # Convert an +ISO3166::Country+ to the data that is stored by Mongoid.
8
9
  def mongoize(country)
9
10
  if country.is_a?(self) && !country.data.nil?
10
11
  country.alpha2
@@ -13,10 +14,12 @@ module ISO3166
13
14
  end
14
15
  end
15
16
 
17
+ # Get the object as it was stored with Mongoid, and instantiate an +ISO3166::Country+.
16
18
  def demongoize(alpha2)
17
19
  new(alpha2)
18
20
  end
19
21
 
22
+ # Convert an +ISO3166::Country+ to the data that is stored by Mongoid.
20
23
  def evolve(country)
21
24
  mongoize(country)
22
25
  end
@@ -4,8 +4,11 @@ require 'nokogiri'
4
4
  require 'fileutils'
5
5
  require 'json'
6
6
 
7
+ # Support code to allow updating subdivision data from the Unicode CLDR repository
7
8
  module Sources
9
+ # Support code to allow updating subdivision data from the Unicode CLDR repository
8
10
  module CLDR
11
+ # Downloads data from the Unicode CLDR repository
9
12
  module Downloader
10
13
  module_function
11
14
 
@@ -1,5 +1,6 @@
1
1
  module Sources
2
2
  module CLDR
3
+ # Auxiliary Subdivision class to support loading Unicode CLDR data to update local files
3
4
  class Subdivision
4
5
  attr_reader :xml, :language_code
5
6
  def initialize(language_code:, xml:)
@@ -5,6 +5,7 @@ require 'pry'
5
5
 
6
6
  module Sources
7
7
  module CLDR
8
+ # Updates local subdivision files with data from the Unicode CLDR repository
8
9
  class SubdivisionUpdater
9
10
  def call
10
11
  d = Dir['./tmp/cldr/trunk/common/subdivisions/*.xml']
@@ -1,5 +1,7 @@
1
1
  module Sources
2
+ # Support code to allow updating subdivision data from the Unicode CLDR repository
2
3
  module Local
4
+ # Loader for locally-cached data, to allow merging Unicode CLDR data with existing local data
3
5
  class CachedLoader
4
6
  attr_reader :klass
5
7
  def initialize(klass)
@@ -1,5 +1,6 @@
1
1
  module Sources
2
2
  module Local
3
+ # Auxiliary Subdivision class to support loading the local subdivision data to be updated with Unicode CLDR data
3
4
  class Subdivision
4
5
  attr_reader :code
5
6
  def initialize(code)
@@ -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
 
@@ -1,6 +1,8 @@
1
- # Extend Country class with support for timezones
2
1
  module ISO3166
3
- # Extend Country class with support for timezones
2
+ # Extend Country class with support for timezones. Requires the {tzinfo}[https://github.com/tzinfo/tzinfo] gem
3
+ #
4
+ # gem 'tzinfo'
5
+ #
4
6
  module TimezoneExtensions
5
7
  def timezones
6
8
  @tz_country ||= TZInfo::Country.get(alpha2)
@@ -1,9 +1,8 @@
1
1
  module ISO3166
2
2
  # Extend the hash class to allow locale lookup fall back behavior
3
3
  #
4
- # ex:
5
- # if a country has translations for pt, and the user looks up `pt-br` fallback
6
- # to `pt` to prevent from showing nil values
4
+ # E.g. if a country has translations for +pt+, and the user looks up +pt-br+ fallback
5
+ # to +pt+ to prevent from showing nil values
7
6
  class Translations < Hash
8
7
  def [](locale)
9
8
  super(locale) || super(locale.to_s.sub(/-.*/, ''))
@@ -1,3 +1,3 @@
1
1
  module Countries
2
- VERSION = '4.1.1'.freeze
2
+ VERSION = '4.2.1'.freeze
3
3
  end