countries 5.1.2 → 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 (534) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +61 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.github/workflows/codeql-analysis.yml +3 -3
  5. data/.github/workflows/tests.yml +10 -13
  6. data/.gitignore +0 -1
  7. data/.rubocop.yml +17 -8
  8. data/CHANGELOG.md +97 -2
  9. data/Gemfile +1 -2
  10. data/Gemfile.lock +102 -0
  11. data/{README.markdown → README.md} +69 -14
  12. data/Rakefile +2 -3
  13. data/countries.gemspec +6 -5
  14. data/lib/countries/cache/countries.json +1 -1
  15. data/lib/countries/cache/locales/ab.json +1 -1
  16. data/lib/countries/cache/locales/ak.json +1 -1
  17. data/lib/countries/cache/locales/an.json +1 -1
  18. data/lib/countries/cache/locales/ay.json +1 -1
  19. data/lib/countries/cache/locales/ba.json +1 -1
  20. data/lib/countries/cache/locales/bi.json +1 -1
  21. data/lib/countries/cache/locales/ch.json +1 -1
  22. data/lib/countries/cache/locales/de.json +1 -1
  23. data/lib/countries/cache/locales/ee.json +1 -1
  24. data/lib/countries/cache/locales/en.json +1 -1
  25. data/lib/countries/cache/locales/fr.json +1 -1
  26. data/lib/countries/cache/locales/gn.json +1 -1
  27. data/lib/countries/cache/locales/ja.json +1 -1
  28. data/lib/countries/cache/locales/ki.json +1 -1
  29. data/lib/countries/cache/locales/kl.json +1 -1
  30. data/lib/countries/cache/locales/lt.json +1 -1
  31. data/lib/countries/cache/locales/pt-br.json +1 -1
  32. data/lib/countries/cache/locales/sd.json +1 -1
  33. data/lib/countries/cache/locales/sw.json +1 -1
  34. data/lib/countries/cache/locales/th.json +1 -1
  35. data/lib/countries/cache/locales/tk.json +1 -1
  36. data/lib/countries/cache/locales/tl.json +1 -1
  37. data/lib/countries/cache/locales/ve.json +1 -1
  38. data/lib/countries/cache/locales/xh.json +1 -1
  39. data/lib/countries/configuration.rb +1 -1
  40. data/lib/countries/country/class_methods.rb +25 -6
  41. data/lib/countries/country/country_subdivision_methods.rb +82 -0
  42. data/lib/countries/country/currency_methods.rb +0 -1
  43. data/lib/countries/country/finder_methods.rb +2 -4
  44. data/lib/countries/country.rb +27 -51
  45. data/lib/countries/data/countries/AD.yaml +1 -0
  46. data/lib/countries/data/countries/AE.yaml +1 -0
  47. data/lib/countries/data/countries/AF.yaml +1 -0
  48. data/lib/countries/data/countries/AG.yaml +1 -0
  49. data/lib/countries/data/countries/AI.yaml +1 -0
  50. data/lib/countries/data/countries/AL.yaml +1 -0
  51. data/lib/countries/data/countries/AM.yaml +1 -0
  52. data/lib/countries/data/countries/AO.yaml +1 -0
  53. data/lib/countries/data/countries/AQ.yaml +1 -0
  54. data/lib/countries/data/countries/AR.yaml +2 -0
  55. data/lib/countries/data/countries/AS.yaml +1 -0
  56. data/lib/countries/data/countries/AT.yaml +1 -0
  57. data/lib/countries/data/countries/AU.yaml +3 -0
  58. data/lib/countries/data/countries/AW.yaml +1 -0
  59. data/lib/countries/data/countries/AX.yaml +3 -0
  60. data/lib/countries/data/countries/AZ.yaml +1 -0
  61. data/lib/countries/data/countries/BA.yaml +1 -0
  62. data/lib/countries/data/countries/BB.yaml +1 -0
  63. data/lib/countries/data/countries/BD.yaml +1 -0
  64. data/lib/countries/data/countries/BE.yaml +1 -0
  65. data/lib/countries/data/countries/BF.yaml +1 -0
  66. data/lib/countries/data/countries/BG.yaml +1 -0
  67. data/lib/countries/data/countries/BH.yaml +1 -0
  68. data/lib/countries/data/countries/BI.yaml +1 -0
  69. data/lib/countries/data/countries/BJ.yaml +1 -0
  70. data/lib/countries/data/countries/BL.yaml +1 -0
  71. data/lib/countries/data/countries/BM.yaml +1 -0
  72. data/lib/countries/data/countries/BN.yaml +1 -0
  73. data/lib/countries/data/countries/BO.yaml +1 -0
  74. data/lib/countries/data/countries/BQ.yaml +1 -0
  75. data/lib/countries/data/countries/BR.yaml +2 -0
  76. data/lib/countries/data/countries/BS.yaml +1 -0
  77. data/lib/countries/data/countries/BT.yaml +1 -0
  78. data/lib/countries/data/countries/BV.yaml +1 -0
  79. data/lib/countries/data/countries/BW.yaml +1 -0
  80. data/lib/countries/data/countries/BY.yaml +1 -0
  81. data/lib/countries/data/countries/BZ.yaml +1 -0
  82. data/lib/countries/data/countries/CA.yaml +3 -0
  83. data/lib/countries/data/countries/CC.yaml +1 -0
  84. data/lib/countries/data/countries/CD.yaml +1 -0
  85. data/lib/countries/data/countries/CF.yaml +1 -0
  86. data/lib/countries/data/countries/CG.yaml +1 -0
  87. data/lib/countries/data/countries/CH.yaml +1 -0
  88. data/lib/countries/data/countries/CI.yaml +1 -0
  89. data/lib/countries/data/countries/CK.yaml +1 -0
  90. data/lib/countries/data/countries/CL.yaml +1 -0
  91. data/lib/countries/data/countries/CM.yaml +1 -0
  92. data/lib/countries/data/countries/CN.yaml +2 -0
  93. data/lib/countries/data/countries/CO.yaml +1 -0
  94. data/lib/countries/data/countries/CR.yaml +1 -0
  95. data/lib/countries/data/countries/CU.yaml +1 -0
  96. data/lib/countries/data/countries/CV.yaml +1 -0
  97. data/lib/countries/data/countries/CW.yaml +1 -0
  98. data/lib/countries/data/countries/CX.yaml +1 -0
  99. data/lib/countries/data/countries/CY.yaml +1 -0
  100. data/lib/countries/data/countries/CZ.yaml +1 -0
  101. data/lib/countries/data/countries/DE.yaml +3 -0
  102. data/lib/countries/data/countries/DJ.yaml +1 -0
  103. data/lib/countries/data/countries/DK.yaml +1 -0
  104. data/lib/countries/data/countries/DM.yaml +1 -0
  105. data/lib/countries/data/countries/DO.yaml +1 -0
  106. data/lib/countries/data/countries/DZ.yaml +1 -0
  107. data/lib/countries/data/countries/EC.yaml +1 -0
  108. data/lib/countries/data/countries/EE.yaml +1 -0
  109. data/lib/countries/data/countries/EG.yaml +1 -0
  110. data/lib/countries/data/countries/EH.yaml +1 -0
  111. data/lib/countries/data/countries/ER.yaml +1 -0
  112. data/lib/countries/data/countries/ES.yaml +1 -0
  113. data/lib/countries/data/countries/ET.yaml +1 -0
  114. data/lib/countries/data/countries/FI.yaml +1 -0
  115. data/lib/countries/data/countries/FJ.yaml +1 -0
  116. data/lib/countries/data/countries/FK.yaml +1 -0
  117. data/lib/countries/data/countries/FM.yaml +1 -0
  118. data/lib/countries/data/countries/FO.yaml +1 -0
  119. data/lib/countries/data/countries/FR.yaml +3 -0
  120. data/lib/countries/data/countries/GA.yaml +1 -0
  121. data/lib/countries/data/countries/GB.yaml +3 -0
  122. data/lib/countries/data/countries/GD.yaml +1 -0
  123. data/lib/countries/data/countries/GE.yaml +1 -0
  124. data/lib/countries/data/countries/GF.yaml +3 -0
  125. data/lib/countries/data/countries/GG.yaml +1 -0
  126. data/lib/countries/data/countries/GH.yaml +1 -0
  127. data/lib/countries/data/countries/GI.yaml +1 -0
  128. data/lib/countries/data/countries/GL.yaml +1 -0
  129. data/lib/countries/data/countries/GM.yaml +1 -0
  130. data/lib/countries/data/countries/GN.yaml +1 -0
  131. data/lib/countries/data/countries/GP.yaml +4 -1
  132. data/lib/countries/data/countries/GQ.yaml +1 -0
  133. data/lib/countries/data/countries/GR.yaml +1 -0
  134. data/lib/countries/data/countries/GS.yaml +1 -0
  135. data/lib/countries/data/countries/GT.yaml +1 -0
  136. data/lib/countries/data/countries/GU.yaml +1 -0
  137. data/lib/countries/data/countries/GW.yaml +1 -0
  138. data/lib/countries/data/countries/GY.yaml +1 -0
  139. data/lib/countries/data/countries/HK.yaml +1 -0
  140. data/lib/countries/data/countries/HM.yaml +1 -0
  141. data/lib/countries/data/countries/HN.yaml +1 -0
  142. data/lib/countries/data/countries/HR.yaml +2 -1
  143. data/lib/countries/data/countries/HT.yaml +1 -0
  144. data/lib/countries/data/countries/HU.yaml +1 -0
  145. data/lib/countries/data/countries/ID.yaml +2 -0
  146. data/lib/countries/data/countries/IE.yaml +1 -0
  147. data/lib/countries/data/countries/IL.yaml +1 -0
  148. data/lib/countries/data/countries/IM.yaml +1 -0
  149. data/lib/countries/data/countries/IN.yaml +2 -0
  150. data/lib/countries/data/countries/IO.yaml +1 -0
  151. data/lib/countries/data/countries/IQ.yaml +1 -0
  152. data/lib/countries/data/countries/IR.yaml +1 -0
  153. data/lib/countries/data/countries/IS.yaml +1 -0
  154. data/lib/countries/data/countries/IT.yaml +3 -0
  155. data/lib/countries/data/countries/JE.yaml +1 -0
  156. data/lib/countries/data/countries/JM.yaml +1 -0
  157. data/lib/countries/data/countries/JO.yaml +1 -0
  158. data/lib/countries/data/countries/JP.yaml +3 -0
  159. data/lib/countries/data/countries/KE.yaml +1 -0
  160. data/lib/countries/data/countries/KG.yaml +1 -0
  161. data/lib/countries/data/countries/KH.yaml +1 -0
  162. data/lib/countries/data/countries/KI.yaml +1 -0
  163. data/lib/countries/data/countries/KM.yaml +1 -0
  164. data/lib/countries/data/countries/KN.yaml +1 -0
  165. data/lib/countries/data/countries/KP.yaml +1 -0
  166. data/lib/countries/data/countries/KR.yaml +2 -0
  167. data/lib/countries/data/countries/KW.yaml +1 -0
  168. data/lib/countries/data/countries/KY.yaml +1 -0
  169. data/lib/countries/data/countries/KZ.yaml +1 -0
  170. data/lib/countries/data/countries/LA.yaml +1 -0
  171. data/lib/countries/data/countries/LB.yaml +1 -0
  172. data/lib/countries/data/countries/LC.yaml +1 -0
  173. data/lib/countries/data/countries/LI.yaml +3 -0
  174. data/lib/countries/data/countries/LK.yaml +1 -0
  175. data/lib/countries/data/countries/LR.yaml +1 -0
  176. data/lib/countries/data/countries/LS.yaml +1 -0
  177. data/lib/countries/data/countries/LT.yaml +1 -0
  178. data/lib/countries/data/countries/LU.yaml +1 -0
  179. data/lib/countries/data/countries/LV.yaml +1 -0
  180. data/lib/countries/data/countries/LY.yaml +1 -0
  181. data/lib/countries/data/countries/MA.yaml +1 -0
  182. data/lib/countries/data/countries/MC.yaml +3 -0
  183. data/lib/countries/data/countries/MD.yaml +1 -0
  184. data/lib/countries/data/countries/ME.yaml +1 -0
  185. data/lib/countries/data/countries/MF.yaml +4 -1
  186. data/lib/countries/data/countries/MG.yaml +1 -0
  187. data/lib/countries/data/countries/MH.yaml +1 -0
  188. data/lib/countries/data/countries/MK.yaml +1 -0
  189. data/lib/countries/data/countries/ML.yaml +1 -0
  190. data/lib/countries/data/countries/MM.yaml +1 -0
  191. data/lib/countries/data/countries/MN.yaml +1 -0
  192. data/lib/countries/data/countries/MO.yaml +1 -0
  193. data/lib/countries/data/countries/MP.yaml +1 -0
  194. data/lib/countries/data/countries/MQ.yaml +3 -0
  195. data/lib/countries/data/countries/MR.yaml +1 -0
  196. data/lib/countries/data/countries/MS.yaml +1 -0
  197. data/lib/countries/data/countries/MT.yaml +1 -0
  198. data/lib/countries/data/countries/MU.yaml +1 -0
  199. data/lib/countries/data/countries/MV.yaml +1 -0
  200. data/lib/countries/data/countries/MW.yaml +1 -0
  201. data/lib/countries/data/countries/MX.yaml +2 -0
  202. data/lib/countries/data/countries/MY.yaml +1 -0
  203. data/lib/countries/data/countries/MZ.yaml +1 -0
  204. data/lib/countries/data/countries/NA.yaml +1 -0
  205. data/lib/countries/data/countries/NC.yaml +1 -0
  206. data/lib/countries/data/countries/NE.yaml +1 -0
  207. data/lib/countries/data/countries/NF.yaml +1 -0
  208. data/lib/countries/data/countries/NG.yaml +1 -0
  209. data/lib/countries/data/countries/NI.yaml +1 -0
  210. data/lib/countries/data/countries/NL.yaml +1 -0
  211. data/lib/countries/data/countries/NO.yaml +1 -0
  212. data/lib/countries/data/countries/NP.yaml +1 -0
  213. data/lib/countries/data/countries/NR.yaml +1 -0
  214. data/lib/countries/data/countries/NU.yaml +1 -0
  215. data/lib/countries/data/countries/NZ.yaml +1 -0
  216. data/lib/countries/data/countries/OM.yaml +1 -0
  217. data/lib/countries/data/countries/PA.yaml +1 -0
  218. data/lib/countries/data/countries/PE.yaml +1 -0
  219. data/lib/countries/data/countries/PF.yaml +1 -0
  220. data/lib/countries/data/countries/PG.yaml +1 -0
  221. data/lib/countries/data/countries/PH.yaml +1 -0
  222. data/lib/countries/data/countries/PK.yaml +1 -0
  223. data/lib/countries/data/countries/PL.yaml +1 -0
  224. data/lib/countries/data/countries/PM.yaml +1 -0
  225. data/lib/countries/data/countries/PN.yaml +1 -0
  226. data/lib/countries/data/countries/PR.yaml +1 -0
  227. data/lib/countries/data/countries/PS.yaml +1 -0
  228. data/lib/countries/data/countries/PT.yaml +1 -0
  229. data/lib/countries/data/countries/PW.yaml +1 -0
  230. data/lib/countries/data/countries/PY.yaml +1 -0
  231. data/lib/countries/data/countries/QA.yaml +1 -0
  232. data/lib/countries/data/countries/RE.yaml +3 -0
  233. data/lib/countries/data/countries/RO.yaml +1 -0
  234. data/lib/countries/data/countries/RS.yaml +1 -0
  235. data/lib/countries/data/countries/RU.yaml +2 -0
  236. data/lib/countries/data/countries/RW.yaml +1 -0
  237. data/lib/countries/data/countries/SA.yaml +2 -0
  238. data/lib/countries/data/countries/SB.yaml +1 -0
  239. data/lib/countries/data/countries/SC.yaml +1 -0
  240. data/lib/countries/data/countries/SD.yaml +1 -0
  241. data/lib/countries/data/countries/SE.yaml +1 -0
  242. data/lib/countries/data/countries/SG.yaml +1 -0
  243. data/lib/countries/data/countries/SH.yaml +1 -0
  244. data/lib/countries/data/countries/SI.yaml +1 -0
  245. data/lib/countries/data/countries/SJ.yaml +1 -0
  246. data/lib/countries/data/countries/SK.yaml +1 -0
  247. data/lib/countries/data/countries/SL.yaml +1 -0
  248. data/lib/countries/data/countries/SM.yaml +1 -0
  249. data/lib/countries/data/countries/SN.yaml +1 -0
  250. data/lib/countries/data/countries/SO.yaml +1 -0
  251. data/lib/countries/data/countries/SR.yaml +1 -0
  252. data/lib/countries/data/countries/SS.yaml +1 -0
  253. data/lib/countries/data/countries/ST.yaml +1 -0
  254. data/lib/countries/data/countries/SV.yaml +1 -0
  255. data/lib/countries/data/countries/SX.yaml +1 -0
  256. data/lib/countries/data/countries/SY.yaml +1 -0
  257. data/lib/countries/data/countries/SZ.yaml +1 -0
  258. data/lib/countries/data/countries/TC.yaml +1 -0
  259. data/lib/countries/data/countries/TD.yaml +1 -0
  260. data/lib/countries/data/countries/TF.yaml +1 -0
  261. data/lib/countries/data/countries/TG.yaml +1 -0
  262. data/lib/countries/data/countries/TH.yaml +1 -0
  263. data/lib/countries/data/countries/TJ.yaml +1 -0
  264. data/lib/countries/data/countries/TK.yaml +1 -0
  265. data/lib/countries/data/countries/TL.yaml +1 -0
  266. data/lib/countries/data/countries/TM.yaml +2 -1
  267. data/lib/countries/data/countries/TN.yaml +1 -0
  268. data/lib/countries/data/countries/TO.yaml +1 -0
  269. data/lib/countries/data/countries/TR.yaml +4 -2
  270. data/lib/countries/data/countries/TT.yaml +1 -0
  271. data/lib/countries/data/countries/TV.yaml +1 -0
  272. data/lib/countries/data/countries/TW.yaml +16 -13
  273. data/lib/countries/data/countries/TZ.yaml +1 -0
  274. data/lib/countries/data/countries/UA.yaml +1 -0
  275. data/lib/countries/data/countries/UG.yaml +1 -0
  276. data/lib/countries/data/countries/UM.yaml +1 -0
  277. data/lib/countries/data/countries/US.yaml +3 -0
  278. data/lib/countries/data/countries/UY.yaml +1 -0
  279. data/lib/countries/data/countries/UZ.yaml +1 -0
  280. data/lib/countries/data/countries/VA.yaml +1 -0
  281. data/lib/countries/data/countries/VC.yaml +1 -0
  282. data/lib/countries/data/countries/VE.yaml +1 -0
  283. data/lib/countries/data/countries/VG.yaml +1 -0
  284. data/lib/countries/data/countries/VI.yaml +1 -0
  285. data/lib/countries/data/countries/VN.yaml +1 -0
  286. data/lib/countries/data/countries/VU.yaml +1 -0
  287. data/lib/countries/data/countries/WF.yaml +1 -0
  288. data/lib/countries/data/countries/WS.yaml +1 -0
  289. data/lib/countries/data/countries/YE.yaml +1 -0
  290. data/lib/countries/data/countries/YT.yaml +3 -0
  291. data/lib/countries/data/countries/ZA.yaml +2 -0
  292. data/lib/countries/data/countries/ZM.yaml +1 -0
  293. data/lib/countries/data/countries/ZW.yaml +1 -0
  294. data/lib/countries/data/locales_methods.rb +23 -0
  295. data/lib/countries/data/subdivision_methods.rb +30 -0
  296. data/lib/countries/data/subdivisions/AD.yaml +7 -0
  297. data/lib/countries/data/subdivisions/AE.yaml +24 -0
  298. data/lib/countries/data/subdivisions/AF.yaml +200 -1
  299. data/lib/countries/data/subdivisions/AG.yaml +17 -0
  300. data/lib/countries/data/subdivisions/AL.yaml +69 -0
  301. data/lib/countries/data/subdivisions/AM.yaml +44 -0
  302. data/lib/countries/data/subdivisions/AO.yaml +54 -0
  303. data/lib/countries/data/subdivisions/AR.yaml +69 -0
  304. data/lib/countries/data/subdivisions/AT.yaml +35 -0
  305. data/lib/countries/data/subdivisions/AU.yaml +37 -0
  306. data/lib/countries/data/subdivisions/AZ.yaml +316 -2
  307. data/lib/countries/data/subdivisions/BA.yaml +8 -0
  308. data/lib/countries/data/subdivisions/BB.yaml +15 -0
  309. data/lib/countries/data/subdivisions/BD.yaml +211 -0
  310. data/lib/countries/data/subdivisions/BE.yaml +34 -0
  311. data/lib/countries/data/subdivisions/BF.yaml +56 -0
  312. data/lib/countries/data/subdivisions/BG.yaml +30 -0
  313. data/lib/countries/data/subdivisions/BH.yaml +13 -0
  314. data/lib/countries/data/subdivisions/BI.yaml +54 -0
  315. data/lib/countries/data/subdivisions/BJ.yaml +22 -0
  316. data/lib/countries/data/subdivisions/BN.yaml +9 -0
  317. data/lib/countries/data/subdivisions/BO.yaml +35 -0
  318. data/lib/countries/data/subdivisions/BQ.yaml +4 -0
  319. data/lib/countries/data/subdivisions/BR.yaml +14 -0
  320. data/lib/countries/data/subdivisions/BS.yaml +24 -0
  321. data/lib/countries/data/subdivisions/BT.yaml +24 -0
  322. data/lib/countries/data/subdivisions/BW.yaml +24 -0
  323. data/lib/countries/data/subdivisions/BY.yaml +5 -0
  324. data/lib/countries/data/subdivisions/BZ.yaml +3 -0
  325. data/lib/countries/data/subdivisions/CA.yaml +24 -0
  326. data/lib/countries/data/subdivisions/CD.yaml +77 -0
  327. data/lib/countries/data/subdivisions/CF.yaml +15 -0
  328. data/lib/countries/data/subdivisions/CG.yaml +18 -0
  329. data/lib/countries/data/subdivisions/CH.yaml +92 -0
  330. data/lib/countries/data/subdivisions/CI.yaml +65 -0
  331. data/lib/countries/data/subdivisions/CL.yaml +45 -2
  332. data/lib/countries/data/subdivisions/CM.yaml +22 -0
  333. data/lib/countries/data/subdivisions/CN.yaml +98 -0
  334. data/lib/countries/data/subdivisions/CO.yaml +68 -0
  335. data/lib/countries/data/subdivisions/CR.yaml +14 -0
  336. data/lib/countries/data/subdivisions/CU.yaml +42 -0
  337. data/lib/countries/data/subdivisions/CV.yaml +32 -0
  338. data/lib/countries/data/subdivisions/CY.yaml +18 -0
  339. data/lib/countries/data/subdivisions/CZ.yaml +227 -0
  340. data/lib/countries/data/subdivisions/DE.yaml +31 -0
  341. data/lib/countries/data/subdivisions/DJ.yaml +16 -0
  342. data/lib/countries/data/subdivisions/DK.yaml +13 -0
  343. data/lib/countries/data/subdivisions/DM.yaml +1 -0
  344. data/lib/countries/data/subdivisions/DO.yaml +102 -0
  345. data/lib/countries/data/subdivisions/DZ.yaml +104 -0
  346. data/lib/countries/data/subdivisions/EC.yaml +72 -0
  347. data/lib/countries/data/subdivisions/EE.yaml +6 -0
  348. data/lib/countries/data/subdivisions/EG.yaml +54 -0
  349. data/lib/countries/data/subdivisions/ER.yaml +2 -0
  350. data/lib/countries/data/subdivisions/ES.yaml +252 -0
  351. data/lib/countries/data/subdivisions/ET.yaml +27 -0
  352. data/lib/countries/data/subdivisions/FI.yaml +78 -0
  353. data/lib/countries/data/subdivisions/FJ.yaml +30 -0
  354. data/lib/countries/data/subdivisions/FM.yaml +11 -0
  355. data/lib/countries/data/subdivisions/FR.yaml +332 -1
  356. data/lib/countries/data/subdivisions/GA.yaml +24 -0
  357. data/lib/countries/data/subdivisions/GB.yaml +488 -0
  358. data/lib/countries/data/subdivisions/GD.yaml +10 -0
  359. data/lib/countries/data/subdivisions/GE.yaml +34 -0
  360. data/lib/countries/data/subdivisions/GH.yaml +79 -0
  361. data/lib/countries/data/subdivisions/GL.yaml +58 -0
  362. data/lib/countries/data/subdivisions/GM.yaml +10 -0
  363. data/lib/countries/data/subdivisions/GN.yaml +65 -0
  364. data/lib/countries/data/subdivisions/GQ.yaml +36 -0
  365. data/lib/countries/data/subdivisions/GR.yaml +41 -0
  366. data/lib/countries/data/subdivisions/GW.yaml +24 -0
  367. data/lib/countries/data/subdivisions/GY.yaml +31 -0
  368. data/lib/countries/data/subdivisions/HN.yaml +21 -0
  369. data/lib/countries/data/subdivisions/HR.yaml +82 -0
  370. data/lib/countries/data/subdivisions/HT.yaml +14 -0
  371. data/lib/countries/data/subdivisions/HU.yaml +94 -0
  372. data/lib/countries/data/subdivisions/ID.yaml +99 -0
  373. data/lib/countries/data/subdivisions/IE.yaml +39 -0
  374. data/lib/countries/data/subdivisions/IL.yaml +15 -0
  375. data/lib/countries/data/subdivisions/IN.yaml +210 -0
  376. data/lib/countries/data/subdivisions/IQ.yaml +59 -0
  377. data/lib/countries/data/subdivisions/IR.yaml +33 -1
  378. data/lib/countries/data/subdivisions/IS.yaml +560 -0
  379. data/lib/countries/data/subdivisions/IT.yaml +321 -0
  380. data/lib/countries/data/subdivisions/JM.yaml +22 -0
  381. data/lib/countries/data/subdivisions/JO.yaml +16 -0
  382. data/lib/countries/data/subdivisions/JP.yaml +42 -0
  383. data/lib/countries/data/subdivisions/KE.yaml +298 -0
  384. data/lib/countries/data/subdivisions/KG.yaml +28 -0
  385. data/lib/countries/data/subdivisions/KH.yaml +108 -0
  386. data/lib/countries/data/subdivisions/KI.yaml +6 -0
  387. data/lib/countries/data/subdivisions/KM.yaml +4 -0
  388. data/lib/countries/data/subdivisions/KN.yaml +6 -0
  389. data/lib/countries/data/subdivisions/KP.yaml +42 -0
  390. data/lib/countries/data/subdivisions/KR.yaml +36 -0
  391. data/lib/countries/data/subdivisions/KW.yaml +5 -0
  392. data/lib/countries/data/subdivisions/KZ.yaml +127 -0
  393. data/lib/countries/data/subdivisions/LA.yaml +49 -0
  394. data/lib/countries/data/subdivisions/LB.yaml +28 -0
  395. data/lib/countries/data/subdivisions/LC.yaml +6 -0
  396. data/lib/countries/data/subdivisions/LI.yaml +37 -0
  397. data/lib/countries/data/subdivisions/LK.yaml +67 -0
  398. data/lib/countries/data/subdivisions/LR.yaml +16 -0
  399. data/lib/countries/data/subdivisions/LS.yaml +23 -0
  400. data/lib/countries/data/subdivisions/LT.yaml +315 -0
  401. data/lib/countries/data/subdivisions/LU.yaml +31 -0
  402. data/lib/countries/data/subdivisions/LV.yaml +83 -0
  403. data/lib/countries/data/subdivisions/LY.yaml +16 -0
  404. data/lib/countries/data/subdivisions/MA.yaml +827 -12
  405. data/lib/countries/data/subdivisions/MC.yaml +47 -0
  406. data/lib/countries/data/subdivisions/MD.yaml +41 -0
  407. data/lib/countries/data/subdivisions/ME.yaml +83 -0
  408. data/lib/countries/data/subdivisions/MG.yaml +21 -0
  409. data/lib/countries/data/subdivisions/MH.yaml +70 -0
  410. data/lib/countries/data/subdivisions/MK.yaml +505 -0
  411. data/lib/countries/data/subdivisions/ML.yaml +33 -0
  412. data/lib/countries/data/subdivisions/MM.yaml +51 -0
  413. data/lib/countries/data/subdivisions/MN.yaml +94 -0
  414. data/lib/countries/data/subdivisions/MR.yaml +32 -0
  415. data/lib/countries/data/subdivisions/MT.yaml +126 -0
  416. data/lib/countries/data/subdivisions/MU.yaml +21 -0
  417. data/lib/countries/data/subdivisions/MV.yaml +20 -0
  418. data/lib/countries/data/subdivisions/MW.yaml +52 -0
  419. data/lib/countries/data/subdivisions/MX.yaml +23 -0
  420. data/lib/countries/data/subdivisions/MY.yaml +24 -0
  421. data/lib/countries/data/subdivisions/MZ.yaml +20 -0
  422. data/lib/countries/data/subdivisions/NA.yaml +28 -0
  423. data/lib/countries/data/subdivisions/NE.yaml +9 -0
  424. data/lib/countries/data/subdivisions/NG.yaml +89 -0
  425. data/lib/countries/data/subdivisions/NI.yaml +25 -0
  426. data/lib/countries/data/subdivisions/NL.yaml +24 -0
  427. data/lib/countries/data/subdivisions/NO.yaml +138 -1
  428. data/lib/countries/data/subdivisions/NP.yaml +9 -0
  429. data/lib/countries/data/subdivisions/NR.yaml +19 -0
  430. data/lib/countries/data/subdivisions/NZ.yaml +34 -0
  431. data/lib/countries/data/subdivisions/OM.yaml +10 -0
  432. data/lib/countries/data/subdivisions/PA.yaml +27 -0
  433. data/lib/countries/data/subdivisions/PE.yaml +24 -0
  434. data/lib/countries/data/subdivisions/PG.yaml +46 -0
  435. data/lib/countries/data/subdivisions/PH.yaml +293 -0
  436. data/lib/countries/data/subdivisions/PK.yaml +22 -0
  437. data/lib/countries/data/subdivisions/PL.yaml +141 -0
  438. data/lib/countries/data/subdivisions/PS.yaml +41 -0
  439. data/lib/countries/data/subdivisions/PT.yaml +36 -0
  440. data/lib/countries/data/subdivisions/PW.yaml +24 -0
  441. data/lib/countries/data/subdivisions/PY.yaml +22 -1
  442. data/lib/countries/data/subdivisions/QA.yaml +26 -0
  443. data/lib/countries/data/subdivisions/RO.yaml +189 -0
  444. data/lib/countries/data/subdivisions/RS.yaml +112 -0
  445. data/lib/countries/data/subdivisions/RU.yaml +123 -0
  446. data/lib/countries/data/subdivisions/RW.yaml +7 -0
  447. data/lib/countries/data/subdivisions/SA.yaml +38 -0
  448. data/lib/countries/data/subdivisions/SB.yaml +11 -0
  449. data/lib/countries/data/subdivisions/SC.yaml +45 -0
  450. data/lib/countries/data/subdivisions/SD.yaml +15 -0
  451. data/lib/countries/data/subdivisions/SE.yaml +42 -0
  452. data/lib/countries/data/subdivisions/SG.yaml +8 -0
  453. data/lib/countries/data/subdivisions/SH.yaml +6 -0
  454. data/lib/countries/data/subdivisions/SI.yaml +735 -0
  455. data/lib/countries/data/subdivisions/SK.yaml +22 -0
  456. data/lib/countries/data/subdivisions/SL.yaml +7 -0
  457. data/lib/countries/data/subdivisions/SM.yaml +19 -0
  458. data/lib/countries/data/subdivisions/SN.yaml +43 -0
  459. data/lib/countries/data/subdivisions/SO.yaml +71 -0
  460. data/lib/countries/data/subdivisions/SR.yaml +17 -0
  461. data/lib/countries/data/subdivisions/SS.yaml +4 -0
  462. data/lib/countries/data/subdivisions/ST.yaml +127 -0
  463. data/lib/countries/data/subdivisions/SV.yaml +20 -0
  464. data/lib/countries/data/subdivisions/SY.yaml +53 -0
  465. data/lib/countries/data/subdivisions/SZ.yaml +18 -0
  466. data/lib/countries/data/subdivisions/TD.yaml +51 -0
  467. data/lib/countries/data/subdivisions/TG.yaml +13 -0
  468. data/lib/countries/data/subdivisions/TH.yaml +231 -0
  469. data/lib/countries/data/subdivisions/TJ.yaml +16 -1
  470. data/lib/countries/data/subdivisions/TL.yaml +38 -0
  471. data/lib/countries/data/subdivisions/TM.yaml +16 -1
  472. data/lib/countries/data/subdivisions/TN.yaml +25 -0
  473. data/lib/countries/data/subdivisions/TO.yaml +1 -0
  474. data/lib/countries/data/subdivisions/TR.yaml +93 -0
  475. data/lib/countries/data/subdivisions/TT.yaml +25 -0
  476. data/lib/countries/data/subdivisions/TV.yaml +25 -0
  477. data/lib/countries/data/subdivisions/TW.yaml +106 -0
  478. data/lib/countries/data/subdivisions/TZ.yaml +38 -0
  479. data/lib/countries/data/subdivisions/UA.yaml +108 -1
  480. data/lib/countries/data/subdivisions/UG.yaml +262 -0
  481. data/lib/countries/data/subdivisions/UM.yaml +4 -0
  482. data/lib/countries/data/subdivisions/US.yaml +166 -4
  483. data/lib/countries/data/subdivisions/UY.yaml +27 -0
  484. data/lib/countries/data/subdivisions/UZ.yaml +78 -1
  485. data/lib/countries/data/subdivisions/VC.yaml +6 -0
  486. data/lib/countries/data/subdivisions/VE.yaml +33 -0
  487. data/lib/countries/data/subdivisions/VN.yaml +131 -0
  488. data/lib/countries/data/subdivisions/VU.yaml +8 -0
  489. data/lib/countries/data/subdivisions/WS.yaml +18 -0
  490. data/lib/countries/data/subdivisions/YE.yaml +16 -0
  491. data/lib/countries/data/subdivisions/ZA.yaml +5 -0
  492. data/lib/countries/data/subdivisions/ZM.yaml +24 -0
  493. data/lib/countries/data/subdivisions/ZW.yaml +21 -0
  494. data/lib/countries/data/translations/countries-ab.yaml +1 -1
  495. data/lib/countries/data/translations/countries-ak.yaml +1 -1
  496. data/lib/countries/data/translations/countries-an.yaml +1 -1
  497. data/lib/countries/data/translations/countries-ay.yaml +1 -1
  498. data/lib/countries/data/translations/countries-ba.yaml +1 -1
  499. data/lib/countries/data/translations/countries-bi.yaml +1 -1
  500. data/lib/countries/data/translations/countries-ch.yaml +1 -1
  501. data/lib/countries/data/translations/countries-de.yaml +2 -2
  502. data/lib/countries/data/translations/countries-ee.yaml +1 -1
  503. data/lib/countries/data/translations/countries-en.yaml +1 -1
  504. data/lib/countries/data/translations/countries-fr.yaml +7 -7
  505. data/lib/countries/data/translations/countries-gn.yaml +2 -2
  506. data/lib/countries/data/translations/countries-ja.yaml +3 -3
  507. data/lib/countries/data/translations/countries-ki.yaml +1 -1
  508. data/lib/countries/data/translations/countries-kl.yaml +1 -1
  509. data/lib/countries/data/translations/countries-lt.yaml +2 -2
  510. data/lib/countries/data/translations/countries-pt_BR.yaml +1 -1
  511. data/lib/countries/data/translations/countries-sd.yaml +1 -1
  512. data/lib/countries/data/translations/countries-sw.yaml +1 -1
  513. data/lib/countries/data/translations/countries-th.yaml +2 -2
  514. data/lib/countries/data/translations/countries-tk.yaml +88 -88
  515. data/lib/countries/data/translations/countries-tl.yaml +1 -1
  516. data/lib/countries/data/translations/countries-ve.yaml +1 -1
  517. data/lib/countries/data/translations/countries-xh.yaml +1 -1
  518. data/lib/countries/data.rb +19 -50
  519. data/lib/countries/global.rb +0 -1
  520. data/lib/countries/iso3166.rb +3 -1
  521. data/lib/countries/sources/cldr/subdivision.rb +1 -1
  522. data/lib/countries/structure.rb +1 -0
  523. data/lib/countries/subdivision.rb +5 -0
  524. data/lib/countries/tasks/postal_codes.rake +5 -1
  525. data/lib/countries/version.rb +1 -1
  526. data/lib/countries.rb +0 -2
  527. data/spec/country_spec.rb +218 -22
  528. data/spec/data_spec.rb +12 -8
  529. data/spec/spec_helper.rb +4 -0
  530. data/spec/subdivision_spec.rb +8 -0
  531. metadata +28 -21
  532. data/.rubocop_todo.yml +0 -19
  533. data/lib/countries/kwarg_struct.rb +0 -14
  534. data/lib/countries/tasks/geocoding.rake +0 -106
@@ -1 +1 @@
1
- {"AD":"Andorra","AE":"United Arab Emirates","AF":"Afghanistan","AG":"Antigua no Barbuda","AI":"Anguilla","AL":"Albania","AM":"Armenia","AO":"Angola","AQ":"Antarctica","AR":"Argentina","AS":"American Samoa","AT":"Austria","AU":"Australiya","AW":"Aruba","AX":"Åland Islands","AZ":"Azerbaijan","BA":"Bosnia and Herzegovina","BB":"Barbados","BD":"Bangladesh","BE":"Belgium","BF":"Burkina Faso","BG":"Bulgaria","BH":"Bahrain","BI":"Burundi","BJ":"Benin","BL":"Saint Barthélemy","BM":"Bermuda","BN":"Brunei Darussalam","BO":"Bolivia","BQ":"Bonaire, Sint Eustatius and Saba","BR":"Brazil","BS":"Bahamas","BT":"Bhutan","BV":"Bouvet Island","BW":"Botswana","BY":"Belarus","BZ":"Belize","CA":"Canada","CC":"Cocos (Keeling) Islands","CD":"Congo, The Democratic Republic of the","CF":"Central African Republic","CG":"Congo","CH":"Switzerland","CI":"Côte d'Ivoire","CK":"Cook Islands","CL":"Chile","CM":"Cameroon","CN":"Tshayina","CO":"Colombia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curaçao","CX":"Christmas Island","CY":"Cyprus","CZ":"Czechia","DE":"Jamani","DJ":"Djibouti","DK":"Denmark","DM":"Dominica","DO":"Ulawulo lokuziphatha kwe Dominican","DZ":"Algeria","EC":"Ecuador","EE":"Estonia","EG":"Egypt","EH":"Western Sahara","ER":"Eritrea","ES":"Spain","ET":"Ethiopia","FI":"Finland","FJ":"Fiji","FK":"Falkland Islands (Malvinas)","FM":"Micronesia, Federated States of","FO":"Faroe Islands","FR":"Franisi","GA":"Gabon","GB":"United Kingdom","GD":"Grenada","GE":"Georgia","GF":"French Guiana","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Greenland","GM":"Gambia","GN":"Guinea","GP":"Guadeloupe","GQ":"Equatorial Guinea","GR":"Greece","GS":"South Georgia and the South Sandwich Islands","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bissau","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"Honduras","HR":"Croatia","HT":"Haiti","HU":"Hungary","ID":"Indonesia","IE":"Ireland","IL":"Sirayeli","IM":"Isle of Man","IN":"India","IO":"British Indian Ocean Territory","IQ":"Iraq","IR":"Iran, Islamic Republic of","IS":"Iceland","IT":"Ithali","JE":"Jersey","JM":"Jamaica","JO":"Jordan","JP":"Japhani","KE":"Kenya","KG":"Kyrgyzstan","KH":"Cambodia","KI":"Kiribati","KM":"Comoros","KN":"Saint Kitts and Nevis","KP":"North Korea","KR":"South Korea","KW":"Kuwait","KY":"Cayman Islands","KZ":"Kazakhstan","LA":"Lao People's Democratic Republic","LB":"Lebanon","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Liberia","LS":"Lesotho","LT":"Lithuania","LU":"Luxembourg","LV":"Latvia","LY":"Libya","MA":"Morocco","MC":"Monaco","MD":"Moldova","ME":"Montenegro","MF":"Saint Martin (French part)","MG":"Madagascar","MH":"Marshall Islands","MK":"North Macedonia","ML":"Mali","MM":"Myanmar","MN":"Mongolia","MO":"Macao","MP":"Northern Mariana Islands","MQ":"Martinique","MR":"Mauritania","MS":"Montserrat","MT":"Malta","MU":"Mauritius","MV":"Maldives","MW":"Malawi","MX":"Mexico","MY":"Malaysia","MZ":"Mozambique","NA":"Namibia","NC":"New Caledonia","NE":"Niger","NF":"Norfolk Island","NG":"Nigeria","NI":"Nicaragua","NL":"Netherlands","NO":"Norway","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"New Zealand (izealand entsha)","OM":"Oman","PA":"Panama","PE":"Peru","PF":"French Polynesia","PG":"Papua New Guinea","PH":"Philippines","PK":"Pakistan","PL":"Poland","PM":"Saint Pierre and Miquelon","PN":"Pitcairn","PR":"Puerto Rico","PS":"Palestine, State of","PT":"Portugal","PW":"Palau","PY":"Paraguay","QA":"Qatar","RE":"Réunion","RO":"Romania","RS":"Serbia","RU":"Russian Federation","RW":"Rwanda","SA":"Saudi Arabia","SB":"Solomon Islands","SC":"Seychelles","SD":"Sudan","SE":"Sweden","SG":"Singapore","SH":"Saint Helena, Ascension and Tristan da Cunha","SI":"Slovenia","SJ":"Svalbard and Jan Mayen","SK":"Slovakia","SL":"Sierra Leone","SM":"San Marino","SN":"Senegal","SO":"Somalia","SR":"Suriname","SS":"South Sudan","ST":"Sao Tome and Principe","SV":"El Salvador","SX":"Sint Maarten (Dutch part)","SY":"Syrian Arab Republic","SZ":"Eswatini","TC":"Turks and Caicos Islands","TD":"Chad","TF":"French Southern Territories","TG":"Togo","TH":"Thailand","TJ":"Tajikistan","TK":"Tokelau","TL":"Timor-Leste","TM":"Turkmenistan","TN":"Tunisia","TO":"Tonga","TR":"Turkey","TT":"Trinidad ne Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzania","UA":"Ukraine","UG":"Uganda","UM":"United States Minor Outlying Islands","US":"United States","UY":"Uruguay","UZ":"Uzbekistan","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"Venezuela","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"Yemen","YT":"Mayotte","ZA":"Mzantsi Afrika","ZM":"Zambia","ZW":"Zimbabwe"}
1
+ {"AD":"Andorra","AE":"United Arab Emirates","AF":"Afghanistan","AG":"Antigua no Barbuda","AI":"Anguilla","AL":"Albania","AM":"Armenia","AO":"Angola","AQ":"Antarctica","AR":"Argentina","AS":"American Samoa","AT":"Austria","AU":"Australiya","AW":"Aruba","AX":"Åland Islands","AZ":"Azerbaijan","BA":"Bosnia and Herzegovina","BB":"Barbados","BD":"Bangladesh","BE":"Belgium","BF":"Burkina Faso","BG":"Bulgaria","BH":"Bahrain","BI":"Burundi","BJ":"Benin","BL":"Saint Barthélemy","BM":"Bermuda","BN":"Brunei Darussalam","BO":"Bolivia","BQ":"Bonaire, Sint Eustatius and Saba","BR":"Brazil","BS":"Bahamas","BT":"Bhutan","BV":"Bouvet Island","BW":"Botswana","BY":"Belarus","BZ":"Belize","CA":"Canada","CC":"Cocos (Keeling) Islands","CD":"Congo, The Democratic Republic of the","CF":"Central African Republic","CG":"Congo","CH":"Switzerland","CI":"Côte d'Ivoire","CK":"Cook Islands","CL":"Chile","CM":"Cameroon","CN":"Tshayina","CO":"Colombia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curaçao","CX":"Christmas Island","CY":"Cyprus","CZ":"Czechia","DE":"Jamani","DJ":"Djibouti","DK":"Denmark","DM":"Dominica","DO":"Ulawulo lokuziphatha kwe Dominican","DZ":"Algeria","EC":"Ecuador","EE":"Estonia","EG":"Egypt","EH":"Western Sahara","ER":"Eritrea","ES":"Spain","ET":"Ethiopia","FI":"Finland","FJ":"Fiji","FK":"Falkland Islands (Malvinas)","FM":"Micronesia, Federated States of","FO":"Faroe Islands","FR":"Franisi","GA":"Gabon","GB":"United Kingdom","GD":"Grenada","GE":"Georgia","GF":"French Guiana","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Greenland","GM":"Gambia","GN":"Guinea","GP":"Guadeloupe","GQ":"Equatorial Guinea","GR":"Greece","GS":"South Georgia and the South Sandwich Islands","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bissau","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"Honduras","HR":"Croatia","HT":"Haiti","HU":"Hungary","ID":"Indonesia","IE":"Ireland","IL":"Sirayeli","IM":"Isle of Man","IN":"India","IO":"British Indian Ocean Territory","IQ":"Iraq","IR":"Iran, Islamic Republic of","IS":"Iceland","IT":"Ithali","JE":"Jersey","JM":"Jamaica","JO":"Jordan","JP":"Japhani","KE":"Kenya","KG":"Kyrgyzstan","KH":"Cambodia","KI":"Kiribati","KM":"Comoros","KN":"Saint Kitts and Nevis","KP":"North Korea","KR":"South Korea","KW":"Kuwait","KY":"Cayman Islands","KZ":"Kazakhstan","LA":"Lao People's Democratic Republic","LB":"Lebanon","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Liberia","LS":"Lesotho","LT":"Lithuania","LU":"Luxembourg","LV":"Latvia","LY":"Libya","MA":"Morocco","MC":"Monaco","MD":"Moldova","ME":"Montenegro","MF":"Saint Martin (French part)","MG":"Madagascar","MH":"Marshall Islands","MK":"North Macedonia","ML":"Mali","MM":"Myanmar","MN":"Mongolia","MO":"Macao","MP":"Northern Mariana Islands","MQ":"Martinique","MR":"Mauritania","MS":"Montserrat","MT":"Malta","MU":"Mauritius","MV":"Maldives","MW":"Malawi","MX":"Mexico","MY":"Malaysia","MZ":"Mozambique","NA":"Namibia","NC":"New Caledonia","NE":"Niger","NF":"Norfolk Island","NG":"Nigeria","NI":"Nicaragua","NL":"Netherlands","NO":"Norway","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"New Zealand (izealand entsha)","OM":"Oman","PA":"Panama","PE":"Peru","PF":"French Polynesia","PG":"Papua New Guinea","PH":"Philippines","PK":"Pakistan","PL":"Poland","PM":"Saint Pierre and Miquelon","PN":"Pitcairn","PR":"Puerto Rico","PS":"Palestine, State of","PT":"Portugal","PW":"Palau","PY":"Paraguay","QA":"Qatar","RE":"Réunion","RO":"Romania","RS":"Serbia","RU":"Russian Federation","RW":"Rwanda","SA":"Saudi Arabia","SB":"Solomon Islands","SC":"Seychelles","SD":"Sudan","SE":"Sweden","SG":"Singapore","SH":"Saint Helena, Ascension and Tristan da Cunha","SI":"Slovenia","SJ":"Svalbard and Jan Mayen","SK":"Slovakia","SL":"Sierra Leone","SM":"San Marino","SN":"Senegal","SO":"Somalia","SR":"Suriname","SS":"South Sudan","ST":"Sao Tome and Principe","SV":"El Salvador","SX":"Sint Maarten (Dutch part)","SY":"Syrian Arab Republic","SZ":"Eswatini","TC":"Turks and Caicos Islands","TD":"Chad","TF":"French Southern Territories","TG":"Togo","TH":"Thailand","TJ":"Tajikistan","TK":"Tokelau","TL":"Timor-Leste","TM":"Turkmenistan","TN":"Tunisia","TO":"Tonga","TR":"Türkiye","TT":"Trinidad ne Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzania","UA":"Ukraine","UG":"Uganda","UM":"United States Minor Outlying Islands","US":"United States","UY":"Uruguay","UZ":"Uzbekistan","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"Venezuela","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"Yemen","YT":"Mayotte","ZA":"Mzantsi Afrika","ZM":"Zambia","ZW":"Zimbabwe"}
@@ -48,7 +48,7 @@ module ISO3166
48
48
 
49
49
  def default_locales
50
50
  locales = if Object.const_defined?('I18n') && I18n.respond_to?(:available_locales)
51
- I18n.available_locales
51
+ I18n.available_locales.dup
52
52
  else
53
53
  [:en]
54
54
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'sixarm_ruby_unaccent'
3
+ require 'unaccent'
4
4
 
5
5
  module ISO3166
6
6
  UNSEARCHABLE_METHODS = [:translations].freeze
@@ -40,9 +40,7 @@ module ISO3166
40
40
  end
41
41
 
42
42
  def pluck(*attributes)
43
- all.map do |country|
44
- attributes.map { |attribute| country.data.fetch(attribute.to_s) }
45
- end
43
+ all.map { |country| country.data.fetch_values(*attributes.map(&:to_s)) }
46
44
  end
47
45
 
48
46
  def all_translated(locale = 'en')
@@ -64,13 +62,34 @@ module ISO3166
64
62
  translations.merge(custom_countries)
65
63
  end
66
64
 
65
+ # @param query_val [String] A value to query using `query_method`
66
+ # @param query_method [Symbol] An optional query method, defaults to Country#alpha2
67
+ # @param result_method [Symbol] An optional method of `Country` to apply to the result set.
68
+ # @return [Array] An array of countries matching the provided query, or the result of applying `result_method` to the array of `Country` objects
69
+ def collect_countries_with(query_val, query_method = :alpha2, result_method = :itself)
70
+ return nil unless [query_method, result_method].map { |e| method_defined? e }.all?
71
+
72
+ all.select { |country| country.send(query_method).include? query_val }
73
+ .map { |country| country.send(result_method) }
74
+ end
75
+
76
+ # @param subdivision_str [String] A subdivision name or code to search for. Search includes translated subdivision names.
77
+ # @param result_method [Symbol] An optional method of `Country` to apply to the result set.
78
+ # @return [Array] An array of countries with subdivisions matching the provided name, or the result of applying `result_method` to the array of `Country` objects
79
+ def collect_likely_countries_by_subdivision_name(subdivision_str, result_method = :itself)
80
+ return nil unless method_defined? result_method
81
+
82
+ all.select { |country| country.subdivision_for_string?(subdivision_str) }
83
+ .map { |country| country.send(result_method) }
84
+ end
85
+
67
86
  protected
68
87
 
69
88
  def strip_accents(string)
70
89
  if string.is_a?(Regexp)
71
- Regexp.new(string.source.unaccent, 'i')
90
+ Regexp.new(Unaccent.unaccent(string.source), 'i')
72
91
  else
73
- string.to_s.unaccent.downcase
92
+ Unaccent.unaccent(string.to_s).downcase
74
93
  end
75
94
  end
76
95
 
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ISO3166
4
+ module CountrySubdivisionMethods
5
+ # @param subdivision_str [String] A subdivision name or code to search for. Search includes translated subdivision names.
6
+ # @return [Subdivision] The first subdivision matching the provided string
7
+ def find_subdivision_by_name(subdivision_str)
8
+ subdivisions.select do |k, v|
9
+ subdivision_str == k || v.name == subdivision_str || v.translations.values.include?(subdivision_str)
10
+ end.values.first
11
+ end
12
+
13
+ def subdivision_for_string?(subdivision_str)
14
+ !subdivisions.transform_values(&:translations)
15
+ .select { |k, v| subdivision_str == k || v.values.include?(subdivision_str) }.empty?
16
+ end
17
+
18
+ # +true+ if this Country has any Subdivisions.
19
+ def subdivisions?
20
+ !subdivisions.empty?
21
+ end
22
+
23
+ # @return [Array<ISO3166::Subdivision>] the list of subdivisions for this Country.
24
+ def subdivisions
25
+ @subdivisions ||= if data['subdivisions']
26
+ ISO3166::Data.create_subdivisions(data['subdivisions'])
27
+ else
28
+ ISO3166::Data.subdivisions(alpha2)
29
+ end
30
+ end
31
+
32
+ # @param types [Array<String>] The locale to use for translations.
33
+ # @return [Array<ISO3166::Subdivision>] the list of subdivisions of the given type(s) for this Country.
34
+ def subdivisions_of_types(types)
35
+ subdivisions.select { |_k, v| types.include?(v.type) }
36
+ end
37
+
38
+ # @return [Array<String>] the list of subdivision types for this country
39
+ def subdivision_types
40
+ subdivisions.map { |_k, v| v['type'] }.uniq
41
+ end
42
+
43
+ # @return [Array<String>] the list of humanized subdivision types for this country. Uses ActiveSupport's `#humanize` if available
44
+ def humanized_subdivision_types
45
+ if String.instance_methods.include?(:humanize)
46
+ subdivisions.map { |_k, v| v['type'].humanize }.uniq
47
+ else
48
+ subdivisions.map { |_k, v| humanize_string(v['type']) }.uniq
49
+ end
50
+ end
51
+
52
+ # @param locale [String] The locale to use for translations.
53
+ # @return [Array<Array>] This Country's subdivision pairs of names and codes.
54
+ def subdivision_names_with_codes(locale = 'en')
55
+ subdivisions.map { |k, v| [v.translations[locale] || v.name, k] }
56
+ end
57
+
58
+ # @param locale [String] The locale to use for translations.
59
+ # @return [Array<String>] A list of subdivision names for this country.
60
+ def subdivision_names(locale = 'en')
61
+ subdivisions.map { |_k, v| v.translations[locale] || v.name }
62
+ end
63
+
64
+ def states
65
+ if RUBY_VERSION =~ /^3\.\d\.\d/
66
+ warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
67
+ uplevel: 1, category: :deprecated
68
+ else
69
+ warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
70
+ uplevel: 1
71
+ end
72
+
73
+ subdivisions
74
+ end
75
+
76
+ private
77
+
78
+ def humanize_string(str)
79
+ str[0].upcase + str.tr('_', ' ')[1..]
80
+ end
81
+ end
82
+ end
@@ -6,7 +6,6 @@ module ISO3166
6
6
  # Optional extension which allows you to get back a +Money::Currency+ object with all the currency info.
7
7
  # This requires enabling the integration with the {Money}[https://github.com/RubyMoney/money] gem (See {ISO3166::Configuration#enable_currency_extension!})
8
8
  module CountryCurrencyMethods
9
-
10
9
  # @return [Money::Currency] The currency data for this Country's +currency_code+
11
10
  def currency
12
11
  Money::Currency.find(data['currency_code'])
@@ -57,9 +57,7 @@ module ISO3166
57
57
  raise "Invalid attribute name '#{attribute}'" unless searchable_attribute?(attribute.to_sym)
58
58
 
59
59
  attributes = Array(attribute.to_s)
60
- if attribute.to_s == 'any_name'
61
- attributes = %w[iso_long_name iso_short_name unofficial_names translated_names]
62
- end
60
+ attributes = %w[iso_long_name iso_short_name unofficial_names translated_names] if attribute.to_s == 'any_name'
63
61
 
64
62
  [attributes, parse_value(val)]
65
63
  end
@@ -75,7 +73,7 @@ module ISO3166
75
73
 
76
74
  def searchable_attributes
77
75
  # Add name and names until we complete the deprecation of the finders
78
- instance_methods - UNSEARCHABLE_METHODS + [:name, :names, :any_name]
76
+ instance_methods - UNSEARCHABLE_METHODS + %i[name names any_name]
79
77
  end
80
78
  end
81
79
  end
@@ -5,6 +5,7 @@ module ISO3166
5
5
  extend CountryClassMethods
6
6
  extend CountryFinderMethods
7
7
  include Emoji
8
+ include CountrySubdivisionMethods
8
9
  attr_reader :data
9
10
 
10
11
  ISO3166::DEFAULT_COUNTRY_HASH.each do |method_name, _type|
@@ -50,59 +51,24 @@ module ISO3166
50
51
  to_s <=> other.to_s
51
52
  end
52
53
 
53
- # +true+ if this Country has any Subdivisions.
54
- def subdivisions?
55
- !subdivisions.empty?
56
- end
57
-
58
- # @return [Array<ISO3166::Subdivision>] the list of subdivisions for this Country.
59
- def subdivisions
60
- @subdivisions ||= if data['subdivisions']
61
- ISO3166::Data.create_subdivisions(data['subdivisions'])
62
- else
63
- ISO3166::Data.subdivisions(alpha2)
64
- end
65
- end
66
-
67
- # @param types [Array<String>] The locale to use for translations.
68
- # @return [Array<ISO3166::Subdivision>] the list of subdivisions of the given type(s) for this Country.
69
- def subdivisions_of_types(types)
70
- subdivisions.select{|k,v| types.include?(v.type)}
71
- end
72
-
73
- # @return [Array<String>] the list of subdivision types for this country
74
- def subdivision_types
75
- subdivisions.map{|k,v| v['type']}.uniq
76
- end
77
-
78
- # @return [Array<String>] the list of humanized subdivision types for this country. Uses ActiveSupport's `#humanize` if available
79
- def humanized_subdivision_types
80
- if String.instance_methods.include?(:humanize)
81
- subdivisions.map{|k,v| v['type'].humanize}.uniq
82
- else
83
- subdivisions.map{|k,v| v['type'][0].upcase + v['type'].tr('_', ' ')[1..-1]}.uniq
84
- end
54
+ # +true+ if this country is a member of the European Union.
55
+ def in_eu?
56
+ data['eu_member'].nil? ? false : data['eu_member']
85
57
  end
86
58
 
87
- # @param locale [String] The locale to use for translations.
88
- # @return [Array<Array>] This Country's subdivision pairs of names and codes.
89
- def subdivision_names_with_codes(locale = 'en')
90
- subdivisions.map { |k, v| [v.translations[locale] || v.name, k] }
59
+ # +true+ if this country is a member of the G7.
60
+ def in_g7?
61
+ data['g7_member'].nil? ? false : data['g7_member']
91
62
  end
92
63
 
93
- def states
94
- if RUBY_VERSION =~ /^3\.\d\.\d/
95
- warn "DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.", uplevel: 1, category: :deprecated
96
- else
97
- warn "DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.", uplevel: 1
98
- end
99
-
100
- subdivisions
64
+ # +true+ if this country is a member of the G20.
65
+ def in_g20?
66
+ data['g20_member'].nil? ? false : data['g20_member']
101
67
  end
102
68
 
103
- # +true+ if this country is a member of the European Union.
104
- def in_eu?
105
- data['eu_member'].nil? ? false : data['eu_member']
69
+ # +true+ if this country is a member of the European Economic Area or it is UK
70
+ def gdpr_compliant?
71
+ data['eea_member'] || alpha2 == 'GB'
106
72
  end
107
73
 
108
74
  # +true+ if this country is a member of the European Economic Area.
@@ -115,13 +81,23 @@ module ISO3166
115
81
  data['esm_member'].nil? ? in_eea? : data['esm_member']
116
82
  end
117
83
 
84
+ # +true+ if this country is a member of the EU VAT Area.
85
+ def in_eu_vat?
86
+ data['euvat_member'].nil? ? in_eu? : data['euvat_member']
87
+ end
88
+
89
+ # @return [String] The regex for valid postal codes in this Country
90
+ def postal_code_format
91
+ "\\A#{data['postal_code_format']}\\Z" if postal_code
92
+ end
93
+
118
94
  def to_s
119
95
  data['iso_short_name']
120
96
  end
121
97
 
122
98
  # @return [Array<String>] the list of names for this Country in all loaded locales.
123
99
  def translated_names
124
- data['translations'].values
100
+ data['translations'].values.compact
125
101
  end
126
102
 
127
103
  # @param locale [String] The locale to use for translations.
@@ -167,6 +143,9 @@ module ISO3166
167
143
  # @!attribute currency_code
168
144
  # @return [String] the ISO 4217 currency code for this Country
169
145
  #
146
+ # @!attribute distance_unit
147
+ # @return [String] the unit for roading distance and speed for this Country
148
+ #
170
149
  # @!attribute gec
171
150
  # @return [String] the "Geopolitical Entities and Codes", formerly FIPS 10-4 code for this Country
172
151
  #
@@ -209,9 +188,6 @@ module ISO3166
209
188
  # @!attribute postal_code
210
189
  # @return [Boolean] Does this Country uses postal codes in addresses
211
190
  #
212
- # @!attribute postal_code_format
213
- # @return [String] The regex for valid postal codes in this Country
214
- #
215
191
  # @!attribute region
216
192
  # @return [String] The Region this country is in. Approximately matches the United Nations geoscheme
217
193
  #
@@ -5,6 +5,7 @@ AD:
5
5
  continent: Europe
6
6
  country_code: '376'
7
7
  currency_code: EUR
8
+ distance_unit: KM
8
9
  gec: AN
9
10
  geo:
10
11
  latitude: 42.506285
@@ -10,6 +10,7 @@ AE:
10
10
  continent: Asia
11
11
  country_code: '971'
12
12
  currency_code: AED
13
+ distance_unit: KM
13
14
  gec: AE
14
15
  geo:
15
16
  latitude: 23.424076
@@ -5,6 +5,7 @@ AF:
5
5
  continent: Asia
6
6
  country_code: '93'
7
7
  currency_code: AFN
8
+ distance_unit: KM
8
9
  gec: AF
9
10
  geo:
10
11
  latitude: 33.93911
@@ -5,6 +5,7 @@ AG:
5
5
  continent: North America
6
6
  country_code: '1'
7
7
  currency_code: XCD
8
+ distance_unit: KM
8
9
  gec: AC
9
10
  geo:
10
11
  latitude: 17.060816
@@ -5,6 +5,7 @@ AI:
5
5
  continent: North America
6
6
  country_code: '1'
7
7
  currency_code: XCD
8
+ distance_unit: KM
8
9
  gec: AV
9
10
  geo:
10
11
  latitude: 18.220554
@@ -5,6 +5,7 @@ AL:
5
5
  continent: Europe
6
6
  country_code: '355'
7
7
  currency_code: ALL
8
+ distance_unit: KM
8
9
  gec: AL
9
10
  geo:
10
11
  latitude: 41.153332
@@ -5,6 +5,7 @@ AM:
5
5
  continent: Asia
6
6
  country_code: '374'
7
7
  currency_code: AMD
8
+ distance_unit: KM
8
9
  gec: AM
9
10
  geo:
10
11
  latitude: 40.069099
@@ -5,6 +5,7 @@ AO:
5
5
  continent: Africa
6
6
  country_code: '244'
7
7
  currency_code: AOA
8
+ distance_unit: KM
8
9
  gec: AO
9
10
  geo:
10
11
  latitude: -11.202692
@@ -5,6 +5,7 @@ AQ:
5
5
  continent: Antarctica
6
6
  country_code: '672'
7
7
  currency_code: USD
8
+ distance_unit: KM
8
9
  gec: AY
9
10
  geo:
10
11
  latitude: -82.862752
@@ -11,6 +11,8 @@ AR:
11
11
  continent: South America
12
12
  country_code: '54'
13
13
  currency_code: ARS
14
+ distance_unit: KM
15
+ g20_member: true
14
16
  gec: AR
15
17
  geo:
16
18
  latitude: -38.416097
@@ -5,6 +5,7 @@ AS:
5
5
  continent: Australia
6
6
  country_code: '1'
7
7
  currency_code: USD
8
+ distance_unit: MI
8
9
  gec: AQ
9
10
  geo:
10
11
  latitude: -14.270972
@@ -10,6 +10,7 @@ AT:
10
10
  continent: Europe
11
11
  country_code: '43'
12
12
  currency_code: EUR
13
+ distance_unit: KM
13
14
  eea_member: true
14
15
  eu_member: true
15
16
  gec: AU
@@ -10,6 +10,8 @@ AU:
10
10
  continent: Australia
11
11
  country_code: '61'
12
12
  currency_code: AUD
13
+ distance_unit: KM
14
+ g20_member: true
13
15
  gec: AS
14
16
  geo:
15
17
  latitude: -25.274398
@@ -47,6 +49,7 @@ AU:
47
49
  subregion: Australia and New Zealand
48
50
  un_locode: AU
49
51
  unofficial_names:
52
+ - Australia
50
53
  - Australien
51
54
  - Australie
52
55
  - オーストラリア
@@ -5,6 +5,7 @@ AW:
5
5
  continent: North America
6
6
  country_code: '297'
7
7
  currency_code: AWG
8
+ distance_unit: KM
8
9
  gec: AA
9
10
  geo:
10
11
  latitude: 12.52111
@@ -5,6 +5,9 @@ AX:
5
5
  continent: Europe
6
6
  country_code: '358'
7
7
  currency_code: EUR
8
+ distance_unit: KM
9
+ eu_member: true
10
+ euvat_member: false
8
11
  gec:
9
12
  geo:
10
13
  latitude: 60.1785247
@@ -5,6 +5,7 @@ AZ:
5
5
  continent: Asia
6
6
  country_code: '994'
7
7
  currency_code: AZN
8
+ distance_unit: KM
8
9
  gec: AJ
9
10
  geo:
10
11
  latitude: 40.143105
@@ -10,6 +10,7 @@ BA:
10
10
  continent: Europe
11
11
  country_code: '387'
12
12
  currency_code: BAM
13
+ distance_unit: KM
13
14
  gec: BK
14
15
  geo:
15
16
  latitude: 43.915886
@@ -5,6 +5,7 @@ BB:
5
5
  continent: North America
6
6
  country_code: '1'
7
7
  currency_code: BBD
8
+ distance_unit: KM
8
9
  gec: BB
9
10
  geo:
10
11
  latitude: 13.193887
@@ -5,6 +5,7 @@ BD:
5
5
  continent: Asia
6
6
  country_code: '880'
7
7
  currency_code: BDT
8
+ distance_unit: KM
8
9
  gec: BG
9
10
  geo:
10
11
  latitude: 23.684994
@@ -10,6 +10,7 @@ BE:
10
10
  continent: Europe
11
11
  country_code: '32'
12
12
  currency_code: EUR
13
+ distance_unit: KM
13
14
  eea_member: true
14
15
  eu_member: true
15
16
  gec: BE
@@ -5,6 +5,7 @@ BF:
5
5
  continent: Africa
6
6
  country_code: '226'
7
7
  currency_code: XOF
8
+ distance_unit: KM
8
9
  gec: UV
9
10
  geo:
10
11
  latitude: 12.238333
@@ -10,6 +10,7 @@ BG:
10
10
  continent: Europe
11
11
  country_code: '359'
12
12
  currency_code: BGN
13
+ distance_unit: KM
13
14
  eea_member: true
14
15
  eu_member: true
15
16
  gec: BU
@@ -10,6 +10,7 @@ BH:
10
10
  continent: Asia
11
11
  country_code: '973'
12
12
  currency_code: BHD
13
+ distance_unit: KM
13
14
  gec: BA
14
15
  geo:
15
16
  latitude: 26.0667
@@ -5,6 +5,7 @@ BI:
5
5
  continent: Africa
6
6
  country_code: '257'
7
7
  currency_code: BIF
8
+ distance_unit: KM
8
9
  gec: BY
9
10
  geo:
10
11
  latitude: -3.373056
@@ -5,6 +5,7 @@ BJ:
5
5
  continent: Africa
6
6
  country_code: '229'
7
7
  currency_code: XOF
8
+ distance_unit: KM
8
9
  gec: BN
9
10
  geo:
10
11
  latitude: 9.30769
@@ -5,6 +5,7 @@ BL:
5
5
  continent: North America
6
6
  country_code: '590'
7
7
  currency_code: EUR
8
+ distance_unit: KM
8
9
  gec: TB
9
10
  geo:
10
11
  latitude: 17.9
@@ -5,6 +5,7 @@ BM:
5
5
  continent: North America
6
6
  country_code: '1'
7
7
  currency_code: BMD
8
+ distance_unit: KM
8
9
  gec: BD
9
10
  geo:
10
11
  latitude: 32.3078
@@ -5,6 +5,7 @@ BN:
5
5
  continent: Asia
6
6
  country_code: '673'
7
7
  currency_code: BND
8
+ distance_unit: KM
8
9
  gec: BX
9
10
  geo:
10
11
  latitude: 4.535277
@@ -5,6 +5,7 @@ BO:
5
5
  continent: South America
6
6
  country_code: '591'
7
7
  currency_code: BOB
8
+ distance_unit: KM
8
9
  gec: BL
9
10
  geo:
10
11
  latitude: -16.290154
@@ -5,6 +5,7 @@ BQ:
5
5
  continent: North America
6
6
  country_code: '599'
7
7
  currency_code: USD
8
+ distance_unit: KM
8
9
  geo:
9
10
  latitude: 12.1783611
10
11
  longitude: -68.2385339
@@ -10,6 +10,8 @@ BR:
10
10
  continent: South America
11
11
  country_code: '55'
12
12
  currency_code: BRL
13
+ distance_unit: KM
14
+ g20_member: true
13
15
  gec: BR
14
16
  geo:
15
17
  latitude: -14.235004
@@ -5,6 +5,7 @@ BS:
5
5
  continent: North America
6
6
  country_code: '1'
7
7
  currency_code: BSD
8
+ distance_unit: MI
8
9
  gec: BF
9
10
  geo:
10
11
  latitude: 25.03428