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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b239f5f25018bc1ba87fd49d3b1b8adfad49b7e24e4e17a2793aa886d1cd4c59
4
- data.tar.gz: a6fc5738ec1c281a68efd1109d6763ad08a6082e63c2d400b7216d862b7e823a
3
+ metadata.gz: c899eb4d93a991dad1042faa41bd9da5d00917fbf2078fa360b76f46dac4b927
4
+ data.tar.gz: 619d488a304a745236d3994bd1666cfe6260caa55757b1b0c2b548c28040a11c
5
5
  SHA512:
6
- metadata.gz: da2b9eeb20881a037dffc3c0280405deac1d1be3c9ed01be1fe5bbb9ff1f8ace189ee97803371080e07df93118b3dd982bb67349f745252d2e7e411c14a90517
7
- data.tar.gz: 1044da2ddbf3ec28d3676d480185f7ad6d370ac81dd9d2e07e77f637110db3a9d0689128072a273785aedf7b6b33b2aa9550d6417cd567cf371d375b40bdcaf8
6
+ metadata.gz: 8e2f8f9c4e7f1498c522013f9538cf03d1ecddd58f86523dcab4c4bdbf1b859c541a21b8cfcf1648a2a854a685579cba9a2e16ac1d85f49d859c64d76e4eaa26
7
+ data.tar.gz: 061d4c74ebc635e7e22a1c86d841d437964c15843903180d2ae42542cb3de6ab681ea868bb9e6c57de47f7d045c9e428d0d878221bfe17869c25fe1ec5688d8d
data/.codeclimate.yml ADDED
@@ -0,0 +1,61 @@
1
+ version: "2"
2
+ checks:
3
+ argument-count:
4
+ enabled: true
5
+ config:
6
+ threshold: 4
7
+ complex-logic:
8
+ enabled: true
9
+ config:
10
+ threshold: 4
11
+ file-lines:
12
+ enabled: true
13
+ config:
14
+ threshold: 250
15
+ method-complexity:
16
+ enabled: true
17
+ config:
18
+ threshold: 5
19
+ method-count:
20
+ enabled: true
21
+ config:
22
+ threshold: 20
23
+ method-lines:
24
+ enabled: true
25
+ config:
26
+ threshold: 25
27
+ nested-control-flow:
28
+ enabled: true
29
+ config:
30
+ threshold: 4
31
+ return-statements:
32
+ enabled: true
33
+ config:
34
+ threshold: 4
35
+ plugins:
36
+ rubocop:
37
+ enabled: true
38
+ channel: rubocop-1-48-1
39
+ reek:
40
+ enabled: true
41
+ checks:
42
+ IrresponsibleModule:
43
+ enabled: false
44
+ TooManyStatements:
45
+ max_statements: 7
46
+ flog:
47
+ enabled: true
48
+ bundler-audit:
49
+ enabled: true
50
+ exclude_patterns:
51
+ - "config/"
52
+ - "db/"
53
+ - "dist/"
54
+ - "features/"
55
+ - "**/node_modules/"
56
+ - "script/"
57
+ - "**/spec/"
58
+ - "**/test/"
59
+ - "**/tests/"
60
+ - "**/vendor/"
61
+ - "**/*.d.ts"
@@ -0,0 +1 @@
1
+ github: pmor
@@ -42,7 +42,7 @@ jobs:
42
42
 
43
43
  # Initializes the CodeQL tools for scanning.
44
44
  - name: Initialize CodeQL
45
- uses: github/codeql-action/init@v1
45
+ uses: github/codeql-action/init@v2
46
46
  with:
47
47
  languages: ${{ matrix.language }}
48
48
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
53
53
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
54
  # If this step fails, then you should remove it and run the build manually (see below)
55
55
  - name: Autobuild
56
- uses: github/codeql-action/autobuild@v1
56
+ uses: github/codeql-action/autobuild@v2
57
57
 
58
58
  # ℹ️ Command-line programs to run using the OS shell.
59
59
  # 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
67
67
  # make release
68
68
 
69
69
  - name: Perform CodeQL Analysis
70
- uses: github/codeql-action/analyze@v1
70
+ uses: github/codeql-action/analyze@v2
@@ -4,32 +4,29 @@ on:
4
4
  pull_request:
5
5
  paths-ignore:
6
6
  - 'README.md'
7
+ - 'CHANGELOG.md'
7
8
  push:
8
9
  paths-ignore:
9
10
  - 'README.md'
11
+ - 'CHANGELOG.md'
10
12
 
11
13
  jobs:
12
14
  test:
13
15
  runs-on: ubuntu-latest
14
-
15
16
  strategy:
17
+ fail-fast: false
16
18
  matrix:
17
- include:
18
- - ruby-version: 2.7.6
19
- bundler-version: default
20
- - ruby-version: 3.0.4
21
- bundler-version: default
22
- - ruby-version: 3.1.2
23
- bundler-version: default
19
+ ruby: [2.7, '3.0', 3.1, 3.2]
20
+ env:
21
+ CC_TEST_REPORTER_ID: 1670b97bb8c09d4f4bad81e559f41c7588641c67bd700c933c267bbe7dbbef7f
24
22
  steps:
25
- - uses: actions/checkout@v2
23
+ - uses: actions/checkout@v3
26
24
  - name: Set up Ruby ${{ matrix.ruby-version }}
27
25
  uses: ruby/setup-ruby@v1
28
26
  with:
29
- ruby-version: ${{ matrix.ruby-version }}
30
- bundler: ${{ matrix.bundler-version }}
27
+ ruby-version: ${{ matrix.ruby }}
31
28
  bundler-cache: true
32
- - name: Install dependencies
33
- run: bundle install
34
29
  - name: Run tests
35
30
  run: bundle exec rake
31
+ - name: Publish code coverage
32
+ uses: paambaati/codeclimate-action@v4.0.0
data/.gitignore CHANGED
@@ -5,7 +5,6 @@
5
5
  .bundle
6
6
  .config
7
7
  .yardoc
8
- Gemfile.lock
9
8
  InstalledFiles
10
9
  _yardoc
11
10
  coverage
data/.rubocop.yml CHANGED
@@ -1,22 +1,30 @@
1
- inherit_from: .rubocop_todo.yml
2
1
 
3
2
  AllCops:
4
3
  NewCops: enable
4
+ TargetRubyVersion: 2.7
5
5
 
6
6
  Layout/LineLength:
7
+ Max: 120
8
+ AllowedPatterns: ['^ *# ']
7
9
  Exclude:
8
10
  - countries.gemspec
11
+ - 'spec/**/*'
12
+
13
+ Metrics/MethodLength:
14
+ Enabled: false
15
+
16
+ Style/Documentation:
17
+ Enabled: false
18
+
19
+ Bundler/OrderedGems:
20
+ Enabled: false
9
21
 
10
22
  Metrics/BlockLength:
11
23
  Exclude:
12
24
  - 'spec/**/*'
13
25
  - Rakefile
14
- - 'spec/**/*'
15
26
  - 'lib/countries/tasks/*'
16
27
 
17
- Style/RescueModifier:
18
- Enabled: false
19
-
20
28
  Style/CaseEquality:
21
29
  Exclude:
22
30
  - 'lib/countries/country/finder_methods.rb'
@@ -33,8 +41,9 @@ Lint/AmbiguousBlockAssociation:
33
41
  Exclude:
34
42
  - 'spec/perf_spec.rb'
35
43
 
36
- Metrics/MethodLength:
37
- Max: 20
38
-
39
44
  Metrics/ClassLength:
40
45
  Max: 130
46
+
47
+ Metrics/AbcSize:
48
+ Exclude:
49
+ - 'lib/countries/sources/cldr/*'
data/CHANGELOG.md CHANGED
@@ -3,7 +3,102 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](https://semver.org/).
5
5
 
6
- ## [5.1.2](https://github.com/countries/countries/releases/tag/v5.1.1') (2022/08/11 14:35 +00:00)
6
+ ## [5.7.0](https://github.com/countries/countries/releases/tag/v5.7.0') (2023/10/07 10:57 +00:00)
7
+
8
+ **New Feature:**
9
+ * Add distance_unit attribute to countries data [\#820](https://github.com/countries/countries/pull/820) ([dwtong](https://github.com/dwtong))
10
+
11
+ **Fixes:**
12
+ * North Macedonia LT translation [\#821](https://github.com/countries/countries/pull/821) ([tomukas](https://github.com/tomukas))
13
+ * Fix Azerbaijão wording in pt-BR [\#819](https://github.com/countries/countries/pull/819) ([duduribeiro](https://github.com/duduribeiro))
14
+ * Remove duplicate key in subdivisions/US.yaml [\#822](https://github.com/countries/countries/pull/822) ([pioz](https://github.com/pioz))
15
+
16
+
17
+ ## [5.6.0](https://github.com/countries/countries/releases/tag/v5.6.0') (2023/08/01 14:00 +00:00)
18
+
19
+ * Fix Taiwan's iso_long_name not matching ISO data. [\#810](https://github.com/countries/countries/pull/810) ([pmor](https://github.com/pmor))
20
+ * Wrap postal code format regex in anchors [\#814](https://github.com/countries/countries/pull/814) ([pmor](https://github.com/pmor))
21
+
22
+ ## [5.5.0](https://github.com/countries/countries/releases/tag/v5.5.0') (2023/06/17 16:20 +00:00)
23
+
24
+ * Added G20 and G7 member fields [\#799](https://github.com/countries/countries/pull/799) ([AndromedaSugar](https://github.com/AndromedaSugar))
25
+ * Update subdivision translations from CLDR [\#802](https://github.com/countries/countries/pull/802) ([pmor](https://github.com/pmor))
26
+ * Adds Country#collect_countries_with, Country#collect_likely_subdivisions, Country.find_subdivision_with, Country.find_subdivision_code_with_translations [\#800](https://github.com/countries/countries/pull/800) ([pmor](https://github.com/pmor))
27
+ * Add Japanese translation to subdivisions data [\#804](https://github.com/countries/countries/pull/804) ([shucream-p](https://github.com/shucream-p))
28
+ * Adding gdpr_compliant method to check if a country is regulated by GDPR [\#807](https://github.com/countries/countries/pull/807) ([yeseniamolinab](https://github.com/yeseniamolinab))
29
+
30
+ ## [5.4.0](https://github.com/countries/countries/releases/tag/v5.4.0') (2023/04/12 12:44 +00:00)
31
+
32
+ * fix: RUP are part of the European Union [\#794](https://github.com/countries/countries/pull/794) ([btrd](https://github.com/btrd))
33
+ * Fix wrong translation of MY in gn locale [\#798](https://github.com/countries/countries/pull/798) ([pmor](https://github.com/pmor))
34
+ * Add EU VAT Area membership [\#796](https://github.com/countries/countries/pull/796) ([pmor](https://github.com/pmor))
35
+
36
+ ## [5.3.2](https://github.com/countries/countries/releases/tag/v5.3.2') (2023/03/31 13:46 +00:00)
37
+
38
+ * Add Japanese translation for Czechia, North Macedonia and Eswatini [\#795](https://github.com/countries/countries/pull/795) ([nmbakfm](https://github.com/nmbakfm))
39
+
40
+ ## [5.3.1](https://github.com/countries/countries/releases/tag/v5.3.1') (2023/01/26 14:05 +00:00)
41
+
42
+ * Update countries-th.yaml [\#792](https://github.com/countries/countries/pull/792) ([worrawutp](https://github.com/worrawutp))
43
+ * Fix [\#765](https://github.com/countries/countries/issues/765) - Restore `Australia` as first unnoficial name for Australia ([pmor](https://github.com/pmor))
44
+
45
+
46
+ **Full Changelog**: https://github.com/countries/countries/compare/v5.3.0...v5.3.1
47
+
48
+ ## [5.3.0](https://github.com/countries/countries/releases/tag/v5.3.0') (2023/01/03 17:02 +00:00)
49
+
50
+ **Merged pull requests:**
51
+
52
+ * Remove dead code: KwargStruct [\#787](https://github.com/countries/countries/pull/787) ([pmor](https://github.com/pmor))
53
+ * Update data for Turkmenistan and add Turkmen translation [\#789](https://github.com/countries/countries/pull/789) ([msuliq](https://github.com/msuliq))
54
+ * Add Country#subdivision_names method [\#788](https://github.com/countries/countries/pull/788) ([pmor](https://github.com/pmor))
55
+
56
+ ## [5.2.1](https://github.com/countries/countries/releases/tag/v5.2.1') (2022/12/22 15:29 +00:00)
57
+
58
+ **Important changes**
59
+
60
+ * The Republic of Croatia will join the Eurozone and switch currency to `EUR` in Jan 1 2023. If you update this gem before that date and need to have correct currency codes as of 2022, I recommend using an initializer to re-register Croatia with `HRK`, which you could wrap with a check of the current date, eg:
61
+
62
+ ```ruby
63
+ # In an initializer
64
+ if Date.today.year == 2022
65
+ new_data = ISO3166::Country['HR'].data
66
+ new_data.transform_keys! &:to_sym
67
+ new_data[:currency_code] = 'HRK'
68
+ ISO3166::Data.register new_data
69
+ end
70
+ ```
71
+
72
+ **Merged pull requests:**
73
+
74
+ * Fix changelog to point to correct PR [\#778](https://github.com/countries/countries/pull/778) ([carlosantoniodasilva](https://github.com/carlosantoniodasilva))
75
+ * Document how to get country codes (alpha2) [ci skip] [\#781](https://github.com/countries/countries/pull/781) ([jean-francois-labbe](https://github.com/carlosantoniodasilva))
76
+ * Update Croatia's currency to EUR [\#784](https://github.com/countries/countries/pull/784) ([pmor](https://github.com/pmor))
77
+ * Duplicate `I18n.available_locales` into `default_locales` [\#785](https://github.com/countries/countries/pull/785) ([pmor](https://github.com/pmor))
78
+
79
+
80
+ ## [5.2.0](https://github.com/countries/countries/releases/tag/v5.2.0') (2022/10/28 14:35 +00:00)
81
+
82
+ **Important changes**
83
+
84
+ * The Republic of Turkey has officially changed its name to `The Republic of Türkiye`, short name `Türkiye`. Official name attributes have been updated, as well as several translations. This could be a breaking change if you rely on the old name.
85
+
86
+ * The `sixarm_ruby_unaccent` gem was replaced with `unaccent`. See [\#767](https://github.com/countries/countries/pull/767)
87
+
88
+ **Merged pull requests:**
89
+
90
+ * Ensure #translated_names is compacted [\#777](https://github.com/countries/countries/pull/777) ([pmor](https://github.com/pmor))
91
+ * Rename turkey to Türkiye [\#771](https://github.com/countries/countries/pull/771) ([larskuhnt](https://github.com/larskuhnt))
92
+ * Fix Upgrade.md route on README.markdown [\#766](https://github.com/countries/countries/pull/766) ([dmartingarcia](https://github.com/dmartingarcia))
93
+ * Update french, missing uppercase letters [\#769](https://github.com/countries/countries/pull/769) ([JulienItard](https://github.com/JulienItard))
94
+ * german translations for CI and CV [\#770](https://github.com/countries/countries/pull/770) ([larskuhnt](https://github.com/larskuhnt))
95
+ * Fix Czechia name in LT translation [\#773](https://github.com/countries/countries/pull/773) ([tomukas](https://github.com/tomukas))
96
+ * Updated Taiwan unofficial names [\#772](https://github.com/countries/countries/pull/772) ([Tzenda](https://github.com/Tzenda))
97
+ * Replace sixarm_ruby_unaccent with unaccent [\#767](https://github.com/countries/countries/pull/767) ([jonian](https://github.com/jonian))
98
+
99
+ ## [5.1.2](https://github.com/countries/countries/releases/tag/v5.1.2') (2022/08/11 14:35 +00:00)
100
+
101
+ **Merged pull requests:**
7
102
 
8
103
  * Missing unofficial translations, addresses the remaining translations in [\#580](https://github.com/countries/countries/issues/580) - [\#764](https://github.com/countries/countries/pull/764) ([pmor](https://github.com/pmor))
9
104
 
@@ -31,7 +126,7 @@ This project adheres to [Semantic Versioning](https://semver.org/).
31
126
 
32
127
  **Merged pull requests:**
33
128
 
34
- * Remove i18n_data dependency [\#755](https://github.com/countries/countries/pull/755) ([pmor](https://github.com/pmor))
129
+ * Remove i18n_data dependency [\#756](https://github.com/countries/countries/pull/756) ([pmor](https://github.com/pmor))
35
130
  * Update subdivision YAML with codes [\#757](https://github.com/countries/countries/pull/757) ([pmor](https://github.com/pmor))
36
131
  * Add subdivision types from ISO3166-2 [\#758](https://github.com/countries/countries/pull/758) ([pmor](https://github.com/pmor))
37
132
 
data/Gemfile CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
- gem 'geocoder'
5
4
  gem 'money'
6
5
  gem 'rake'
7
6
  gem 'retryable'
@@ -11,6 +10,6 @@ gem 'tzinfo'
11
10
  gemspec
12
11
 
13
12
  group :development, :test do
14
- gem 'pry'
13
+ gem 'debug'
15
14
  gem 'yaml'
16
15
  end
data/Gemfile.lock ADDED
@@ -0,0 +1,102 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ countries (5.7.0)
5
+ unaccent (~> 0.3)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activesupport (7.1.0)
11
+ base64
12
+ bigdecimal
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ connection_pool (>= 2.2.5)
15
+ drb
16
+ i18n (>= 1.6, < 2)
17
+ minitest (>= 5.1)
18
+ mutex_m
19
+ tzinfo (~> 2.0)
20
+ base64 (0.1.1)
21
+ bigdecimal (3.1.4)
22
+ concurrent-ruby (1.2.2)
23
+ connection_pool (2.4.1)
24
+ debug (1.8.0)
25
+ irb (>= 1.5.0)
26
+ reline (>= 0.3.1)
27
+ diff-lcs (1.5.0)
28
+ docile (1.4.0)
29
+ drb (2.1.1)
30
+ ruby2_keywords
31
+ i18n (1.14.1)
32
+ concurrent-ruby (~> 1.0)
33
+ io-console (0.6.0)
34
+ irb (1.8.1)
35
+ rdoc
36
+ reline (>= 0.3.8)
37
+ minitest (5.20.0)
38
+ money (6.16.0)
39
+ i18n (>= 0.6.4, <= 2)
40
+ mutex_m (0.1.2)
41
+ nokogiri (1.15.4-arm64-darwin)
42
+ racc (~> 1.4)
43
+ nokogiri (1.15.4-x86_64-darwin)
44
+ racc (~> 1.4)
45
+ nokogiri (1.15.4-x86_64-linux)
46
+ racc (~> 1.4)
47
+ psych (5.1.0)
48
+ stringio
49
+ racc (1.7.1)
50
+ rake (13.0.6)
51
+ rdoc (6.5.0)
52
+ psych (>= 4.0.0)
53
+ reline (0.3.9)
54
+ io-console (~> 0.5)
55
+ retryable (3.0.5)
56
+ rspec (3.12.0)
57
+ rspec-core (~> 3.12.0)
58
+ rspec-expectations (~> 3.12.0)
59
+ rspec-mocks (~> 3.12.0)
60
+ rspec-core (3.12.2)
61
+ rspec-support (~> 3.12.0)
62
+ rspec-expectations (3.12.3)
63
+ diff-lcs (>= 1.2.0, < 2.0)
64
+ rspec-support (~> 3.12.0)
65
+ rspec-mocks (3.12.6)
66
+ diff-lcs (>= 1.2.0, < 2.0)
67
+ rspec-support (~> 3.12.0)
68
+ rspec-support (3.12.1)
69
+ ruby2_keywords (0.0.5)
70
+ simplecov (0.22.0)
71
+ docile (~> 1.1)
72
+ simplecov-html (~> 0.11)
73
+ simplecov_json_formatter (~> 0.1)
74
+ simplecov-html (0.12.3)
75
+ simplecov_json_formatter (0.1.4)
76
+ stringio (3.0.8)
77
+ tzinfo (2.0.6)
78
+ concurrent-ruby (~> 1.0)
79
+ unaccent (0.4.0)
80
+ yaml (0.2.1)
81
+
82
+ PLATFORMS
83
+ arm64-darwin-22
84
+ x86_64-darwin-21
85
+ x86_64-darwin-22
86
+ x86_64-linux
87
+
88
+ DEPENDENCIES
89
+ activesupport (>= 3)
90
+ countries!
91
+ debug
92
+ money
93
+ nokogiri (>= 1.8)
94
+ rake
95
+ retryable
96
+ rspec (>= 3)
97
+ simplecov (~> 0.22)
98
+ tzinfo
99
+ yaml
100
+
101
+ BUNDLED WITH
102
+ 2.4.12
@@ -1,6 +1,8 @@
1
1
  # Countries
2
2
 
3
- Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard. It contains info for the following standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers). I will add any country based data I can get access to. I hope this to be a repository for all country based information.
3
+ Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard. It contains info for the following standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers).
4
+
5
+ The data used in this gem is also available as git submodules in [YAML](https://github.com/countries/countries-data-yaml) and [JSON](https://github.com/countries/countries-data-json) files.
4
6
 
5
7
  [![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries) [![Tests](https://github.com/countries/countries/actions/workflows/tests.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/tests.yml) [![Code Climate](https://codeclimate.com/github/countries/countries.svg)](https://codeclimate.com/github/countries/countries)
6
8
  [![CodeQL](https://github.com/countries/countries/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/countries/countries/actions/workflows/codeql-analysis.yml)
@@ -26,6 +28,13 @@ Simply load a new country object using Country.new(*alpha2*) or the shortcut Cou
26
28
  c = ISO3166::Country.new('US')
27
29
  ```
28
30
 
31
+ Get all country codes (*alpha2*).
32
+
33
+ ```ruby
34
+ ISO3166::Country.codes
35
+ # ["TJ", "JM", "HT",...]
36
+ ```
37
+
29
38
  ## Configuration
30
39
 
31
40
  ### Country Helper
@@ -69,7 +78,7 @@ c = ISO3166::Country.find_country_by_alpha2("FR")
69
78
  For a list of available attributes please see `ISO3166::DEFAULT_COUNTRY_HASH`.
70
79
  Note: searches are *case insensitive and ignore accents*.
71
80
 
72
- _Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods were removed in 5.0. See [UPGRADE.md](../blob/master/UPGRADE.md) for more information_
81
+ _Please note that `find_by_name`, `find_by_names`, `find_*_by_name` and `find_*_by_names` methods were removed in 5.0. See [UPGRADE.md](../master/UPGRADE.md) for more information_
73
82
 
74
83
  ## Country Info
75
84
 
@@ -123,6 +132,18 @@ c.states # => {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
123
132
 
124
133
  # Get specific translations for the country subdivisions
125
134
  c.subdivision_names_with_codes('es') #=> [ ..., ["Nuevo Hampshire", "NH"], ["Nueva Jersey", "NJ"], ... ]
135
+
136
+ # Subdivision code with translations for all loaded locales
137
+ c.subdivisions['NY'].code_with_translations #=> {"NY"=>{"en"=>"New York"}, ...}
138
+ ```
139
+
140
+ `#find_subdivision_by_name` Find a country's state using its code or name in any translation
141
+
142
+ ```ruby
143
+ > ISO3166::Country.new("IT").find_subdivision_by_name("Toscana").geo
144
+ => {"latitude"=>43.771389, "longitude"=>11.254167, ... }
145
+ > ISO3166::Country.new("IT").find_subdivision_by_name("Tuscany").geo
146
+ => {"latitude"=>43.771389, "longitude"=>11.254167, ... }
126
147
  ```
127
148
 
128
149
  ### Location
@@ -191,19 +212,59 @@ c.in_eea? # => false
191
212
  c.in_esm? # => false
192
213
  ```
193
214
 
194
- ## Country Code in Emoji
215
+ ### EU VAT Area membership
216
+
217
+ ```ruby
218
+ c.in_eu_vat? # => false
219
+ ```
220
+
221
+ ### GDPR Compliant (European Economic Area Membership or UK)
222
+
223
+ ```ruby
224
+ c.gdpr_compliant? # => false
225
+ ```
226
+
227
+ ### Country Code in Emoji
195
228
 
196
229
  ```ruby
197
230
  c = Country['MY']
198
231
  c.emoji_flag # => "🇲🇾"
199
232
  ```
200
233
 
234
+ ### Country Distance Unit (miles/kilometres)
235
+
236
+ ```ruby
237
+ c.distance_unit # => "MI"
238
+ ```
239
+
201
240
  ### Plucking multiple attributes
202
241
 
203
242
  ```ruby
204
243
  ISO3166::Country.pluck(:alpha2, :iso_short_name) # => [["AD", "Andorra"], ["AE", "United Arab Emirates"], ...
205
244
  ```
206
245
 
246
+ `.collect_countries_with` allows to collect various countries' informations using any valid method and query value:
247
+ ```ruby
248
+ > ISO3166::Country.collect_countries_with("VR",:subdivisions,:common_name)
249
+ => ["Italy", "Monaco"]
250
+ > ISO3166::Country.collect_countries_with("Caribbean",:subregion,:languages_spoken).flatten.uniq
251
+ => ["en", "fr", "es", "ht", "nl"]
252
+ > ISO3166::Country.collect_countries_with("Oceania",:region,:international_prefix).uniq
253
+ => ["00", "011", "0011", "19", "05"]
254
+ > ISO3166::Country.collect_countries_with("Antarctica",:continent,:emoji_flag)
255
+ => ["🇦🇶", "🇬🇸", "🇧🇻", "🇹🇫", "🇭🇲"]
256
+ > ISO3166::Country.collect_countries_with("🇸🇨",:emoji_flag,:common_name)
257
+ => ["Seychelles"]
258
+ ```
259
+
260
+ `.collect_likely_countries_by_subdivision_name` allows to lookup all countries having the given state code or state name (in any translation)
261
+
262
+ ```ruby
263
+ ISO3166::Country.collect_likely_countries_by_subdivision_name("San José",:common_name)
264
+ => ["Costa Rica", "Uruguay"]
265
+ ```
266
+
267
+
207
268
  ## Currencies
208
269
 
209
270
  To enable currencies extension please add the following to countries initializer.
@@ -328,17 +389,11 @@ end
328
389
 
329
390
  **Please do not submit pull requests on `cache/**/*`**. These files generated by a rake task when preparing new releases and are not meant to be manually updated.
330
391
 
331
- If you with to submit a PR to correct an translation, please edit the `lib/countries/data/translations/countries-<locale>.yaml` file. Changes to the locale YAML files will be injected during the next `rake update_cache`.
332
-
333
- * Fork the project.
334
- * Make your feature addition or bug fix.
335
- * Add tests for it. This is important so I don't break it in a
336
- future version unintentionally.
337
- * Commit, do not mess with rakefile, version, or history.
338
- (if you want to have your own version, that is fine but
339
- bump version in a commit by itself I can ignore when I pull)
340
- * Make sure your you haven't made changes to `cache/**/*`
341
- * Submit a pull request. Bonus points for topic branches.
392
+ If you with to submit a PR to update or correct country data, please edit the corresponding YAML file `lib/countries/data/**`. Changes to the YAML files will be injected during the next `rake update_cache`.
393
+
394
+ This project seeks to follow ISO3166, ISO4217 and E.164 standards in its data.
395
+
396
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
342
397
 
343
398
  ## Copyright
344
399
 
data/Rakefile CHANGED
@@ -6,12 +6,10 @@ require 'bundler/gem_tasks'
6
6
  require 'rake'
7
7
  require 'rspec/core/rake_task'
8
8
  require 'yaml'
9
+ require 'json'
9
10
 
10
11
  ISO3166_ROOT_PATH = File.dirname(__FILE__)
11
12
 
12
- # Enter your API Key enabled for Geocoding API and Places API
13
- GOOGLE_API_KEY = 'ENTER API KEY'
14
-
15
13
  Dir.glob('lib/countries/tasks/*.rake').each { |r| load r }
16
14
 
17
15
  desc 'Run all examples'
@@ -56,6 +54,7 @@ task :cleanup_subdivision_yaml do
56
54
  sd = Sources::Local::Subdivision.new(c_code)
57
55
  data = sd.load
58
56
  next if data.nil? || data == {}
57
+
59
58
  data = data.sort.to_h
60
59
  data['translations'] = data['translations'].sort.to_h unless data['translations'].nil?
61
60
  sd.save(data)
data/countries.gemspec CHANGED
@@ -3,11 +3,15 @@
3
3
  require File.expand_path('lib/countries/version', __dir__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
+ gem.name = 'countries'
7
+ gem.version = Countries::VERSION.dup
8
+ gem.licenses = ['MIT']
6
9
  gem.authors = ['Josh Robinson', 'Joe Corcoran', 'Russell Osborne', 'Pedro Moreira']
7
10
  gem.email = ['hexorx@gmail.com', 'russell@burningpony.com', 'pedro@codecreations.tech']
8
11
  gem.description = 'All sorts of useful information about every country packaged as pretty little country objects. It includes data from ISO 3166'
9
12
  gem.summary = 'Gives you a country object full of all sorts of useful information.'
10
13
  gem.homepage = 'https://github.com/countries/countries'
14
+
11
15
  gem.metadata = { 'bug_tracker_uri' => 'https://github.com/countries/countries/issues',
12
16
  'changelog_uri' => 'https://github.com/countries/countries/blob/master/CHANGELOG.md',
13
17
  'source_code_uri' => 'https://github.com/countries/countries',
@@ -15,16 +19,13 @@ Gem::Specification.new do |gem|
15
19
  'rubygems_mfa_required' => 'true' }
16
20
 
17
21
  gem.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
18
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
- gem.name = 'countries'
20
22
  gem.require_paths = ['lib']
21
- gem.version = Countries::VERSION.dup
22
- gem.license = 'MIT'
23
23
 
24
24
  gem.required_ruby_version = '>= 2.7'
25
25
 
26
- gem.add_dependency('sixarm_ruby_unaccent', '~> 1.1')
26
+ gem.add_dependency('unaccent', '~> 0.3')
27
27
  gem.add_development_dependency('activesupport', '>= 3')
28
28
  gem.add_development_dependency('nokogiri', '>= 1.8')
29
29
  gem.add_development_dependency('rspec', '>= 3')
30
+ gem.add_development_dependency('simplecov', '~> 0.22')
30
31
  end