countries 5.4.0 → 5.7.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 (486) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +61 -0
  3. data/.github/workflows/codeql-analysis.yml +3 -3
  4. data/.github/workflows/tests.yml +4 -0
  5. data/.gitignore +0 -1
  6. data/.rubocop.yml +17 -8
  7. data/CHANGELOG.md +24 -0
  8. data/Gemfile +1 -2
  9. data/Gemfile.lock +102 -0
  10. data/README.md +47 -1
  11. data/Rakefile +2 -3
  12. data/countries.gemspec +1 -1
  13. data/lib/countries/cache/countries.json +1 -1
  14. data/lib/countries/cache/locales/lt.json +1 -1
  15. data/lib/countries/cache/locales/pt-br.json +1 -1
  16. data/lib/countries/country/class_methods.rb +22 -3
  17. data/lib/countries/country/country_subdivision_methods.rb +82 -0
  18. data/lib/countries/country/currency_methods.rb +0 -1
  19. data/lib/countries/country/finder_methods.rb +2 -4
  20. data/lib/countries/country.rb +21 -56
  21. data/lib/countries/data/countries/AD.yaml +1 -0
  22. data/lib/countries/data/countries/AE.yaml +1 -0
  23. data/lib/countries/data/countries/AF.yaml +1 -0
  24. data/lib/countries/data/countries/AG.yaml +1 -0
  25. data/lib/countries/data/countries/AI.yaml +1 -0
  26. data/lib/countries/data/countries/AL.yaml +1 -0
  27. data/lib/countries/data/countries/AM.yaml +1 -0
  28. data/lib/countries/data/countries/AO.yaml +1 -0
  29. data/lib/countries/data/countries/AQ.yaml +1 -0
  30. data/lib/countries/data/countries/AR.yaml +2 -0
  31. data/lib/countries/data/countries/AS.yaml +1 -0
  32. data/lib/countries/data/countries/AT.yaml +1 -0
  33. data/lib/countries/data/countries/AU.yaml +2 -0
  34. data/lib/countries/data/countries/AW.yaml +1 -0
  35. data/lib/countries/data/countries/AX.yaml +1 -0
  36. data/lib/countries/data/countries/AZ.yaml +1 -0
  37. data/lib/countries/data/countries/BA.yaml +1 -0
  38. data/lib/countries/data/countries/BB.yaml +1 -0
  39. data/lib/countries/data/countries/BD.yaml +1 -0
  40. data/lib/countries/data/countries/BE.yaml +1 -0
  41. data/lib/countries/data/countries/BF.yaml +1 -0
  42. data/lib/countries/data/countries/BG.yaml +1 -0
  43. data/lib/countries/data/countries/BH.yaml +1 -0
  44. data/lib/countries/data/countries/BI.yaml +1 -0
  45. data/lib/countries/data/countries/BJ.yaml +1 -0
  46. data/lib/countries/data/countries/BL.yaml +1 -0
  47. data/lib/countries/data/countries/BM.yaml +1 -0
  48. data/lib/countries/data/countries/BN.yaml +1 -0
  49. data/lib/countries/data/countries/BO.yaml +1 -0
  50. data/lib/countries/data/countries/BQ.yaml +1 -0
  51. data/lib/countries/data/countries/BR.yaml +2 -0
  52. data/lib/countries/data/countries/BS.yaml +1 -0
  53. data/lib/countries/data/countries/BT.yaml +1 -0
  54. data/lib/countries/data/countries/BV.yaml +1 -0
  55. data/lib/countries/data/countries/BW.yaml +1 -0
  56. data/lib/countries/data/countries/BY.yaml +1 -0
  57. data/lib/countries/data/countries/BZ.yaml +1 -0
  58. data/lib/countries/data/countries/CA.yaml +3 -0
  59. data/lib/countries/data/countries/CC.yaml +1 -0
  60. data/lib/countries/data/countries/CD.yaml +1 -0
  61. data/lib/countries/data/countries/CF.yaml +1 -0
  62. data/lib/countries/data/countries/CG.yaml +1 -0
  63. data/lib/countries/data/countries/CH.yaml +1 -0
  64. data/lib/countries/data/countries/CI.yaml +1 -0
  65. data/lib/countries/data/countries/CK.yaml +1 -0
  66. data/lib/countries/data/countries/CL.yaml +1 -0
  67. data/lib/countries/data/countries/CM.yaml +1 -0
  68. data/lib/countries/data/countries/CN.yaml +2 -0
  69. data/lib/countries/data/countries/CO.yaml +1 -0
  70. data/lib/countries/data/countries/CR.yaml +1 -0
  71. data/lib/countries/data/countries/CU.yaml +1 -0
  72. data/lib/countries/data/countries/CV.yaml +1 -0
  73. data/lib/countries/data/countries/CW.yaml +1 -0
  74. data/lib/countries/data/countries/CX.yaml +1 -0
  75. data/lib/countries/data/countries/CY.yaml +1 -0
  76. data/lib/countries/data/countries/CZ.yaml +1 -0
  77. data/lib/countries/data/countries/DE.yaml +3 -0
  78. data/lib/countries/data/countries/DJ.yaml +1 -0
  79. data/lib/countries/data/countries/DK.yaml +1 -0
  80. data/lib/countries/data/countries/DM.yaml +1 -0
  81. data/lib/countries/data/countries/DO.yaml +1 -0
  82. data/lib/countries/data/countries/DZ.yaml +1 -0
  83. data/lib/countries/data/countries/EC.yaml +1 -0
  84. data/lib/countries/data/countries/EE.yaml +1 -0
  85. data/lib/countries/data/countries/EG.yaml +1 -0
  86. data/lib/countries/data/countries/EH.yaml +1 -0
  87. data/lib/countries/data/countries/ER.yaml +1 -0
  88. data/lib/countries/data/countries/ES.yaml +1 -0
  89. data/lib/countries/data/countries/ET.yaml +1 -0
  90. data/lib/countries/data/countries/FI.yaml +1 -0
  91. data/lib/countries/data/countries/FJ.yaml +1 -0
  92. data/lib/countries/data/countries/FK.yaml +1 -0
  93. data/lib/countries/data/countries/FM.yaml +1 -0
  94. data/lib/countries/data/countries/FO.yaml +1 -0
  95. data/lib/countries/data/countries/FR.yaml +3 -0
  96. data/lib/countries/data/countries/GA.yaml +1 -0
  97. data/lib/countries/data/countries/GB.yaml +3 -0
  98. data/lib/countries/data/countries/GD.yaml +1 -0
  99. data/lib/countries/data/countries/GE.yaml +1 -0
  100. data/lib/countries/data/countries/GF.yaml +1 -0
  101. data/lib/countries/data/countries/GG.yaml +1 -0
  102. data/lib/countries/data/countries/GH.yaml +1 -0
  103. data/lib/countries/data/countries/GI.yaml +1 -0
  104. data/lib/countries/data/countries/GL.yaml +1 -0
  105. data/lib/countries/data/countries/GM.yaml +1 -0
  106. data/lib/countries/data/countries/GN.yaml +1 -0
  107. data/lib/countries/data/countries/GP.yaml +1 -0
  108. data/lib/countries/data/countries/GQ.yaml +1 -0
  109. data/lib/countries/data/countries/GR.yaml +1 -0
  110. data/lib/countries/data/countries/GS.yaml +1 -0
  111. data/lib/countries/data/countries/GT.yaml +1 -0
  112. data/lib/countries/data/countries/GU.yaml +1 -0
  113. data/lib/countries/data/countries/GW.yaml +1 -0
  114. data/lib/countries/data/countries/GY.yaml +1 -0
  115. data/lib/countries/data/countries/HK.yaml +1 -0
  116. data/lib/countries/data/countries/HM.yaml +1 -0
  117. data/lib/countries/data/countries/HN.yaml +1 -0
  118. data/lib/countries/data/countries/HR.yaml +1 -0
  119. data/lib/countries/data/countries/HT.yaml +1 -0
  120. data/lib/countries/data/countries/HU.yaml +1 -0
  121. data/lib/countries/data/countries/ID.yaml +2 -0
  122. data/lib/countries/data/countries/IE.yaml +1 -0
  123. data/lib/countries/data/countries/IL.yaml +1 -0
  124. data/lib/countries/data/countries/IM.yaml +1 -0
  125. data/lib/countries/data/countries/IN.yaml +2 -0
  126. data/lib/countries/data/countries/IO.yaml +1 -0
  127. data/lib/countries/data/countries/IQ.yaml +1 -0
  128. data/lib/countries/data/countries/IR.yaml +1 -0
  129. data/lib/countries/data/countries/IS.yaml +1 -0
  130. data/lib/countries/data/countries/IT.yaml +3 -0
  131. data/lib/countries/data/countries/JE.yaml +1 -0
  132. data/lib/countries/data/countries/JM.yaml +1 -0
  133. data/lib/countries/data/countries/JO.yaml +1 -0
  134. data/lib/countries/data/countries/JP.yaml +3 -0
  135. data/lib/countries/data/countries/KE.yaml +1 -0
  136. data/lib/countries/data/countries/KG.yaml +1 -0
  137. data/lib/countries/data/countries/KH.yaml +1 -0
  138. data/lib/countries/data/countries/KI.yaml +1 -0
  139. data/lib/countries/data/countries/KM.yaml +1 -0
  140. data/lib/countries/data/countries/KN.yaml +1 -0
  141. data/lib/countries/data/countries/KP.yaml +1 -0
  142. data/lib/countries/data/countries/KR.yaml +2 -0
  143. data/lib/countries/data/countries/KW.yaml +1 -0
  144. data/lib/countries/data/countries/KY.yaml +1 -0
  145. data/lib/countries/data/countries/KZ.yaml +1 -0
  146. data/lib/countries/data/countries/LA.yaml +1 -0
  147. data/lib/countries/data/countries/LB.yaml +1 -0
  148. data/lib/countries/data/countries/LC.yaml +1 -0
  149. data/lib/countries/data/countries/LI.yaml +1 -0
  150. data/lib/countries/data/countries/LK.yaml +1 -0
  151. data/lib/countries/data/countries/LR.yaml +1 -0
  152. data/lib/countries/data/countries/LS.yaml +1 -0
  153. data/lib/countries/data/countries/LT.yaml +1 -0
  154. data/lib/countries/data/countries/LU.yaml +1 -0
  155. data/lib/countries/data/countries/LV.yaml +1 -0
  156. data/lib/countries/data/countries/LY.yaml +1 -0
  157. data/lib/countries/data/countries/MA.yaml +1 -0
  158. data/lib/countries/data/countries/MC.yaml +1 -0
  159. data/lib/countries/data/countries/MD.yaml +1 -0
  160. data/lib/countries/data/countries/ME.yaml +1 -0
  161. data/lib/countries/data/countries/MF.yaml +1 -0
  162. data/lib/countries/data/countries/MG.yaml +1 -0
  163. data/lib/countries/data/countries/MH.yaml +1 -0
  164. data/lib/countries/data/countries/MK.yaml +1 -0
  165. data/lib/countries/data/countries/ML.yaml +1 -0
  166. data/lib/countries/data/countries/MM.yaml +1 -0
  167. data/lib/countries/data/countries/MN.yaml +1 -0
  168. data/lib/countries/data/countries/MO.yaml +1 -0
  169. data/lib/countries/data/countries/MP.yaml +1 -0
  170. data/lib/countries/data/countries/MQ.yaml +1 -0
  171. data/lib/countries/data/countries/MR.yaml +1 -0
  172. data/lib/countries/data/countries/MS.yaml +1 -0
  173. data/lib/countries/data/countries/MT.yaml +1 -0
  174. data/lib/countries/data/countries/MU.yaml +1 -0
  175. data/lib/countries/data/countries/MV.yaml +1 -0
  176. data/lib/countries/data/countries/MW.yaml +1 -0
  177. data/lib/countries/data/countries/MX.yaml +2 -0
  178. data/lib/countries/data/countries/MY.yaml +1 -0
  179. data/lib/countries/data/countries/MZ.yaml +1 -0
  180. data/lib/countries/data/countries/NA.yaml +1 -0
  181. data/lib/countries/data/countries/NC.yaml +1 -0
  182. data/lib/countries/data/countries/NE.yaml +1 -0
  183. data/lib/countries/data/countries/NF.yaml +1 -0
  184. data/lib/countries/data/countries/NG.yaml +1 -0
  185. data/lib/countries/data/countries/NI.yaml +1 -0
  186. data/lib/countries/data/countries/NL.yaml +1 -0
  187. data/lib/countries/data/countries/NO.yaml +1 -0
  188. data/lib/countries/data/countries/NP.yaml +1 -0
  189. data/lib/countries/data/countries/NR.yaml +1 -0
  190. data/lib/countries/data/countries/NU.yaml +1 -0
  191. data/lib/countries/data/countries/NZ.yaml +1 -0
  192. data/lib/countries/data/countries/OM.yaml +1 -0
  193. data/lib/countries/data/countries/PA.yaml +1 -0
  194. data/lib/countries/data/countries/PE.yaml +1 -0
  195. data/lib/countries/data/countries/PF.yaml +1 -0
  196. data/lib/countries/data/countries/PG.yaml +1 -0
  197. data/lib/countries/data/countries/PH.yaml +1 -0
  198. data/lib/countries/data/countries/PK.yaml +1 -0
  199. data/lib/countries/data/countries/PL.yaml +1 -0
  200. data/lib/countries/data/countries/PM.yaml +1 -0
  201. data/lib/countries/data/countries/PN.yaml +1 -0
  202. data/lib/countries/data/countries/PR.yaml +1 -0
  203. data/lib/countries/data/countries/PS.yaml +1 -0
  204. data/lib/countries/data/countries/PT.yaml +1 -0
  205. data/lib/countries/data/countries/PW.yaml +1 -0
  206. data/lib/countries/data/countries/PY.yaml +1 -0
  207. data/lib/countries/data/countries/QA.yaml +1 -0
  208. data/lib/countries/data/countries/RE.yaml +1 -0
  209. data/lib/countries/data/countries/RO.yaml +1 -0
  210. data/lib/countries/data/countries/RS.yaml +1 -0
  211. data/lib/countries/data/countries/RU.yaml +2 -0
  212. data/lib/countries/data/countries/RW.yaml +1 -0
  213. data/lib/countries/data/countries/SA.yaml +2 -0
  214. data/lib/countries/data/countries/SB.yaml +1 -0
  215. data/lib/countries/data/countries/SC.yaml +1 -0
  216. data/lib/countries/data/countries/SD.yaml +1 -0
  217. data/lib/countries/data/countries/SE.yaml +1 -0
  218. data/lib/countries/data/countries/SG.yaml +1 -0
  219. data/lib/countries/data/countries/SH.yaml +1 -0
  220. data/lib/countries/data/countries/SI.yaml +1 -0
  221. data/lib/countries/data/countries/SJ.yaml +1 -0
  222. data/lib/countries/data/countries/SK.yaml +1 -0
  223. data/lib/countries/data/countries/SL.yaml +1 -0
  224. data/lib/countries/data/countries/SM.yaml +1 -0
  225. data/lib/countries/data/countries/SN.yaml +1 -0
  226. data/lib/countries/data/countries/SO.yaml +1 -0
  227. data/lib/countries/data/countries/SR.yaml +1 -0
  228. data/lib/countries/data/countries/SS.yaml +1 -0
  229. data/lib/countries/data/countries/ST.yaml +1 -0
  230. data/lib/countries/data/countries/SV.yaml +1 -0
  231. data/lib/countries/data/countries/SX.yaml +1 -0
  232. data/lib/countries/data/countries/SY.yaml +1 -0
  233. data/lib/countries/data/countries/SZ.yaml +1 -0
  234. data/lib/countries/data/countries/TC.yaml +1 -0
  235. data/lib/countries/data/countries/TD.yaml +1 -0
  236. data/lib/countries/data/countries/TF.yaml +1 -0
  237. data/lib/countries/data/countries/TG.yaml +1 -0
  238. data/lib/countries/data/countries/TH.yaml +1 -0
  239. data/lib/countries/data/countries/TJ.yaml +1 -0
  240. data/lib/countries/data/countries/TK.yaml +1 -0
  241. data/lib/countries/data/countries/TL.yaml +1 -0
  242. data/lib/countries/data/countries/TM.yaml +1 -0
  243. data/lib/countries/data/countries/TN.yaml +1 -0
  244. data/lib/countries/data/countries/TO.yaml +1 -0
  245. data/lib/countries/data/countries/TR.yaml +2 -0
  246. data/lib/countries/data/countries/TT.yaml +1 -0
  247. data/lib/countries/data/countries/TV.yaml +1 -0
  248. data/lib/countries/data/countries/TW.yaml +2 -1
  249. data/lib/countries/data/countries/TZ.yaml +1 -0
  250. data/lib/countries/data/countries/UA.yaml +1 -0
  251. data/lib/countries/data/countries/UG.yaml +1 -0
  252. data/lib/countries/data/countries/UM.yaml +1 -0
  253. data/lib/countries/data/countries/US.yaml +3 -0
  254. data/lib/countries/data/countries/UY.yaml +1 -0
  255. data/lib/countries/data/countries/UZ.yaml +1 -0
  256. data/lib/countries/data/countries/VA.yaml +1 -0
  257. data/lib/countries/data/countries/VC.yaml +1 -0
  258. data/lib/countries/data/countries/VE.yaml +1 -0
  259. data/lib/countries/data/countries/VG.yaml +1 -0
  260. data/lib/countries/data/countries/VI.yaml +1 -0
  261. data/lib/countries/data/countries/VN.yaml +1 -0
  262. data/lib/countries/data/countries/VU.yaml +1 -0
  263. data/lib/countries/data/countries/WF.yaml +1 -0
  264. data/lib/countries/data/countries/WS.yaml +1 -0
  265. data/lib/countries/data/countries/YE.yaml +1 -0
  266. data/lib/countries/data/countries/YT.yaml +1 -0
  267. data/lib/countries/data/countries/ZA.yaml +2 -0
  268. data/lib/countries/data/countries/ZM.yaml +1 -0
  269. data/lib/countries/data/countries/ZW.yaml +1 -0
  270. data/lib/countries/data/locales_methods.rb +23 -0
  271. data/lib/countries/data/subdivision_methods.rb +30 -0
  272. data/lib/countries/data/subdivisions/AD.yaml +7 -0
  273. data/lib/countries/data/subdivisions/AE.yaml +18 -0
  274. data/lib/countries/data/subdivisions/AF.yaml +167 -2
  275. data/lib/countries/data/subdivisions/AG.yaml +9 -0
  276. data/lib/countries/data/subdivisions/AL.yaml +57 -0
  277. data/lib/countries/data/subdivisions/AM.yaml +34 -0
  278. data/lib/countries/data/subdivisions/AO.yaml +36 -0
  279. data/lib/countries/data/subdivisions/AR.yaml +46 -0
  280. data/lib/countries/data/subdivisions/AT.yaml +28 -0
  281. data/lib/countries/data/subdivisions/AU.yaml +29 -0
  282. data/lib/countries/data/subdivisions/AZ.yaml +239 -0
  283. data/lib/countries/data/subdivisions/BA.yaml +5 -0
  284. data/lib/countries/data/subdivisions/BB.yaml +4 -0
  285. data/lib/countries/data/subdivisions/BD.yaml +139 -0
  286. data/lib/countries/data/subdivisions/BE.yaml +34 -0
  287. data/lib/countries/data/subdivisions/BF.yaml +56 -0
  288. data/lib/countries/data/subdivisions/BG.yaml +30 -0
  289. data/lib/countries/data/subdivisions/BH.yaml +13 -0
  290. data/lib/countries/data/subdivisions/BI.yaml +54 -0
  291. data/lib/countries/data/subdivisions/BJ.yaml +22 -0
  292. data/lib/countries/data/subdivisions/BN.yaml +9 -0
  293. data/lib/countries/data/subdivisions/BO.yaml +35 -0
  294. data/lib/countries/data/subdivisions/BQ.yaml +4 -0
  295. data/lib/countries/data/subdivisions/BR.yaml +14 -0
  296. data/lib/countries/data/subdivisions/BS.yaml +24 -0
  297. data/lib/countries/data/subdivisions/BT.yaml +24 -0
  298. data/lib/countries/data/subdivisions/BW.yaml +24 -0
  299. data/lib/countries/data/subdivisions/BY.yaml +5 -0
  300. data/lib/countries/data/subdivisions/BZ.yaml +3 -0
  301. data/lib/countries/data/subdivisions/CA.yaml +24 -0
  302. data/lib/countries/data/subdivisions/CD.yaml +77 -0
  303. data/lib/countries/data/subdivisions/CF.yaml +15 -0
  304. data/lib/countries/data/subdivisions/CG.yaml +18 -0
  305. data/lib/countries/data/subdivisions/CH.yaml +92 -0
  306. data/lib/countries/data/subdivisions/CI.yaml +65 -0
  307. data/lib/countries/data/subdivisions/CL.yaml +45 -2
  308. data/lib/countries/data/subdivisions/CM.yaml +22 -0
  309. data/lib/countries/data/subdivisions/CN.yaml +98 -0
  310. data/lib/countries/data/subdivisions/CO.yaml +68 -0
  311. data/lib/countries/data/subdivisions/CR.yaml +14 -0
  312. data/lib/countries/data/subdivisions/CU.yaml +42 -0
  313. data/lib/countries/data/subdivisions/CV.yaml +32 -0
  314. data/lib/countries/data/subdivisions/CY.yaml +18 -0
  315. data/lib/countries/data/subdivisions/CZ.yaml +227 -0
  316. data/lib/countries/data/subdivisions/DE.yaml +31 -0
  317. data/lib/countries/data/subdivisions/DJ.yaml +16 -0
  318. data/lib/countries/data/subdivisions/DK.yaml +13 -0
  319. data/lib/countries/data/subdivisions/DM.yaml +1 -0
  320. data/lib/countries/data/subdivisions/DO.yaml +102 -0
  321. data/lib/countries/data/subdivisions/DZ.yaml +104 -0
  322. data/lib/countries/data/subdivisions/EC.yaml +72 -0
  323. data/lib/countries/data/subdivisions/EE.yaml +6 -0
  324. data/lib/countries/data/subdivisions/EG.yaml +54 -0
  325. data/lib/countries/data/subdivisions/ER.yaml +2 -0
  326. data/lib/countries/data/subdivisions/ES.yaml +252 -0
  327. data/lib/countries/data/subdivisions/ET.yaml +27 -0
  328. data/lib/countries/data/subdivisions/FI.yaml +78 -0
  329. data/lib/countries/data/subdivisions/FJ.yaml +30 -0
  330. data/lib/countries/data/subdivisions/FM.yaml +11 -0
  331. data/lib/countries/data/subdivisions/FR.yaml +332 -1
  332. data/lib/countries/data/subdivisions/GA.yaml +24 -0
  333. data/lib/countries/data/subdivisions/GB.yaml +488 -0
  334. data/lib/countries/data/subdivisions/GD.yaml +10 -0
  335. data/lib/countries/data/subdivisions/GE.yaml +34 -0
  336. data/lib/countries/data/subdivisions/GH.yaml +79 -0
  337. data/lib/countries/data/subdivisions/GL.yaml +58 -0
  338. data/lib/countries/data/subdivisions/GM.yaml +10 -0
  339. data/lib/countries/data/subdivisions/GN.yaml +65 -0
  340. data/lib/countries/data/subdivisions/GQ.yaml +36 -0
  341. data/lib/countries/data/subdivisions/GR.yaml +41 -0
  342. data/lib/countries/data/subdivisions/GW.yaml +24 -0
  343. data/lib/countries/data/subdivisions/GY.yaml +31 -0
  344. data/lib/countries/data/subdivisions/HN.yaml +21 -0
  345. data/lib/countries/data/subdivisions/HR.yaml +82 -0
  346. data/lib/countries/data/subdivisions/HT.yaml +14 -0
  347. data/lib/countries/data/subdivisions/HU.yaml +94 -0
  348. data/lib/countries/data/subdivisions/ID.yaml +99 -0
  349. data/lib/countries/data/subdivisions/IE.yaml +39 -0
  350. data/lib/countries/data/subdivisions/IL.yaml +15 -0
  351. data/lib/countries/data/subdivisions/IN.yaml +210 -0
  352. data/lib/countries/data/subdivisions/IQ.yaml +59 -0
  353. data/lib/countries/data/subdivisions/IR.yaml +2 -0
  354. data/lib/countries/data/subdivisions/IS.yaml +560 -0
  355. data/lib/countries/data/subdivisions/IT.yaml +321 -0
  356. data/lib/countries/data/subdivisions/JM.yaml +22 -0
  357. data/lib/countries/data/subdivisions/JO.yaml +16 -0
  358. data/lib/countries/data/subdivisions/JP.yaml +42 -0
  359. data/lib/countries/data/subdivisions/KE.yaml +298 -0
  360. data/lib/countries/data/subdivisions/KG.yaml +28 -0
  361. data/lib/countries/data/subdivisions/KH.yaml +108 -0
  362. data/lib/countries/data/subdivisions/KI.yaml +6 -0
  363. data/lib/countries/data/subdivisions/KM.yaml +4 -0
  364. data/lib/countries/data/subdivisions/KN.yaml +6 -0
  365. data/lib/countries/data/subdivisions/KP.yaml +42 -0
  366. data/lib/countries/data/subdivisions/KR.yaml +36 -0
  367. data/lib/countries/data/subdivisions/KW.yaml +5 -0
  368. data/lib/countries/data/subdivisions/KZ.yaml +113 -0
  369. data/lib/countries/data/subdivisions/LA.yaml +49 -0
  370. data/lib/countries/data/subdivisions/LB.yaml +28 -0
  371. data/lib/countries/data/subdivisions/LC.yaml +6 -0
  372. data/lib/countries/data/subdivisions/LI.yaml +37 -0
  373. data/lib/countries/data/subdivisions/LK.yaml +67 -0
  374. data/lib/countries/data/subdivisions/LR.yaml +16 -0
  375. data/lib/countries/data/subdivisions/LS.yaml +23 -0
  376. data/lib/countries/data/subdivisions/LT.yaml +315 -0
  377. data/lib/countries/data/subdivisions/LU.yaml +31 -0
  378. data/lib/countries/data/subdivisions/LV.yaml +83 -0
  379. data/lib/countries/data/subdivisions/LY.yaml +16 -0
  380. data/lib/countries/data/subdivisions/MA.yaml +827 -12
  381. data/lib/countries/data/subdivisions/MC.yaml +47 -0
  382. data/lib/countries/data/subdivisions/MD.yaml +41 -0
  383. data/lib/countries/data/subdivisions/ME.yaml +83 -0
  384. data/lib/countries/data/subdivisions/MG.yaml +21 -0
  385. data/lib/countries/data/subdivisions/MH.yaml +70 -0
  386. data/lib/countries/data/subdivisions/MK.yaml +505 -0
  387. data/lib/countries/data/subdivisions/ML.yaml +33 -0
  388. data/lib/countries/data/subdivisions/MM.yaml +51 -0
  389. data/lib/countries/data/subdivisions/MN.yaml +94 -0
  390. data/lib/countries/data/subdivisions/MR.yaml +32 -0
  391. data/lib/countries/data/subdivisions/MT.yaml +126 -0
  392. data/lib/countries/data/subdivisions/MU.yaml +21 -0
  393. data/lib/countries/data/subdivisions/MV.yaml +20 -0
  394. data/lib/countries/data/subdivisions/MW.yaml +52 -0
  395. data/lib/countries/data/subdivisions/MX.yaml +23 -0
  396. data/lib/countries/data/subdivisions/MY.yaml +24 -0
  397. data/lib/countries/data/subdivisions/MZ.yaml +20 -0
  398. data/lib/countries/data/subdivisions/NA.yaml +28 -0
  399. data/lib/countries/data/subdivisions/NE.yaml +9 -0
  400. data/lib/countries/data/subdivisions/NG.yaml +89 -0
  401. data/lib/countries/data/subdivisions/NI.yaml +25 -0
  402. data/lib/countries/data/subdivisions/NL.yaml +24 -0
  403. data/lib/countries/data/subdivisions/NO.yaml +138 -1
  404. data/lib/countries/data/subdivisions/NP.yaml +9 -0
  405. data/lib/countries/data/subdivisions/NR.yaml +19 -0
  406. data/lib/countries/data/subdivisions/NZ.yaml +34 -0
  407. data/lib/countries/data/subdivisions/OM.yaml +10 -0
  408. data/lib/countries/data/subdivisions/PA.yaml +27 -0
  409. data/lib/countries/data/subdivisions/PE.yaml +24 -0
  410. data/lib/countries/data/subdivisions/PG.yaml +46 -0
  411. data/lib/countries/data/subdivisions/PH.yaml +293 -0
  412. data/lib/countries/data/subdivisions/PK.yaml +22 -0
  413. data/lib/countries/data/subdivisions/PL.yaml +141 -0
  414. data/lib/countries/data/subdivisions/PS.yaml +41 -0
  415. data/lib/countries/data/subdivisions/PT.yaml +36 -0
  416. data/lib/countries/data/subdivisions/PW.yaml +24 -0
  417. data/lib/countries/data/subdivisions/PY.yaml +21 -0
  418. data/lib/countries/data/subdivisions/QA.yaml +26 -0
  419. data/lib/countries/data/subdivisions/RO.yaml +189 -0
  420. data/lib/countries/data/subdivisions/RS.yaml +112 -0
  421. data/lib/countries/data/subdivisions/RU.yaml +123 -0
  422. data/lib/countries/data/subdivisions/RW.yaml +7 -0
  423. data/lib/countries/data/subdivisions/SA.yaml +38 -0
  424. data/lib/countries/data/subdivisions/SB.yaml +11 -0
  425. data/lib/countries/data/subdivisions/SC.yaml +45 -0
  426. data/lib/countries/data/subdivisions/SD.yaml +15 -0
  427. data/lib/countries/data/subdivisions/SE.yaml +42 -0
  428. data/lib/countries/data/subdivisions/SG.yaml +8 -0
  429. data/lib/countries/data/subdivisions/SH.yaml +6 -0
  430. data/lib/countries/data/subdivisions/SI.yaml +735 -0
  431. data/lib/countries/data/subdivisions/SK.yaml +22 -0
  432. data/lib/countries/data/subdivisions/SL.yaml +7 -0
  433. data/lib/countries/data/subdivisions/SM.yaml +19 -0
  434. data/lib/countries/data/subdivisions/SN.yaml +43 -0
  435. data/lib/countries/data/subdivisions/SO.yaml +71 -0
  436. data/lib/countries/data/subdivisions/SR.yaml +17 -0
  437. data/lib/countries/data/subdivisions/SS.yaml +4 -0
  438. data/lib/countries/data/subdivisions/ST.yaml +127 -0
  439. data/lib/countries/data/subdivisions/SV.yaml +20 -0
  440. data/lib/countries/data/subdivisions/SY.yaml +53 -0
  441. data/lib/countries/data/subdivisions/SZ.yaml +18 -0
  442. data/lib/countries/data/subdivisions/TD.yaml +51 -0
  443. data/lib/countries/data/subdivisions/TG.yaml +13 -0
  444. data/lib/countries/data/subdivisions/TH.yaml +231 -0
  445. data/lib/countries/data/subdivisions/TJ.yaml +15 -0
  446. data/lib/countries/data/subdivisions/TL.yaml +38 -0
  447. data/lib/countries/data/subdivisions/TM.yaml +15 -0
  448. data/lib/countries/data/subdivisions/TN.yaml +25 -0
  449. data/lib/countries/data/subdivisions/TO.yaml +1 -0
  450. data/lib/countries/data/subdivisions/TR.yaml +93 -0
  451. data/lib/countries/data/subdivisions/TT.yaml +25 -0
  452. data/lib/countries/data/subdivisions/TV.yaml +25 -0
  453. data/lib/countries/data/subdivisions/TW.yaml +106 -0
  454. data/lib/countries/data/subdivisions/TZ.yaml +38 -0
  455. data/lib/countries/data/subdivisions/UA.yaml +86 -4
  456. data/lib/countries/data/subdivisions/UG.yaml +262 -0
  457. data/lib/countries/data/subdivisions/UM.yaml +4 -0
  458. data/lib/countries/data/subdivisions/US.yaml +118 -1
  459. data/lib/countries/data/subdivisions/UY.yaml +27 -0
  460. data/lib/countries/data/subdivisions/UZ.yaml +65 -0
  461. data/lib/countries/data/subdivisions/VC.yaml +6 -0
  462. data/lib/countries/data/subdivisions/VE.yaml +33 -0
  463. data/lib/countries/data/subdivisions/VN.yaml +131 -0
  464. data/lib/countries/data/subdivisions/VU.yaml +8 -0
  465. data/lib/countries/data/subdivisions/WS.yaml +18 -0
  466. data/lib/countries/data/subdivisions/YE.yaml +16 -0
  467. data/lib/countries/data/subdivisions/ZA.yaml +5 -0
  468. data/lib/countries/data/subdivisions/ZM.yaml +24 -0
  469. data/lib/countries/data/subdivisions/ZW.yaml +21 -0
  470. data/lib/countries/data/translations/countries-lt.yaml +1 -1
  471. data/lib/countries/data/translations/countries-pt_BR.yaml +1 -1
  472. data/lib/countries/data.rb +19 -50
  473. data/lib/countries/global.rb +0 -1
  474. data/lib/countries/iso3166.rb +3 -0
  475. data/lib/countries/sources/cldr/subdivision.rb +1 -1
  476. data/lib/countries/structure.rb +1 -0
  477. data/lib/countries/subdivision.rb +5 -0
  478. data/lib/countries/tasks/postal_codes.rake +5 -1
  479. data/lib/countries/version.rb +1 -1
  480. data/spec/country_spec.rb +123 -22
  481. data/spec/data_spec.rb +12 -8
  482. data/spec/spec_helper.rb +4 -0
  483. data/spec/subdivision_spec.rb +8 -0
  484. metadata +23 -16
  485. data/.rubocop_todo.yml +0 -19
  486. data/lib/countries/tasks/geocoding.rake +0 -106
@@ -161,6 +161,7 @@ FS:
161
161
  mk: Фристејт
162
162
  'no': Free State
163
163
  yo_BJ: Free State
164
+ ga: an Saorstát Oráisteach
164
165
  comments:
165
166
  type: province
166
167
  GP:
@@ -241,6 +242,7 @@ GP:
241
242
  mk: Гаутенг
242
243
  'no': Gauteng
243
244
  yo_BJ: Gauteng
245
+ hu: Gauteng
244
246
  comments:
245
247
  type: province
246
248
  LP:
@@ -320,6 +322,7 @@ LP:
320
322
  mk: Лимпопо
321
323
  'no': Limpopo
322
324
  yo_BJ: Limpopo
325
+ hu: Limpopo (tartomány)
323
326
  comments:
324
327
  type: province
325
328
  MP:
@@ -399,6 +402,7 @@ MP:
399
402
  mk: Мпумаланга
400
403
  'no': Mpumalanga
401
404
  yo_BJ: Mpumalanga
405
+ hu: Mpumalanga
402
406
  comments:
403
407
  type: province
404
408
  NC:
@@ -478,6 +482,7 @@ NC:
478
482
  mk: Северен Кејп
479
483
  'no': Northern Cape
480
484
  yo_BJ: Northern Cape
485
+ gl: Cabo Setentrional
481
486
  comments:
482
487
  type: province
483
488
  NW:
@@ -58,6 +58,10 @@
58
58
  ccp: Western
59
59
  hy: Արևմտյան պրովինցիա
60
60
  'no': Western
61
+ ca: Província Occidental
62
+ fa: استان غربی (زامبیا)
63
+ he: מחוז המערב
64
+ zu: Western Province, Zambiya
61
65
  comments:
62
66
  type: province
63
67
  '02':
@@ -120,6 +124,7 @@
120
124
  ccp: Central
121
125
  cs: Centrální provincie (Zambie)
122
126
  'no': Central
127
+ fa: استان مرکزی، زامبیا
123
128
  comments:
124
129
  type: province
125
130
  '03':
@@ -179,6 +184,9 @@
179
184
  zh: 东方省
180
185
  ccp: "\U0001111B\U0001112A\U00011107\U00011134\U0001111F\U0001112C\U00011107\U00011134\U00011108\U0001112C"
181
186
  'no': Eastern
187
+ ca: Província de l’Est
188
+ fa: استان شرقی (زامبیا)
189
+ he: האזור המזרחי
182
190
  comments:
183
191
  type: province
184
192
  '04':
@@ -239,6 +247,9 @@
239
247
  ccp: "\U00011123\U0001112A\U00011120\U0001111B\U0001112A\U00011123"
240
248
  ca: província de Luapula
241
249
  'no': Luapula
250
+ cs: Provincie Luapula
251
+ fa: استان لوآپولا
252
+ hu: Luapula
242
253
  comments:
243
254
  type: province
244
255
  '05':
@@ -297,6 +308,8 @@
297
308
  zh: 北方省
298
309
  ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134\U0001111F\U0001112C\U00011107\U00011134\U00011108\U0001112C"
299
310
  'no': Northern
311
+ fa: استان شمالی (زامبیا)
312
+ he: אזור הצפון
300
313
  comments:
301
314
  type: province
302
315
  '06':
@@ -358,6 +371,8 @@
358
371
  ccp: "\U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134-\U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134\U0001111F\U0001112C\U00011107\U00011134\U00011108\U0001112C"
359
372
  yue: 西北省
360
373
  'no': North-Western
374
+ ca: Província del Nord-oest
375
+ fa: استان شمال غربی (زامبیا)
361
376
  comments:
362
377
  type: province
363
378
  '07':
@@ -418,6 +433,9 @@
418
433
  zh: 南部省
419
434
  ccp: "\U00011118\U00011127\U0001110A\U00011128\U0001111A\U00011134\U0001111F\U0001112C\U00011107\U00011134\U00011108\U0001112C"
420
435
  'no': Southern
436
+ ca: Província Meridional
437
+ fa: استان جنوبی (زامبیا)
438
+ ga: Cúige an Deiscirt
421
439
  comments:
422
440
  type: province
423
441
  '08':
@@ -480,6 +498,7 @@
480
498
  ccp: "\U00011107\U0001112E\U0001111B\U0001112C\U00011122\U00011134\U0001111D\U0001112C\U00011123\U00011134\U00011111\U00011134"
481
499
  ca: província de Copperbelt
482
500
  'no': Copperbelt
501
+ he: מחוז קופרבלט
483
502
  comments:
484
503
  type: province
485
504
  '09':
@@ -538,6 +557,9 @@
538
557
  zh: 卢萨卡省
539
558
  ccp: "\U00011123\U0001112A\U00011125\U00011107"
540
559
  'no': Lusaka
560
+ ca: Lusaka
561
+ cy: Talaith Lusaka
562
+ fa: استان لوساکا
541
563
  comments:
542
564
  type: province
543
565
  '10':
@@ -591,5 +613,7 @@
591
613
  zh: 穆欽加省
592
614
  ccp: "\U0001111F\U0001112A\U0001110C\U00011128\U00011101\U00011109"
593
615
  'no': Muchinga
616
+ cy: Talaith Muchinga
617
+ fa: استان موچینگا
594
618
  comments:
595
619
  type: province
@@ -15,8 +15,12 @@ BU:
15
15
  ru: Булавайо
16
16
  ceb: Bulawayo Province
17
17
  ar: إقليم بولاوايو
18
+ ja: ブラワヨ
18
19
  ccp: "\U0001111D\U0001112A\U00011123\U00011124\U00011103\U0001112E"
19
20
  be: Булавая
21
+ cy: Talaith Bulawayo
22
+ fr: province de Bulawayo
23
+ zh: 布拉瓦约省
20
24
  comments:
21
25
  type: province
22
26
  HA:
@@ -43,6 +47,12 @@ HA:
43
47
  nb: Harare Province
44
48
  ne: हरारे प्रदेश
45
49
  'no': Harare Province
50
+ cy: Talaith Harare
51
+ fa: استان هراره
52
+ lv: Harare
53
+ uk: Хараре
54
+ zh: 哈拉雷省
55
+ zu: Harare, Isifundazwe
46
56
  comments:
47
57
  type: province
48
58
  MA:
@@ -106,6 +116,7 @@ MA:
106
116
  sr_Latn: Manikalend
107
117
  ccp: "\U0001111F\U00011127\U0001111A\U00011128\U00011107\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134"
108
118
  'no': Manicaland
119
+ zu: Manicaland
109
120
  comments:
110
121
  type: province
111
122
  MC:
@@ -169,6 +180,7 @@ MC:
169
180
  ccp: "\U0001111F\U00011125\U0001112E\U0001111A\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
170
181
  \U00011125\U0001112C\U0001111A\U00011134\U00011111\U00011133\U00011122\U00011123\U00011134"
171
182
  'no': Mashonaland Central
183
+ zu: Mashonaland Central
172
184
  comments:
173
185
  type: province
174
186
  ME:
@@ -233,6 +245,7 @@ ME:
233
245
  \U0001111B\U0001112A\U00011107\U00011134"
234
246
  he: משונאלנד מזרח פרובינציה
235
247
  'no': Mashonaland East
248
+ zu: Mashonaland East
236
249
  comments:
237
250
  type: province
238
251
  MI:
@@ -295,6 +308,7 @@ MI:
295
308
  sr_Latn: Midlends
296
309
  ccp: "\U0001111F\U00011128\U00011116\U00011134\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134\U00011125\U00011134"
297
310
  'no': Midlands
311
+ zu: Midlands (Isifundazwe)
298
312
  comments:
299
313
  type: province
300
314
  MN:
@@ -359,6 +373,7 @@ MN:
359
373
  ccp: "\U0001111F\U00011111\U0001111D\U00011128\U00011123\U00011128\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
360
374
  \U00011105\U0001112A\U00011116\U00011133\U00011126\U00011127\U00011122\U00011134"
361
375
  'no': Matabeleland North
376
+ zu: Matabeleland North
362
377
  comments:
363
378
  type: province
364
379
  MS:
@@ -422,6 +437,8 @@ MS:
422
437
  ccp: "\U0001111F\U00011111\U0001111D\U00011128\U00011123\U00011128\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
423
438
  \U00011118\U00011127\U0001110A\U00011128\U0001111A\U00011134"
424
439
  'no': Matabeleland South
440
+ hy: Հարավային Մատաբելելենդ
441
+ zu: Matabeleland South
425
442
  comments:
426
443
  type: province
427
444
  MV:
@@ -484,6 +501,8 @@ MV:
484
501
  sr_Latn: Mašvingo
485
502
  ccp: "\U0001111F\U0001110C\U00011134\U0001111E\U00011128\U00011101\U00011109\U0001112E"
486
503
  'no': Masvingo
504
+ hy: Մասվինգո
505
+ zu: Masvingo (Isifundazwe)
487
506
  comments:
488
507
  type: province
489
508
  MW:
@@ -547,5 +566,7 @@ MW:
547
566
  ccp: "\U0001111F\U00011125\U0001112E\U0001111A\U00011123\U00011133\U00011120\U0001111A\U00011133\U00011113\U00011134
548
567
  \U0001111B\U00011127\U0001110F\U00011128\U0001111F\U00011134"
549
568
  'no': Mashonaland West
569
+ he: משונלנד-מערב
570
+ zu: Mashonaland West
550
571
  comments:
551
572
  type: province
@@ -146,7 +146,7 @@ ME: Juodkalnija
146
146
  MF: San Martenas (Prancūzijos dalis)
147
147
  MG: Madagaskaras
148
148
  MH: Maršalo salos
149
- MK: North Macedonia
149
+ MK: Šiaurės Makedonija
150
150
  ML: Malis
151
151
  MM: Mianmaras
152
152
  MN: Mongolija
@@ -18,7 +18,7 @@ AT: Áustria
18
18
  AU: Austrália
19
19
  AW: Aruba
20
20
  AX: Ilhas Åland
21
- AZ: Azerbaidjão
21
+ AZ: Azerbaijão
22
22
  BA: Bósnia-Herzegóvina
23
23
  BB: Barbados
24
24
  BD: Bangladesh
@@ -3,6 +3,9 @@
3
3
  module ISO3166
4
4
  # Handles building the in memory store of countries data
5
5
  class Data
6
+ extend SubdivisionMethods
7
+ extend LocalesMethods
8
+
6
9
  @cache_dir = [File.dirname(__FILE__), 'cache']
7
10
  @cache = {}
8
11
  @loaded_country_codes = []
@@ -19,15 +22,13 @@ module ISO3166
19
22
  end
20
23
 
21
24
  class << self
22
-
23
25
  # Registers a new Country with custom data.
24
26
  # 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__.
25
27
  # Overriding an existing country will also remove it from the internal management of translations.
26
28
  def register(data)
27
29
  alpha2 = data[:alpha2].upcase
28
30
  @registered_data[alpha2] = deep_stringify_keys(data)
29
- @registered_data[alpha2]['translations'] = \
30
- Translations.new.merge(data['translations'] || {})
31
+ @registered_data[alpha2]['translations'] = Translations.new.merge(data['translations'] || {})
31
32
  @cache = cache.merge(@registered_data)
32
33
  end
33
34
 
@@ -70,26 +71,6 @@ module ISO3166
70
71
  File.join([@cache_dir] + file_array)
71
72
  end
72
73
 
73
- def subdivision_data(alpha2)
74
- file = subdivision_file_path(alpha2)
75
- data = File.exist?(file) ? YAML.load_file(file) : {}
76
- locales = ISO3166.configuration.locales.map(&:to_s)
77
- data.each_value{ |v| v['translations'] = v['translations'].slice(*locales)}
78
-
79
- return data
80
- end
81
-
82
- def subdivisions(alpha2)
83
- @subdivisions ||= {}
84
- @subdivisions[alpha2] ||= create_subdivisions(ISO3166::Data.subdivision_data(alpha2))
85
- end
86
-
87
- def create_subdivisions(subdivision_data)
88
- subdivision_data.each_with_object({}) do |(k, v), hash|
89
- hash[k] = Subdivision.new(v)
90
- end
91
- end
92
-
93
74
  private
94
75
 
95
76
  def load_data!
@@ -129,9 +110,7 @@ module ISO3166
129
110
  end
130
111
 
131
112
  def load_required?
132
- synchronized do
133
- @cache.empty?
134
- end
113
+ synchronized { @cache.empty? }
135
114
  end
136
115
 
137
116
  def cached_codes
@@ -147,44 +126,36 @@ module ISO3166
147
126
  !locales_to_load.empty? || !locales_to_remove.empty?
148
127
  end
149
128
 
150
- def locales_to_load
151
- requested_locales - loaded_locales
152
- end
153
-
154
- def locales_to_remove
155
- loaded_locales - requested_locales
156
- end
157
-
158
- def requested_locales
159
- ISO3166.configuration.locales.map { |l| l.to_s.downcase }
160
- end
161
-
162
- def loaded_locales
163
- ISO3166.configuration.loaded_locales.map { |l| l.to_s.downcase }
164
- end
165
-
166
129
  def load_translations(locale)
167
130
  synchronized do
168
131
  locale_names = load_cache(['locales', "#{locale}.json"])
169
132
  internal_codes.each do |alpha2|
170
- @cache[alpha2]['translations'] ||= Translations.new
171
- @cache[alpha2]['translations'][locale] = locale_names[alpha2].freeze
172
- @cache[alpha2]['translated_names'] = @cache[alpha2]['translations'].values.freeze
133
+ load_alpha2_translation_for_locale(alpha2, locale, locale_names)
173
134
  end
174
135
  ISO3166.configuration.loaded_locales << locale
175
136
  end
176
137
  end
177
138
 
139
+ def load_alpha2_translation_for_locale(alpha2, locale, locale_names)
140
+ @cache[alpha2]['translations'] ||= Translations.new
141
+ @cache[alpha2]['translations'][locale] = locale_names[alpha2].freeze
142
+ @cache[alpha2]['translated_names'] = @cache[alpha2]['translations'].values.freeze
143
+ end
144
+
178
145
  def unload_translations(locale)
179
146
  synchronized do
180
147
  internal_codes.each do |alpha2|
181
- @cache[alpha2]['translations'].delete(locale)
182
- @cache[alpha2]['translated_names'] = @cache[alpha2]['translations'].values.freeze
148
+ unload_alpha2_translation_for_locale(alpha2, locale)
183
149
  end
184
150
  ISO3166.configuration.loaded_locales.delete(locale)
185
151
  end
186
152
  end
187
153
 
154
+ def unload_alpha2_translation_for_locale(alpha2, locale)
155
+ @cache[alpha2]['translations'].delete(locale)
156
+ @cache[alpha2]['translated_names'] = @cache[alpha2]['translations'].values.freeze
157
+ end
158
+
188
159
  def load_cache(file_array)
189
160
  file_path = datafile_path(file_array)
190
161
  File.exist?(file_path) ? JSON.parse(File.binread(file_path)) : {}
@@ -192,9 +163,7 @@ module ISO3166
192
163
 
193
164
  def deep_stringify_keys(data)
194
165
  data.transform_keys!(&:to_s)
195
- data.transform_values! do |v|
196
- v.is_a?(Hash) ? deep_stringify_keys(v) : v
197
- end
166
+ data.transform_values! { |v| v.is_a?(Hash) ? deep_stringify_keys(v) : v }
198
167
 
199
168
  data
200
169
  end
@@ -15,5 +15,4 @@ require 'countries'
15
15
  # gem 'countries', require: 'countries/global'
16
16
  #
17
17
  class Country < ISO3166::Country
18
-
19
18
  end
@@ -4,9 +4,12 @@ require 'yaml'
4
4
  require 'json'
5
5
 
6
6
  require 'countries/configuration'
7
+ require 'countries/data/locales_methods'
8
+ require 'countries/data/subdivision_methods'
7
9
  require 'countries/data'
8
10
  require 'countries/structure'
9
11
  require 'countries/translations'
12
+ require 'countries/country/country_subdivision_methods'
10
13
  require 'countries/country/class_methods'
11
14
  require 'countries/country/finder_methods'
12
15
  require 'countries/country/emoji'
@@ -20,7 +20,7 @@ module Sources
20
20
  end
21
21
 
22
22
  def code
23
- type[2..-1].upcase
23
+ type[2..].upcase
24
24
  end
25
25
 
26
26
  def type
@@ -8,6 +8,7 @@ module ISO3166
8
8
  'continent' => nil,
9
9
  'country_code' => nil,
10
10
  'currency_code' => nil,
11
+ 'distance_unit' => nil,
11
12
  'gec' => nil,
12
13
  'geo' => {
13
14
  'latitude' => nil,
@@ -19,5 +19,10 @@ module ISO3166
19
19
  def [](attr_name)
20
20
  send attr_name
21
21
  end
22
+
23
+ # @return [Hash] A hash with the subdivision code as key and the hash of translated subdivision names ( locale => name ) as value.
24
+ def code_with_translations
25
+ { code => translations }
26
+ end
22
27
  end
23
28
  end
@@ -19,7 +19,11 @@ namespace :postal_codes do
19
19
  postal_code_format_index = data.find_index { |d| d[0] == 'postal_code_format' }
20
20
 
21
21
  response = URI.open("https://chromium-i18n.appspot.com/ssl-address/data/#{country_code}").read
22
- json = JSON.parse(response) rescue {}
22
+ json = begin
23
+ JSON.parse(response)
24
+ rescue StandardError
25
+ {}
26
+ end
23
27
  puts ' - Returned empty data. Skipping ' and next if json.empty?
24
28
 
25
29
  postal_code = ['postal_code', !json['zip'].nil?]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Countries
4
- VERSION = '5.4.0'.freeze
4
+ VERSION = '5.7.0'
5
5
  end