countries 3.0.0 β†’ 6.0.1

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 (791) hide show
  1. checksums.yaml +4 -4
  2. data/lib/countries/cache/countries.json +1 -1
  3. data/lib/countries/cache/locales/ab.json +1 -0
  4. data/lib/countries/cache/locales/af.json +1 -1
  5. data/lib/countries/cache/locales/ak.json +1 -0
  6. data/lib/countries/cache/locales/am.json +1 -1
  7. data/lib/countries/cache/locales/an.json +1 -0
  8. data/lib/countries/cache/locales/ar.json +1 -1
  9. data/lib/countries/cache/locales/as.json +1 -1
  10. data/lib/countries/cache/locales/ay.json +1 -0
  11. data/lib/countries/cache/locales/az.json +1 -1
  12. data/lib/countries/cache/locales/ba.json +1 -0
  13. data/lib/countries/cache/locales/be.json +1 -1
  14. data/lib/countries/cache/locales/bg.json +1 -1
  15. data/lib/countries/cache/locales/bi.json +1 -0
  16. data/lib/countries/cache/locales/bn-in.json +1 -0
  17. data/lib/countries/cache/locales/bn.json +1 -1
  18. data/lib/countries/cache/locales/br.json +1 -1
  19. data/lib/countries/cache/locales/bs.json +1 -1
  20. data/lib/countries/cache/locales/ca.json +1 -1
  21. data/lib/countries/cache/locales/ce.json +1 -0
  22. data/lib/countries/cache/locales/ch.json +1 -0
  23. data/lib/countries/cache/locales/cs.json +1 -1
  24. data/lib/countries/cache/locales/cv.json +1 -0
  25. data/lib/countries/cache/locales/cy.json +1 -1
  26. data/lib/countries/cache/locales/da.json +1 -1
  27. data/lib/countries/cache/locales/de.json +1 -1
  28. data/lib/countries/cache/locales/dv.json +1 -0
  29. data/lib/countries/cache/locales/dz.json +1 -1
  30. data/lib/countries/cache/locales/ee.json +1 -0
  31. data/lib/countries/cache/locales/el.json +1 -1
  32. data/lib/countries/cache/locales/en.json +1 -1
  33. data/lib/countries/cache/locales/eo.json +1 -1
  34. data/lib/countries/cache/locales/es.json +1 -1
  35. data/lib/countries/cache/locales/et.json +1 -1
  36. data/lib/countries/cache/locales/eu.json +1 -1
  37. data/lib/countries/cache/locales/fa.json +1 -1
  38. data/lib/countries/cache/locales/ff.json +1 -0
  39. data/lib/countries/cache/locales/fi.json +1 -1
  40. data/lib/countries/cache/locales/fo.json +1 -1
  41. data/lib/countries/cache/locales/fr.json +1 -1
  42. data/lib/countries/cache/locales/fy.json +1 -0
  43. data/lib/countries/cache/locales/ga.json +1 -1
  44. data/lib/countries/cache/locales/gl.json +1 -1
  45. data/lib/countries/cache/locales/gn.json +1 -0
  46. data/lib/countries/cache/locales/gu.json +1 -1
  47. data/lib/countries/cache/locales/gv.json +1 -0
  48. data/lib/countries/cache/locales/ha.json +1 -0
  49. data/lib/countries/cache/locales/he.json +1 -1
  50. data/lib/countries/cache/locales/hi.json +1 -1
  51. data/lib/countries/cache/locales/hr.json +1 -1
  52. data/lib/countries/cache/locales/ht.json +1 -0
  53. data/lib/countries/cache/locales/hu.json +1 -1
  54. data/lib/countries/cache/locales/hy.json +1 -1
  55. data/lib/countries/cache/locales/ia.json +1 -1
  56. data/lib/countries/cache/locales/id.json +1 -1
  57. data/lib/countries/cache/locales/io.json +1 -0
  58. data/lib/countries/cache/locales/is.json +1 -1
  59. data/lib/countries/cache/locales/it.json +1 -1
  60. data/lib/countries/cache/locales/iu.json +1 -0
  61. data/lib/countries/cache/locales/ja.json +1 -1
  62. data/lib/countries/cache/locales/ka.json +1 -1
  63. data/lib/countries/cache/locales/ki.json +1 -0
  64. data/lib/countries/cache/locales/kk.json +1 -1
  65. data/lib/countries/cache/locales/kl.json +1 -0
  66. data/lib/countries/cache/locales/km.json +1 -1
  67. data/lib/countries/cache/locales/kn.json +1 -1
  68. data/lib/countries/cache/locales/ko.json +1 -1
  69. data/lib/countries/cache/locales/ku.json +1 -1
  70. data/lib/countries/cache/locales/kv.json +1 -0
  71. data/lib/countries/cache/locales/kw.json +1 -0
  72. data/lib/countries/cache/locales/ky.json +1 -0
  73. data/lib/countries/cache/locales/lo.json +1 -0
  74. data/lib/countries/cache/locales/lt.json +1 -1
  75. data/lib/countries/cache/locales/lv.json +1 -1
  76. data/lib/countries/cache/locales/mi.json +1 -1
  77. data/lib/countries/cache/locales/mk.json +1 -1
  78. data/lib/countries/cache/locales/ml.json +1 -1
  79. data/lib/countries/cache/locales/mn.json +1 -1
  80. data/lib/countries/cache/locales/mr.json +1 -1
  81. data/lib/countries/cache/locales/ms.json +1 -1
  82. data/lib/countries/cache/locales/mt.json +1 -1
  83. data/lib/countries/cache/locales/my.json +1 -0
  84. data/lib/countries/cache/locales/na.json +1 -0
  85. data/lib/countries/cache/locales/nb.json +1 -1
  86. data/lib/countries/cache/locales/ne.json +1 -1
  87. data/lib/countries/cache/locales/nl.json +1 -1
  88. data/lib/countries/cache/locales/nn.json +1 -1
  89. data/lib/countries/cache/locales/nv.json +1 -0
  90. data/lib/countries/cache/locales/oc.json +1 -1
  91. data/lib/countries/cache/locales/or.json +1 -1
  92. data/lib/countries/cache/locales/pa.json +1 -1
  93. data/lib/countries/cache/locales/pi.json +1 -0
  94. data/lib/countries/cache/locales/pl.json +1 -1
  95. data/lib/countries/cache/locales/ps.json +1 -1
  96. data/lib/countries/cache/locales/pt-br.json +1 -0
  97. data/lib/countries/cache/locales/pt.json +1 -1
  98. data/lib/countries/cache/locales/ro.json +1 -1
  99. data/lib/countries/cache/locales/ru.json +1 -1
  100. data/lib/countries/cache/locales/rw.json +1 -1
  101. data/lib/countries/cache/locales/sc.json +1 -0
  102. data/lib/countries/cache/locales/sd.json +1 -0
  103. data/lib/countries/cache/locales/si.json +1 -1
  104. data/lib/countries/cache/locales/sk.json +1 -1
  105. data/lib/countries/cache/locales/sl.json +1 -1
  106. data/lib/countries/cache/locales/so.json +1 -1
  107. data/lib/countries/cache/locales/sq.json +1 -1
  108. data/lib/countries/cache/locales/sr.json +1 -1
  109. data/lib/countries/cache/locales/sv.json +1 -1
  110. data/lib/countries/cache/locales/sw.json +1 -1
  111. data/lib/countries/cache/locales/ta.json +1 -1
  112. data/lib/countries/cache/locales/te.json +1 -1
  113. data/lib/countries/cache/locales/tg.json +1 -0
  114. data/lib/countries/cache/locales/th.json +1 -1
  115. data/lib/countries/cache/locales/ti.json +1 -1
  116. data/lib/countries/cache/locales/tk.json +1 -1
  117. data/lib/countries/cache/locales/tl.json +1 -1
  118. data/lib/countries/cache/locales/tr.json +1 -1
  119. data/lib/countries/cache/locales/tt.json +1 -1
  120. data/lib/countries/cache/locales/ug.json +1 -1
  121. data/lib/countries/cache/locales/uk.json +1 -1
  122. data/lib/countries/cache/locales/ur.json +1 -0
  123. data/lib/countries/cache/locales/uz.json +1 -0
  124. data/lib/countries/cache/locales/ve.json +1 -1
  125. data/lib/countries/cache/locales/vi.json +1 -1
  126. data/lib/countries/cache/locales/wa.json +1 -1
  127. data/lib/countries/cache/locales/wo.json +1 -1
  128. data/lib/countries/cache/locales/xh.json +1 -1
  129. data/lib/countries/cache/locales/yo.json +1 -0
  130. data/lib/countries/cache/locales/zh-cn.json +1 -0
  131. data/lib/countries/cache/locales/zh-hk.json +1 -0
  132. data/lib/countries/cache/locales/zh-tw.json +1 -0
  133. data/lib/countries/cache/locales/zu.json +1 -1
  134. data/lib/countries/configuration.rb +16 -1
  135. data/lib/countries/country/class_methods.rb +55 -92
  136. data/lib/countries/country/conversion_methods.rb +17 -0
  137. data/lib/countries/country/country_subdivision_methods.rb +82 -0
  138. data/lib/countries/country/currency_methods.rb +5 -1
  139. data/lib/countries/country/emoji.rb +5 -3
  140. data/lib/countries/country/finder_methods.rb +79 -0
  141. data/lib/countries/country.rb +132 -21
  142. data/lib/countries/data/countries/AD.yaml +29 -28
  143. data/lib/countries/data/countries/AE.yaml +33 -33
  144. data/lib/countries/data/countries/AF.yaml +33 -32
  145. data/lib/countries/data/countries/AG.yaml +30 -30
  146. data/lib/countries/data/countries/AI.yaml +28 -27
  147. data/lib/countries/data/countries/AL.yaml +30 -29
  148. data/lib/countries/data/countries/AM.yaml +31 -30
  149. data/lib/countries/data/countries/AO.yaml +28 -28
  150. data/lib/countries/data/countries/AQ.yaml +27 -27
  151. data/lib/countries/data/countries/AR.yaml +32 -30
  152. data/lib/countries/data/countries/AS.yaml +32 -31
  153. data/lib/countries/data/countries/AT.yaml +37 -36
  154. data/lib/countries/data/countries/AU.yaml +36 -33
  155. data/lib/countries/data/countries/AW.yaml +26 -26
  156. data/lib/countries/data/countries/AX.yaml +30 -27
  157. data/lib/countries/data/countries/AZ.yaml +31 -30
  158. data/lib/countries/data/countries/BA.yaml +33 -32
  159. data/lib/countries/data/countries/BB.yaml +29 -28
  160. data/lib/countries/data/countries/BD.yaml +29 -28
  161. data/lib/countries/data/countries/BE.yaml +42 -41
  162. data/lib/countries/data/countries/BF.yaml +30 -30
  163. data/lib/countries/data/countries/BG.yaml +38 -36
  164. data/lib/countries/data/countries/BH.yaml +30 -29
  165. data/lib/countries/data/countries/BI.yaml +30 -30
  166. data/lib/countries/data/countries/BJ.yaml +28 -28
  167. data/lib/countries/data/countries/BL.yaml +26 -25
  168. data/lib/countries/data/countries/BM.yaml +30 -29
  169. data/lib/countries/data/countries/BN.yaml +27 -26
  170. data/lib/countries/data/countries/BO.yaml +32 -32
  171. data/lib/countries/data/countries/BQ.yaml +29 -29
  172. data/lib/countries/data/countries/BR.yaml +37 -35
  173. data/lib/countries/data/countries/BS.yaml +27 -28
  174. data/lib/countries/data/countries/BT.yaml +29 -28
  175. data/lib/countries/data/countries/BV.yaml +27 -27
  176. data/lib/countries/data/countries/BW.yaml +30 -30
  177. data/lib/countries/data/countries/BY.yaml +31 -30
  178. data/lib/countries/data/countries/BZ.yaml +29 -29
  179. data/lib/countries/data/countries/CA.yaml +33 -30
  180. data/lib/countries/data/countries/CC.yaml +30 -29
  181. data/lib/countries/data/countries/CD.yaml +36 -36
  182. data/lib/countries/data/countries/CF.yaml +30 -30
  183. data/lib/countries/data/countries/CG.yaml +30 -30
  184. data/lib/countries/data/countries/CH.yaml +41 -40
  185. data/lib/countries/data/countries/CI.yaml +28 -28
  186. data/lib/countries/data/countries/CK.yaml +28 -28
  187. data/lib/countries/data/countries/CL.yaml +34 -28
  188. data/lib/countries/data/countries/CM.yaml +30 -30
  189. data/lib/countries/data/countries/CN.yaml +30 -28
  190. data/lib/countries/data/countries/CO.yaml +29 -28
  191. data/lib/countries/data/countries/CR.yaml +29 -28
  192. data/lib/countries/data/countries/CU.yaml +28 -27
  193. data/lib/countries/data/countries/CV.yaml +29 -28
  194. data/lib/countries/data/countries/CW.yaml +26 -26
  195. data/lib/countries/data/countries/CX.yaml +31 -30
  196. data/lib/countries/data/countries/CY.yaml +42 -41
  197. data/lib/countries/data/countries/CZ.yaml +39 -38
  198. data/lib/countries/data/countries/DE.yaml +39 -36
  199. data/lib/countries/data/countries/DJ.yaml +30 -30
  200. data/lib/countries/data/countries/DK.yaml +36 -35
  201. data/lib/countries/data/countries/DM.yaml +27 -27
  202. data/lib/countries/data/countries/DO.yaml +29 -28
  203. data/lib/countries/data/countries/DZ.yaml +29 -28
  204. data/lib/countries/data/countries/EC.yaml +29 -28
  205. data/lib/countries/data/countries/EE.yaml +37 -36
  206. data/lib/countries/data/countries/EG.yaml +29 -28
  207. data/lib/countries/data/countries/EH.yaml +31 -30
  208. data/lib/countries/data/countries/ER.yaml +32 -32
  209. data/lib/countries/data/countries/ES.yaml +37 -36
  210. data/lib/countries/data/countries/ET.yaml +29 -28
  211. data/lib/countries/data/countries/FI.yaml +40 -39
  212. data/lib/countries/data/countries/FJ.yaml +34 -34
  213. data/lib/countries/data/countries/FK.yaml +30 -29
  214. data/lib/countries/data/countries/FM.yaml +29 -28
  215. data/lib/countries/data/countries/FO.yaml +29 -28
  216. data/lib/countries/data/countries/FR.yaml +40 -37
  217. data/lib/countries/data/countries/GA.yaml +28 -28
  218. data/lib/countries/data/countries/GB.yaml +47 -36
  219. data/lib/countries/data/countries/GD.yaml +27 -27
  220. data/lib/countries/data/countries/GE.yaml +29 -28
  221. data/lib/countries/data/countries/GF.yaml +32 -29
  222. data/lib/countries/data/countries/GG.yaml +32 -31
  223. data/lib/countries/data/countries/GH.yaml +28 -28
  224. data/lib/countries/data/countries/GI.yaml +29 -28
  225. data/lib/countries/data/countries/GL.yaml +30 -29
  226. data/lib/countries/data/countries/GM.yaml +29 -29
  227. data/lib/countries/data/countries/GN.yaml +31 -30
  228. data/lib/countries/data/countries/GP.yaml +30 -27
  229. data/lib/countries/data/countries/GQ.yaml +30 -30
  230. data/lib/countries/data/countries/GR.yaml +38 -37
  231. data/lib/countries/data/countries/GS.yaml +30 -29
  232. data/lib/countries/data/countries/GT.yaml +29 -28
  233. data/lib/countries/data/countries/GU.yaml +32 -31
  234. data/lib/countries/data/countries/GW.yaml +29 -28
  235. data/lib/countries/data/countries/GY.yaml +27 -27
  236. data/lib/countries/data/countries/HK.yaml +30 -30
  237. data/lib/countries/data/countries/HM.yaml +29 -28
  238. data/lib/countries/data/countries/HN.yaml +29 -28
  239. data/lib/countries/data/countries/HR.yaml +38 -37
  240. data/lib/countries/data/countries/HT.yaml +30 -29
  241. data/lib/countries/data/countries/HU.yaml +38 -37
  242. data/lib/countries/data/countries/ID.yaml +30 -28
  243. data/lib/countries/data/countries/IE.yaml +40 -39
  244. data/lib/countries/data/countries/IL.yaml +36 -30
  245. data/lib/countries/data/countries/IM.yaml +32 -31
  246. data/lib/countries/data/countries/IN.yaml +32 -30
  247. data/lib/countries/data/countries/IO.yaml +29 -28
  248. data/lib/countries/data/countries/IQ.yaml +29 -28
  249. data/lib/countries/data/countries/IR.yaml +29 -28
  250. data/lib/countries/data/countries/IS.yaml +36 -35
  251. data/lib/countries/data/countries/IT.yaml +39 -36
  252. data/lib/countries/data/countries/JE.yaml +27 -26
  253. data/lib/countries/data/countries/JM.yaml +29 -29
  254. data/lib/countries/data/countries/JO.yaml +29 -28
  255. data/lib/countries/data/countries/JP.yaml +31 -28
  256. data/lib/countries/data/countries/KE.yaml +31 -30
  257. data/lib/countries/data/countries/KG.yaml +31 -30
  258. data/lib/countries/data/countries/KH.yaml +29 -28
  259. data/lib/countries/data/countries/KI.yaml +28 -28
  260. data/lib/countries/data/countries/KM.yaml +30 -30
  261. data/lib/countries/data/countries/KN.yaml +29 -29
  262. data/lib/countries/data/countries/KP.yaml +29 -28
  263. data/lib/countries/data/countries/KR.yaml +30 -28
  264. data/lib/countries/data/countries/KW.yaml +29 -28
  265. data/lib/countries/data/countries/KY.yaml +30 -29
  266. data/lib/countries/data/countries/KZ.yaml +31 -30
  267. data/lib/countries/data/countries/LA.yaml +29 -28
  268. data/lib/countries/data/countries/LB.yaml +32 -31
  269. data/lib/countries/data/countries/LC.yaml +29 -29
  270. data/lib/countries/data/countries/LI.yaml +30 -27
  271. data/lib/countries/data/countries/LK.yaml +29 -28
  272. data/lib/countries/data/countries/LR.yaml +29 -28
  273. data/lib/countries/data/countries/LS.yaml +29 -28
  274. data/lib/countries/data/countries/LT.yaml +38 -37
  275. data/lib/countries/data/countries/LU.yaml +40 -39
  276. data/lib/countries/data/countries/LV.yaml +43 -36
  277. data/lib/countries/data/countries/LY.yaml +28 -28
  278. data/lib/countries/data/countries/MA.yaml +29 -28
  279. data/lib/countries/data/countries/MC.yaml +31 -28
  280. data/lib/countries/data/countries/MD.yaml +29 -28
  281. data/lib/countries/data/countries/ME.yaml +35 -34
  282. data/lib/countries/data/countries/MF.yaml +32 -29
  283. data/lib/countries/data/countries/MG.yaml +31 -30
  284. data/lib/countries/data/countries/MH.yaml +31 -30
  285. data/lib/countries/data/countries/MK.yaml +31 -28
  286. data/lib/countries/data/countries/ML.yaml +28 -28
  287. data/lib/countries/data/countries/MM.yaml +28 -27
  288. data/lib/countries/data/countries/MN.yaml +29 -28
  289. data/lib/countries/data/countries/MO.yaml +29 -29
  290. data/lib/countries/data/countries/MP.yaml +32 -31
  291. data/lib/countries/data/countries/MQ.yaml +30 -27
  292. data/lib/countries/data/countries/MR.yaml +30 -30
  293. data/lib/countries/data/countries/MS.yaml +27 -27
  294. data/lib/countries/data/countries/MT.yaml +39 -38
  295. data/lib/countries/data/countries/MU.yaml +29 -28
  296. data/lib/countries/data/countries/MV.yaml +29 -28
  297. data/lib/countries/data/countries/MW.yaml +30 -30
  298. data/lib/countries/data/countries/MX.yaml +35 -33
  299. data/lib/countries/data/countries/MY.yaml +31 -30
  300. data/lib/countries/data/countries/MZ.yaml +29 -28
  301. data/lib/countries/data/countries/NA.yaml +31 -30
  302. data/lib/countries/data/countries/NC.yaml +30 -29
  303. data/lib/countries/data/countries/NE.yaml +29 -28
  304. data/lib/countries/data/countries/NF.yaml +30 -29
  305. data/lib/countries/data/countries/NG.yaml +35 -34
  306. data/lib/countries/data/countries/NI.yaml +29 -28
  307. data/lib/countries/data/countries/NL.yaml +40 -36
  308. data/lib/countries/data/countries/NO.yaml +37 -36
  309. data/lib/countries/data/countries/NP.yaml +33 -32
  310. data/lib/countries/data/countries/NR.yaml +28 -28
  311. data/lib/countries/data/countries/NU.yaml +26 -26
  312. data/lib/countries/data/countries/NZ.yaml +36 -35
  313. data/lib/countries/data/countries/OM.yaml +29 -28
  314. data/lib/countries/data/countries/PA.yaml +28 -28
  315. data/lib/countries/data/countries/PE.yaml +29 -28
  316. data/lib/countries/data/countries/PF.yaml +30 -29
  317. data/lib/countries/data/countries/PG.yaml +29 -28
  318. data/lib/countries/data/countries/PH.yaml +36 -35
  319. data/lib/countries/data/countries/PK.yaml +31 -30
  320. data/lib/countries/data/countries/PL.yaml +38 -37
  321. data/lib/countries/data/countries/PM.yaml +30 -29
  322. data/lib/countries/data/countries/PN.yaml +28 -27
  323. data/lib/countries/data/countries/PR.yaml +31 -30
  324. data/lib/countries/data/countries/PS.yaml +34 -32
  325. data/lib/countries/data/countries/PT.yaml +35 -34
  326. data/lib/countries/data/countries/PW.yaml +27 -26
  327. data/lib/countries/data/countries/PY.yaml +31 -30
  328. data/lib/countries/data/countries/QA.yaml +28 -28
  329. data/lib/countries/data/countries/RE.yaml +31 -28
  330. data/lib/countries/data/countries/RO.yaml +38 -37
  331. data/lib/countries/data/countries/RS.yaml +29 -28
  332. data/lib/countries/data/countries/RU.yaml +30 -28
  333. data/lib/countries/data/countries/RW.yaml +32 -32
  334. data/lib/countries/data/countries/SA.yaml +35 -28
  335. data/lib/countries/data/countries/SB.yaml +29 -29
  336. data/lib/countries/data/countries/SC.yaml +30 -30
  337. data/lib/countries/data/countries/SD.yaml +31 -30
  338. data/lib/countries/data/countries/SE.yaml +38 -37
  339. data/lib/countries/data/countries/SG.yaml +33 -32
  340. data/lib/countries/data/countries/SH.yaml +30 -29
  341. data/lib/countries/data/countries/SI.yaml +37 -36
  342. data/lib/countries/data/countries/SJ.yaml +30 -29
  343. data/lib/countries/data/countries/SK.yaml +37 -36
  344. data/lib/countries/data/countries/SL.yaml +28 -28
  345. data/lib/countries/data/countries/SM.yaml +29 -28
  346. data/lib/countries/data/countries/SN.yaml +29 -28
  347. data/lib/countries/data/countries/SO.yaml +31 -30
  348. data/lib/countries/data/countries/SR.yaml +27 -27
  349. data/lib/countries/data/countries/SS.yaml +30 -30
  350. data/lib/countries/data/countries/ST.yaml +28 -28
  351. data/lib/countries/data/countries/SV.yaml +28 -27
  352. data/lib/countries/data/countries/SX.yaml +29 -29
  353. data/lib/countries/data/countries/SY.yaml +28 -28
  354. data/lib/countries/data/countries/SZ.yaml +31 -30
  355. data/lib/countries/data/countries/TC.yaml +31 -30
  356. data/lib/countries/data/countries/TD.yaml +30 -30
  357. data/lib/countries/data/countries/TF.yaml +31 -31
  358. data/lib/countries/data/countries/TG.yaml +28 -28
  359. data/lib/countries/data/countries/TH.yaml +36 -33
  360. data/lib/countries/data/countries/TJ.yaml +31 -30
  361. data/lib/countries/data/countries/TK.yaml +28 -28
  362. data/lib/countries/data/countries/TL.yaml +28 -28
  363. data/lib/countries/data/countries/TM.yaml +31 -30
  364. data/lib/countries/data/countries/TN.yaml +31 -30
  365. data/lib/countries/data/countries/TO.yaml +30 -30
  366. data/lib/countries/data/countries/TR.yaml +30 -28
  367. data/lib/countries/data/countries/TT.yaml +29 -29
  368. data/lib/countries/data/countries/TV.yaml +28 -28
  369. data/lib/countries/data/countries/TW.yaml +32 -29
  370. data/lib/countries/data/countries/TZ.yaml +31 -30
  371. data/lib/countries/data/countries/UA.yaml +35 -34
  372. data/lib/countries/data/countries/UG.yaml +30 -30
  373. data/lib/countries/data/countries/UM.yaml +30 -29
  374. data/lib/countries/data/countries/US.yaml +33 -28
  375. data/lib/countries/data/countries/UY.yaml +29 -28
  376. data/lib/countries/data/countries/UZ.yaml +31 -30
  377. data/lib/countries/data/countries/VA.yaml +32 -31
  378. data/lib/countries/data/countries/VC.yaml +30 -29
  379. data/lib/countries/data/countries/VE.yaml +29 -28
  380. data/lib/countries/data/countries/VG.yaml +31 -30
  381. data/lib/countries/data/countries/VI.yaml +30 -28
  382. data/lib/countries/data/countries/VN.yaml +35 -28
  383. data/lib/countries/data/countries/VU.yaml +32 -32
  384. data/lib/countries/data/countries/WF.yaml +30 -29
  385. data/lib/countries/data/countries/WS.yaml +30 -30
  386. data/lib/countries/data/countries/YE.yaml +28 -28
  387. data/lib/countries/data/countries/YT.yaml +29 -26
  388. data/lib/countries/data/countries/ZA.yaml +42 -40
  389. data/lib/countries/data/countries/ZM.yaml +29 -28
  390. data/lib/countries/data/countries/ZW.yaml +32 -32
  391. data/lib/countries/data/locales_methods.rb +23 -0
  392. data/lib/countries/data/subdivision_methods.rb +30 -0
  393. data/lib/countries/data/subdivisions/AD.yaml +49 -28
  394. data/lib/countries/data/subdivisions/AE.yaml +185 -63
  395. data/lib/countries/data/subdivisions/AF.yaml +918 -419
  396. data/lib/countries/data/subdivisions/AG.yaml +169 -76
  397. data/lib/countries/data/subdivisions/AL.yaml +333 -468
  398. data/lib/countries/data/subdivisions/AM.yaml +291 -88
  399. data/lib/countries/data/subdivisions/AO.yaml +416 -144
  400. data/lib/countries/data/subdivisions/AR.yaml +543 -187
  401. data/lib/countries/data/subdivisions/AT.yaml +246 -72
  402. data/lib/countries/data/subdivisions/AU.yaml +257 -64
  403. data/lib/countries/data/subdivisions/AZ.yaml +2099 -805
  404. data/lib/countries/data/subdivisions/BA.yaml +128 -95
  405. data/lib/countries/data/subdivisions/BB.yaml +216 -88
  406. data/lib/countries/data/subdivisions/BD.yaml +1499 -543
  407. data/lib/countries/data/subdivisions/BE.yaml +403 -166
  408. data/lib/countries/data/subdivisions/BF.yaml +3032 -2291
  409. data/lib/countries/data/subdivisions/BG.yaml +658 -219
  410. data/lib/countries/data/subdivisions/BH.yaml +83 -46
  411. data/lib/countries/data/subdivisions/BI.yaml +461 -213
  412. data/lib/countries/data/subdivisions/BJ.yaml +260 -96
  413. data/lib/countries/data/subdivisions/BN.yaml +76 -32
  414. data/lib/countries/data/subdivisions/BO.yaml +201 -72
  415. data/lib/countries/data/subdivisions/BQ.yaml +70 -24
  416. data/lib/countries/data/subdivisions/BR.yaml +730 -216
  417. data/lib/countries/data/subdivisions/BS.yaml +985 -566
  418. data/lib/countries/data/subdivisions/BT.yaml +390 -160
  419. data/lib/countries/data/subdivisions/BW.yaml +523 -261
  420. data/lib/countries/data/subdivisions/BY.yaml +210 -126
  421. data/lib/countries/data/subdivisions/BZ.yaml +106 -48
  422. data/lib/countries/data/subdivisions/CA.yaml +395 -105
  423. data/lib/countries/data/subdivisions/CD.yaml +829 -406
  424. data/lib/countries/data/subdivisions/CF.yaml +323 -136
  425. data/lib/countries/data/subdivisions/CG.yaml +249 -90
  426. data/lib/countries/data/subdivisions/CH.yaml +711 -208
  427. data/lib/countries/data/subdivisions/CI.yaml +480 -322
  428. data/lib/countries/data/subdivisions/CL.yaml +379 -153
  429. data/lib/countries/data/subdivisions/CM.yaml +222 -80
  430. data/lib/countries/data/subdivisions/CN.yaml +2388 -1650
  431. data/lib/countries/data/subdivisions/CO.yaml +744 -264
  432. data/lib/countries/data/subdivisions/CR.yaml +140 -56
  433. data/lib/countries/data/subdivisions/CU.yaml +326 -128
  434. data/lib/countries/data/subdivisions/CV.yaml +709 -363
  435. data/lib/countries/data/subdivisions/CY.yaml +126 -48
  436. data/lib/countries/data/subdivisions/CZ.yaml +2291 -1347
  437. data/lib/countries/data/subdivisions/DE.yaml +531 -144
  438. data/lib/countries/data/subdivisions/DJ.yaml +132 -48
  439. data/lib/countries/data/subdivisions/DK.yaml +126 -236
  440. data/lib/countries/data/subdivisions/DM.yaml +170 -80
  441. data/lib/countries/data/subdivisions/DO.yaml +804 -248
  442. data/lib/countries/data/subdivisions/DZ.yaml +961 -384
  443. data/lib/countries/data/subdivisions/EC.yaml +571 -276
  444. data/lib/countries/data/subdivisions/EE.yaml +832 -152
  445. data/lib/countries/data/subdivisions/EG.yaml +553 -216
  446. data/lib/countries/data/subdivisions/ER.yaml +117 -48
  447. data/lib/countries/data/subdivisions/ES.yaml +3025 -1401
  448. data/lib/countries/data/subdivisions/ET.yaml +245 -88
  449. data/lib/countries/data/subdivisions/FI.yaml +372 -123
  450. data/lib/countries/data/subdivisions/FJ.yaml +587 -264
  451. data/lib/countries/data/subdivisions/FM.yaml +78 -32
  452. data/lib/countries/data/subdivisions/FR.yaml +3298 -1258
  453. data/lib/countries/data/subdivisions/GA.yaml +192 -72
  454. data/lib/countries/data/subdivisions/GB.yaml +5799 -2625
  455. data/lib/countries/data/subdivisions/GD.yaml +131 -56
  456. data/lib/countries/data/subdivisions/GE.yaml +284 -96
  457. data/lib/countries/data/subdivisions/GH.yaml +338 -113
  458. data/lib/countries/data/subdivisions/GL.yaml +135 -43
  459. data/lib/countries/data/subdivisions/GM.yaml +140 -48
  460. data/lib/countries/data/subdivisions/GN.yaml +1046 -503
  461. data/lib/countries/data/subdivisions/GQ.yaml +191 -72
  462. data/lib/countries/data/subdivisions/GR.yaml +317 -677
  463. data/lib/countries/data/subdivisions/GT.yaml +395 -198
  464. data/lib/countries/data/subdivisions/GW.yaml +235 -79
  465. data/lib/countries/data/subdivisions/GY.yaml +204 -80
  466. data/lib/countries/data/subdivisions/HN.yaml +313 -144
  467. data/lib/countries/data/subdivisions/HR.yaml +532 -168
  468. data/lib/countries/data/subdivisions/HT.yaml +237 -106
  469. data/lib/countries/data/subdivisions/HU.yaml +970 -381
  470. data/lib/countries/data/subdivisions/ID.yaml +2516 -1858
  471. data/lib/countries/data/subdivisions/IE.yaml +925 -429
  472. data/lib/countries/data/subdivisions/IL.yaml +135 -48
  473. data/lib/countries/data/subdivisions/IN.yaml +1304 -537
  474. data/lib/countries/data/subdivisions/IQ.yaml +447 -191
  475. data/lib/countries/data/subdivisions/IR.yaml +1708 -1306
  476. data/lib/countries/data/subdivisions/IS.yaml +1140 -67
  477. data/lib/countries/data/subdivisions/IT.yaml +9300 -7307
  478. data/lib/countries/data/subdivisions/JM.yaml +279 -112
  479. data/lib/countries/data/subdivisions/JO.yaml +221 -96
  480. data/lib/countries/data/subdivisions/JP.yaml +1039 -376
  481. data/lib/countries/data/subdivisions/KE.yaml +1273 -273
  482. data/lib/countries/data/subdivisions/KG.yaml +279 -118
  483. data/lib/countries/data/subdivisions/KH.yaml +572 -194
  484. data/lib/countries/data/subdivisions/KI.yaml +66 -24
  485. data/lib/countries/data/subdivisions/KM.yaml +56 -24
  486. data/lib/countries/data/subdivisions/KN.yaml +330 -112
  487. data/lib/countries/data/subdivisions/KP.yaml +333 -186
  488. data/lib/countries/data/subdivisions/KR.yaml +446 -128
  489. data/lib/countries/data/subdivisions/KW.yaml +98 -48
  490. data/lib/countries/data/subdivisions/KZ.yaml +488 -189
  491. data/lib/countries/data/subdivisions/LA.yaml +355 -149
  492. data/lib/countries/data/subdivisions/LB.yaml +184 -62
  493. data/lib/countries/data/subdivisions/LC.yaml +237 -55
  494. data/lib/countries/data/subdivisions/LI.yaml +234 -88
  495. data/lib/countries/data/subdivisions/LK.yaml +876 -431
  496. data/lib/countries/data/subdivisions/LR.yaml +362 -187
  497. data/lib/countries/data/subdivisions/LS.yaml +182 -80
  498. data/lib/countries/data/subdivisions/LT.yaml +2461 -1114
  499. data/lib/countries/data/subdivisions/LU.yaml +323 -146
  500. data/lib/countries/data/subdivisions/LV.yaml +2530 -5217
  501. data/lib/countries/data/subdivisions/LY.yaml +377 -162
  502. data/lib/countries/data/subdivisions/MA.yaml +3250 -2255
  503. data/lib/countries/data/subdivisions/MC.yaml +443 -129
  504. data/lib/countries/data/subdivisions/MD.yaml +1171 -590
  505. data/lib/countries/data/subdivisions/ME.yaml +548 -186
  506. data/lib/countries/data/subdivisions/MG.yaml +120 -48
  507. data/lib/countries/data/subdivisions/MH.yaml +596 -276
  508. data/lib/countries/data/subdivisions/MK.yaml +4141 -3147
  509. data/lib/countries/data/subdivisions/ML.yaml +230 -70
  510. data/lib/countries/data/subdivisions/MM.yaml +353 -112
  511. data/lib/countries/data/subdivisions/MN.yaml +537 -176
  512. data/lib/countries/data/subdivisions/MR.yaml +285 -111
  513. data/lib/countries/data/subdivisions/MT.yaml +1253 -544
  514. data/lib/countries/data/subdivisions/MU.yaml +262 -293
  515. data/lib/countries/data/subdivisions/MV.yaml +484 -263
  516. data/lib/countries/data/subdivisions/MW.yaml +741 -337
  517. data/lib/countries/data/subdivisions/MX.yaml +756 -260
  518. data/lib/countries/data/subdivisions/MY.yaml +376 -128
  519. data/lib/countries/data/subdivisions/MZ.yaml +222 -83
  520. data/lib/countries/data/subdivisions/NA.yaml +284 -129
  521. data/lib/countries/data/subdivisions/NE.yaml +187 -64
  522. data/lib/countries/data/subdivisions/NG.yaml +996 -296
  523. data/lib/countries/data/subdivisions/NI.yaml +302 -136
  524. data/lib/countries/data/subdivisions/NL.yaml +590 -263
  525. data/lib/countries/data/subdivisions/NO.yaml +782 -1085
  526. data/lib/countries/data/subdivisions/NP.yaml +534 -228
  527. data/lib/countries/data/subdivisions/NR.yaml +293 -112
  528. data/lib/countries/data/subdivisions/NZ.yaml +391 -197
  529. data/lib/countries/data/subdivisions/OM.yaml +355 -246
  530. data/lib/countries/data/subdivisions/PA.yaml +257 -113
  531. data/lib/countries/data/subdivisions/PE.yaml +502 -242
  532. data/lib/countries/data/subdivisions/PG.yaml +514 -237
  533. data/lib/countries/data/subdivisions/PH.yaml +5450 -3894
  534. data/lib/countries/data/subdivisions/PK.yaml +267 -204
  535. data/lib/countries/data/subdivisions/PL.yaml +272 -32
  536. data/lib/countries/data/subdivisions/PS.yaml +314 -0
  537. data/lib/countries/data/subdivisions/PT.yaml +411 -173
  538. data/lib/countries/data/subdivisions/PW.yaml +309 -128
  539. data/lib/countries/data/subdivisions/PY.yaml +360 -144
  540. data/lib/countries/data/subdivisions/QA.yaml +175 -97
  541. data/lib/countries/data/subdivisions/RO.yaml +960 -336
  542. data/lib/countries/data/subdivisions/RS.yaml +754 -261
  543. data/lib/countries/data/subdivisions/RU.yaml +2081 -665
  544. data/lib/countries/data/subdivisions/RW.yaml +114 -40
  545. data/lib/countries/data/subdivisions/SA.yaml +285 -104
  546. data/lib/countries/data/subdivisions/SB.yaml +190 -80
  547. data/lib/countries/data/subdivisions/SC.yaml +538 -184
  548. data/lib/countries/data/subdivisions/SD.yaml +847 -673
  549. data/lib/countries/data/subdivisions/SE.yaml +498 -237
  550. data/lib/countries/data/subdivisions/SG.yaml +89 -54
  551. data/lib/countries/data/subdivisions/SH.yaml +79 -31
  552. data/lib/countries/data/subdivisions/SI.yaml +4558 -1590
  553. data/lib/countries/data/subdivisions/SK.yaml +159 -64
  554. data/lib/countries/data/subdivisions/SL.yaml +92 -31
  555. data/lib/countries/data/subdivisions/SM.yaml +187 -72
  556. data/lib/countries/data/subdivisions/SN.yaml +395 -193
  557. data/lib/countries/data/subdivisions/SO.yaml +400 -144
  558. data/lib/countries/data/subdivisions/SR.yaml +185 -80
  559. data/lib/countries/data/subdivisions/SS.yaml +210 -0
  560. data/lib/countries/data/subdivisions/ST.yaml +178 -26
  561. data/lib/countries/data/subdivisions/SV.yaml +265 -112
  562. data/lib/countries/data/subdivisions/SY.yaml +287 -112
  563. data/lib/countries/data/subdivisions/SZ.yaml +87 -32
  564. data/lib/countries/data/subdivisions/TD.yaml +642 -312
  565. data/lib/countries/data/subdivisions/TG.yaml +93 -40
  566. data/lib/countries/data/subdivisions/TH.yaml +1796 -652
  567. data/lib/countries/data/subdivisions/TJ.yaml +224 -128
  568. data/lib/countries/data/subdivisions/TL.yaml +260 -104
  569. data/lib/countries/data/subdivisions/TM.yaml +137 -40
  570. data/lib/countries/data/subdivisions/TN.yaml +461 -192
  571. data/lib/countries/data/subdivisions/TO.yaml +81 -40
  572. data/lib/countries/data/subdivisions/TR.yaml +1991 -648
  573. data/lib/countries/data/subdivisions/TT.yaml +380 -204
  574. data/lib/countries/data/subdivisions/TV.yaml +187 -94
  575. data/lib/countries/data/subdivisions/TW.yaml +620 -251
  576. data/lib/countries/data/subdivisions/TZ.yaml +730 -208
  577. data/lib/countries/data/subdivisions/UA.yaml +640 -217
  578. data/lib/countries/data/subdivisions/UG.yaml +5678 -3641
  579. data/lib/countries/data/subdivisions/UM.yaml +220 -72
  580. data/lib/countries/data/subdivisions/US.yaml +1857 -486
  581. data/lib/countries/data/subdivisions/UY.yaml +456 -195
  582. data/lib/countries/data/subdivisions/UZ.yaml +380 -113
  583. data/lib/countries/data/subdivisions/VC.yaml +113 -48
  584. data/lib/countries/data/subdivisions/VE.yaml +514 -200
  585. data/lib/countries/data/subdivisions/VN.yaml +1405 -543
  586. data/lib/countries/data/subdivisions/VU.yaml +112 -48
  587. data/lib/countries/data/subdivisions/WF.yaml +66 -0
  588. data/lib/countries/data/subdivisions/WS.yaml +229 -88
  589. data/lib/countries/data/subdivisions/YE.yaml +550 -289
  590. data/lib/countries/data/subdivisions/ZA.yaml +288 -131
  591. data/lib/countries/data/subdivisions/ZM.yaml +191 -72
  592. data/lib/countries/data/subdivisions/ZW.yaml +183 -73
  593. data/lib/countries/data/translations/countries-ab.yaml +254 -0
  594. data/lib/countries/data/translations/countries-af.yaml +254 -0
  595. data/lib/countries/data/translations/countries-ak.yaml +254 -0
  596. data/lib/countries/data/translations/countries-am.yaml +254 -0
  597. data/lib/countries/data/translations/countries-an.yaml +254 -0
  598. data/lib/countries/data/translations/countries-ar.yaml +254 -0
  599. data/lib/countries/data/translations/countries-as.yaml +254 -0
  600. data/lib/countries/data/translations/countries-ay.yaml +254 -0
  601. data/lib/countries/data/translations/countries-az.yaml +254 -0
  602. data/lib/countries/data/translations/countries-ba.yaml +254 -0
  603. data/lib/countries/data/translations/countries-be.yaml +254 -0
  604. data/lib/countries/data/translations/countries-bg.yaml +254 -0
  605. data/lib/countries/data/translations/countries-bi.yaml +254 -0
  606. data/lib/countries/data/translations/countries-bn.yaml +254 -0
  607. data/lib/countries/data/translations/countries-bn_IN.yaml +254 -0
  608. data/lib/countries/data/translations/countries-br.yaml +254 -0
  609. data/lib/countries/data/translations/countries-bs.yaml +254 -0
  610. data/lib/countries/data/translations/countries-ca.yaml +254 -0
  611. data/lib/countries/data/translations/countries-ce.yaml +254 -0
  612. data/lib/countries/data/translations/countries-ch.yaml +254 -0
  613. data/lib/countries/data/translations/countries-cs.yaml +254 -0
  614. data/lib/countries/data/translations/countries-cv.yaml +254 -0
  615. data/lib/countries/data/translations/countries-cy.yaml +254 -0
  616. data/lib/countries/data/translations/countries-da.yaml +254 -0
  617. data/lib/countries/data/translations/countries-de.yaml +254 -0
  618. data/lib/countries/data/translations/countries-dv.yaml +254 -0
  619. data/lib/countries/data/translations/countries-dz.yaml +254 -0
  620. data/lib/countries/data/translations/countries-ee.yaml +254 -0
  621. data/lib/countries/data/translations/countries-el.yaml +254 -0
  622. data/lib/countries/data/translations/countries-en.yaml +254 -0
  623. data/lib/countries/data/translations/countries-eo.yaml +254 -0
  624. data/lib/countries/data/translations/countries-es.yaml +254 -0
  625. data/lib/countries/data/translations/countries-et.yaml +254 -0
  626. data/lib/countries/data/translations/countries-eu.yaml +254 -0
  627. data/lib/countries/data/translations/countries-fa.yaml +254 -0
  628. data/lib/countries/data/translations/countries-ff.yaml +254 -0
  629. data/lib/countries/data/translations/countries-fi.yaml +254 -0
  630. data/lib/countries/data/translations/countries-fo.yaml +254 -0
  631. data/lib/countries/data/translations/countries-fr.yaml +254 -0
  632. data/lib/countries/data/translations/countries-fy.yaml +254 -0
  633. data/lib/countries/data/translations/countries-ga.yaml +254 -0
  634. data/lib/countries/data/translations/countries-gl.yaml +254 -0
  635. data/lib/countries/data/translations/countries-gn.yaml +254 -0
  636. data/lib/countries/data/translations/countries-gu.yaml +254 -0
  637. data/lib/countries/data/translations/countries-gv.yaml +254 -0
  638. data/lib/countries/data/translations/countries-ha.yaml +254 -0
  639. data/lib/countries/data/translations/countries-he.yaml +254 -0
  640. data/lib/countries/data/translations/countries-hi.yaml +254 -0
  641. data/lib/countries/data/translations/countries-hr.yaml +254 -0
  642. data/lib/countries/data/translations/countries-ht.yaml +254 -0
  643. data/lib/countries/data/translations/countries-hu.yaml +254 -0
  644. data/lib/countries/data/translations/countries-hy.yaml +254 -0
  645. data/lib/countries/data/translations/countries-ia.yaml +254 -0
  646. data/lib/countries/data/translations/countries-id.yaml +254 -0
  647. data/lib/countries/data/translations/countries-io.yaml +254 -0
  648. data/lib/countries/data/translations/countries-is.yaml +254 -0
  649. data/lib/countries/data/translations/countries-it.yaml +254 -0
  650. data/lib/countries/data/translations/countries-iu.yaml +254 -0
  651. data/lib/countries/data/translations/countries-ja.yaml +254 -0
  652. data/lib/countries/data/translations/countries-ka.yaml +254 -0
  653. data/lib/countries/data/translations/countries-ki.yaml +254 -0
  654. data/lib/countries/data/translations/countries-kk.yaml +254 -0
  655. data/lib/countries/data/translations/countries-kl.yaml +254 -0
  656. data/lib/countries/data/translations/countries-km.yaml +254 -0
  657. data/lib/countries/data/translations/countries-kn.yaml +254 -0
  658. data/lib/countries/data/translations/countries-ko.yaml +254 -0
  659. data/lib/countries/data/translations/countries-ku.yaml +254 -0
  660. data/lib/countries/data/translations/countries-kv.yaml +254 -0
  661. data/lib/countries/data/translations/countries-kw.yaml +254 -0
  662. data/lib/countries/data/translations/countries-ky.yaml +254 -0
  663. data/lib/countries/data/translations/countries-lo.yaml +254 -0
  664. data/lib/countries/data/translations/countries-lt.yaml +254 -0
  665. data/lib/countries/data/translations/countries-lv.yaml +254 -0
  666. data/lib/countries/data/translations/countries-mi.yaml +254 -0
  667. data/lib/countries/data/translations/countries-mk.yaml +254 -0
  668. data/lib/countries/data/translations/countries-ml.yaml +254 -0
  669. data/lib/countries/data/translations/countries-mn.yaml +254 -0
  670. data/lib/countries/data/translations/countries-mr.yaml +254 -0
  671. data/lib/countries/data/translations/countries-ms.yaml +254 -0
  672. data/lib/countries/data/translations/countries-mt.yaml +254 -0
  673. data/lib/countries/data/translations/countries-my.yaml +254 -0
  674. data/lib/countries/data/translations/countries-na.yaml +254 -0
  675. data/lib/countries/data/translations/countries-nb.yaml +254 -0
  676. data/lib/countries/data/translations/countries-ne.yaml +254 -0
  677. data/lib/countries/data/translations/countries-nl.yaml +254 -0
  678. data/lib/countries/data/translations/countries-nn.yaml +254 -0
  679. data/lib/countries/data/translations/countries-nv.yaml +254 -0
  680. data/lib/countries/data/translations/countries-oc.yaml +254 -0
  681. data/lib/countries/data/translations/countries-or.yaml +254 -0
  682. data/lib/countries/data/translations/countries-pa.yaml +254 -0
  683. data/lib/countries/data/translations/countries-pi.yaml +254 -0
  684. data/lib/countries/data/translations/countries-pl.yaml +254 -0
  685. data/lib/countries/data/translations/countries-ps.yaml +254 -0
  686. data/lib/countries/data/translations/countries-pt.yaml +254 -0
  687. data/lib/countries/data/translations/countries-pt_BR.yaml +254 -0
  688. data/lib/countries/data/translations/countries-ro.yaml +254 -0
  689. data/lib/countries/data/translations/countries-ru.yaml +254 -0
  690. data/lib/countries/data/translations/countries-rw.yaml +254 -0
  691. data/lib/countries/data/translations/countries-sc.yaml +254 -0
  692. data/lib/countries/data/translations/countries-sd.yaml +254 -0
  693. data/lib/countries/data/translations/countries-si.yaml +254 -0
  694. data/lib/countries/data/translations/countries-sk.yaml +254 -0
  695. data/lib/countries/data/translations/countries-sl.yaml +254 -0
  696. data/lib/countries/data/translations/countries-so.yaml +254 -0
  697. data/lib/countries/data/translations/countries-sq.yaml +254 -0
  698. data/lib/countries/data/translations/countries-sr.yaml +254 -0
  699. data/lib/countries/data/translations/countries-sv.yaml +254 -0
  700. data/lib/countries/data/translations/countries-sw.yaml +254 -0
  701. data/lib/countries/data/translations/countries-ta.yaml +254 -0
  702. data/lib/countries/data/translations/countries-te.yaml +254 -0
  703. data/lib/countries/data/translations/countries-tg.yaml +254 -0
  704. data/lib/countries/data/translations/countries-th.yaml +254 -0
  705. data/lib/countries/data/translations/countries-ti.yaml +254 -0
  706. data/lib/countries/data/translations/countries-tk.yaml +254 -0
  707. data/lib/countries/data/translations/countries-tl.yaml +254 -0
  708. data/lib/countries/data/translations/countries-tr.yaml +254 -0
  709. data/lib/countries/data/translations/countries-tt.yaml +254 -0
  710. data/lib/countries/data/translations/countries-ug.yaml +254 -0
  711. data/lib/countries/data/translations/countries-uk.yaml +254 -0
  712. data/lib/countries/data/translations/countries-ur.yaml +254 -0
  713. data/lib/countries/data/translations/countries-uz.yaml +254 -0
  714. data/lib/countries/data/translations/countries-ve.yaml +254 -0
  715. data/lib/countries/data/translations/countries-vi.yaml +254 -0
  716. data/lib/countries/data/translations/countries-wa.yaml +254 -0
  717. data/lib/countries/data/translations/countries-wo.yaml +254 -0
  718. data/lib/countries/data/translations/countries-xh.yaml +254 -0
  719. data/lib/countries/data/translations/countries-yo.yaml +254 -0
  720. data/lib/countries/data/translations/countries-zh_CN.yaml +254 -0
  721. data/lib/countries/data/translations/countries-zh_HK.yaml +254 -0
  722. data/lib/countries/data/translations/countries-zh_TW.yaml +254 -0
  723. data/lib/countries/data/translations/countries-zu.yaml +254 -0
  724. data/lib/countries/data.rb +85 -61
  725. data/lib/countries/global.rb +14 -3
  726. data/lib/countries/iso3166.rb +7 -2
  727. data/lib/countries/mongoid.rb +5 -0
  728. data/lib/countries/sources/cldr/downloader.rb +16 -14
  729. data/lib/countries/sources/cldr/subdivision.rb +5 -1
  730. data/lib/countries/sources/cldr/subdivision_updater.rb +24 -17
  731. data/lib/countries/sources/local/cached_loader.rb +5 -0
  732. data/lib/countries/sources/local/subdivision.rb +6 -2
  733. data/lib/countries/sources.rb +2 -0
  734. data/lib/countries/structure.rb +5 -6
  735. data/lib/countries/subdivision.rb +26 -8
  736. data/lib/countries/tasks/postal_codes.rake +54 -0
  737. data/lib/countries/timezones.rb +9 -4
  738. data/lib/countries/translations.rb +5 -4
  739. data/lib/countries/version.rb +3 -1
  740. data/lib/countries.rb +1 -2
  741. metadata +213 -104
  742. data/.gitignore +0 -25
  743. data/.rspec +0 -2
  744. data/.rubocop.yml +0 -1
  745. data/.rubocop_todo.yml +0 -52
  746. data/.travis.yml +0 -16
  747. data/CHANGELOG.md +0 -388
  748. data/Gemfile +0 -9
  749. data/LICENSE +0 -22
  750. data/README.markdown +0 -331
  751. data/Rakefile +0 -90
  752. data/bin/console +0 -14
  753. data/countries.gemspec +0 -25
  754. data/lib/countries/cache/locales/zh.json +0 -1
  755. data/lib/countries/data/subdivisions/AI.yaml +0 -183
  756. data/lib/countries/data/subdivisions/AS.yaml +0 -66
  757. data/lib/countries/data/subdivisions/AX.yaml +0 -40
  758. data/lib/countries/data/subdivisions/BM.yaml +0 -144
  759. data/lib/countries/data/subdivisions/CK.yaml +0 -144
  760. data/lib/countries/data/subdivisions/EH.yaml +0 -72
  761. data/lib/countries/data/subdivisions/FO.yaml +0 -79
  762. data/lib/countries/data/subdivisions/GG.yaml +0 -144
  763. data/lib/countries/data/subdivisions/GU.yaml +0 -248
  764. data/lib/countries/data/subdivisions/HK.yaml +0 -235
  765. data/lib/countries/data/subdivisions/IM.yaml +0 -313
  766. data/lib/countries/data/subdivisions/JE.yaml +0 -157
  767. data/lib/countries/data/subdivisions/KY.yaml +0 -73
  768. data/lib/countries/data/subdivisions/MP.yaml +0 -53
  769. data/lib/countries/data/subdivisions/MS.yaml +0 -40
  770. data/lib/countries/data/subdivisions/NC.yaml +0 -40
  771. data/lib/countries/data/subdivisions/PF.yaml +0 -66
  772. data/lib/countries/data/subdivisions/PM.yaml +0 -27
  773. data/lib/countries/data/subdivisions/PR.yaml +0 -1015
  774. data/lib/countries/data/subdivisions/SJ.yaml +0 -27
  775. data/lib/countries/data/subdivisions/TF.yaml +0 -49
  776. data/lib/countries/data/subdivisions/TK.yaml +0 -40
  777. data/lib/countries/data/subdivisions/VI.yaml +0 -40
  778. data/lib/countries/data/subdivisions/YT.yaml +0 -222
  779. data/lib/countries/data/translation_corrections.yaml +0 -32
  780. data/lib/countries/kwarg_struct.rb +0 -12
  781. data/lib/countries/setup.rb +0 -18
  782. data/lib/countries/tasks/geocoding.rake +0 -104
  783. data/spec/00_global_spec.rb +0 -56
  784. data/spec/configuration_spec.rb +0 -54
  785. data/spec/country_spec.rb +0 -894
  786. data/spec/data_spec.rb +0 -181
  787. data/spec/mongoid_spec.rb +0 -61
  788. data/spec/perf_spec.rb +0 -74
  789. data/spec/spec_helper.rb +0 -13
  790. data/spec/subdivision_spec.rb +0 -18
  791. data/spec/timezone_spec.rb +0 -32
data/spec/country_spec.rb DELETED
@@ -1,894 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
- NUM_OF_COUNTRIES = 249
5
- describe ISO3166::Country do
6
- before { ISO3166.configuration.enable_currency_extension! }
7
- let(:country) { ISO3166::Country.search('US') }
8
-
9
- it 'allows to create a country object from a symbol representation of the alpha2 code' do
10
- country = described_class.new(:us)
11
- expect(country.data).not_to be_nil
12
- end
13
-
14
- it 'allows to create a country object from a lowercase alpha2 code' do
15
- country = described_class.new('us')
16
- expect(country.data).not_to be_nil
17
- end
18
-
19
- it 'allows countries to be compared' do
20
- c1 = ISO3166::Country.new('US')
21
- c2 = ISO3166::Country.new('US')
22
- c3 = ISO3166::Country.new('AU')
23
- expect(c1).to eq(c2)
24
- expect(c1).to_not eq(nil)
25
- expect(c1.hash).to eq(c2.hash)
26
- expect(c3.hash).to_not eq(c2.hash)
27
-
28
- hsh = {}
29
- hsh[c1] = 1
30
- hsh[c2] = 2
31
- expect(hsh.keys.count).to eq 1
32
- end
33
-
34
- it 'should return 3166 number' do
35
- expect(country.number).to eq('840')
36
- end
37
-
38
- it 'should return 3166 alpha2 code' do
39
- expect(country.alpha2).to eq('US')
40
- end
41
-
42
- it 'should return 3166 alpha3 code' do
43
- expect(country.alpha3).to eq('USA')
44
- end
45
-
46
- it 'should return 3166 name' do
47
- expect(country.name).to eq('United States of America')
48
- end
49
-
50
- it 'should return alternate names' do
51
- expect(country.names).to eq(['United States', 'Vereinigte Staaten von Amerika', 'Γ‰tats-Unis', 'Estados Unidos', 'をパγƒͺγ‚«εˆθ‘†ε›½', 'Verenigde Staten'])
52
- end
53
-
54
- it 'should return translations' do
55
- expect(country.translations).to be
56
- expect(country.translations['en']).to eq('United States')
57
- end
58
-
59
- it 'should return latitude' do
60
- expect(country.latitude).to eq(37.09024)
61
- end
62
-
63
- it 'should return longitude' do
64
- expect(country.longitude).to eq(-95.712891)
65
- end
66
-
67
- it 'should return bounds' do
68
- expect(country.bounds['northeast']['lat']).to eq(71.5388001)
69
- end
70
-
71
- it 'should return the decimal Latitude' do
72
- expect(country.latitude_dec).to eq('39.44325637817383')
73
- end
74
-
75
- it 'should return the decimal Longitude' do
76
- expect(country.longitude_dec).to eq('-98.95733642578125')
77
- end
78
-
79
- it 'should return continent' do
80
- expect(country.continent).to eq('North America')
81
- end
82
-
83
- it 'knows about whether or not the country uses postal codes' do
84
- expect(country.zip).to be_truthy
85
- end
86
-
87
- it 'knows when a country does not require postal codes' do
88
- ireland = ISO3166::Country.search('IE')
89
- expect(ireland.postal_code).to eq(false)
90
- end
91
-
92
- it 'should return region' do
93
- expect(country.region).to eq('Americas')
94
- end
95
-
96
- it 'should return subregion' do
97
- expect(country.subregion).to eq('Northern America')
98
- end
99
-
100
- it 'should return world region' do
101
- expect(country.world_region).to eq('AMER')
102
- end
103
-
104
- context 'with Turkey' do
105
- let(:country) { ISO3166::Country.search('TR') }
106
-
107
- it 'should indicate EMEA as the world region' do
108
- expect(country.world_region).to eq('EMEA')
109
- end
110
- end
111
-
112
- context 'with Japan' do
113
- let(:country) { ISO3166::Country.search('JP') }
114
-
115
- it 'should indicate APAC as the world region' do
116
- expect(country.world_region).to eq('APAC')
117
- end
118
- end
119
-
120
- context 'with Belgium' do
121
- let(:country) { ISO3166::Country.search('BE') }
122
-
123
- it 'should return its local names based on its languages' do
124
- expect(country.local_names).to match_array(%w(BelgiΓ« Belgique Belgien))
125
- end
126
-
127
- it 'should return its first local name' do
128
- expect(country.local_name).to eq('BelgiΓ«')
129
- end
130
- end
131
-
132
- context 'with Brazil' do
133
- context 'with pt-BR translation' do
134
- before do
135
- ISO3166::Data.register(
136
- alpha2: 'BR2',
137
- name: 'Brazil',
138
- languages_official: %w(pt-BR),
139
- translations: {
140
- 'pt-BR' => 'Translation for pt-BR',
141
- 'pt' => 'Translation for pt'
142
- }
143
- )
144
- end
145
-
146
- let(:country) { ISO3166::Country.search('BR2') }
147
-
148
- it 'should return its local name based on its language' do
149
- expect(country.local_names).to match_array(['Translation for pt-BR'])
150
- end
151
-
152
- after do
153
- ISO3166::Data.unregister('BR2')
154
- end
155
- end
156
-
157
- context 'without pt-BR translation' do
158
- before do
159
- ISO3166::Data.register(
160
- alpha2: 'BR2',
161
- name: 'Brazil',
162
- languages_official: %w(pt-BR),
163
- translations: {
164
- 'pt' => 'Translation for pt'
165
- }
166
- )
167
- end
168
-
169
- let(:country) { ISO3166::Country.search('BR2') }
170
-
171
- it 'should return its local name based on its language' do
172
- expect(country.local_names).to match_array(['Translation for pt'])
173
- end
174
-
175
- after do
176
- ISO3166::Data.unregister('BR2')
177
- end
178
- end
179
- end
180
-
181
- it 'should return ioc code' do
182
- expect(country.ioc).to eq('USA')
183
- end
184
-
185
- it 'should return UN/LOCODE' do
186
- expect(country.un_locode).to eq('US')
187
- end
188
-
189
- it 'should be identical to itself' do
190
- expect(country).to eq(ISO3166::Country.search('US'))
191
- end
192
-
193
- it 'should return language' do
194
- expect(country.languages[0]).to eq('en')
195
- end
196
-
197
- describe 'e164' do
198
- it 'should return country_code' do
199
- expect(country.country_code).to eq('1')
200
- end
201
-
202
- it 'should return national_destination_code_lengths' do
203
- expect(country.national_destination_code_lengths).to eq([3])
204
- end
205
-
206
- it 'should return national_number_lengths' do
207
- expect(country.national_number_lengths).to eq([10])
208
- end
209
-
210
- it 'should return international_prefix' do
211
- expect(country.international_prefix).to eq('011')
212
- end
213
-
214
- it 'should return national_prefix' do
215
- expect(country.national_prefix).to eq('1')
216
- end
217
- end
218
-
219
- describe 'subdivisions' do
220
- let(:virginia) { country.states['VA'] }
221
- it 'should return an empty hash for a country with no ISO3166-2' do
222
- expect(ISO3166::Country.search('VA').subdivisions.size).to eq(0)
223
- end
224
-
225
- it 'should return a hash with all sub divisions' do
226
- expect(country.subdivisions.size).to eq(60)
227
- end
228
-
229
- it 'should be available through states' do
230
- expect(country.states.size).to eq(60)
231
- end
232
-
233
- it 'should be a subdivision object' do
234
- expect(virginia).to be_a(ISO3166::Subdivision)
235
- end
236
-
237
- it 'should have a name' do
238
- expect(virginia.name).to eq('Virginia')
239
- end
240
-
241
- it 'should behave like a hash' do
242
- expect(virginia['name']).to eq('Virginia')
243
- end
244
- end
245
-
246
- describe 'subdivision_names_with_codes' do
247
- it 'should return an alphabetized list of all subdivisions names with codes' do
248
- subdivisions = ISO3166::Country.search('EG').subdivision_names_with_codes
249
- expect(subdivisions).to be_an(Array)
250
- expect(subdivisions.first[0]).to be_a(String)
251
- expect(subdivisions.size).to eq(27)
252
- expect(subdivisions.first[0]).to eq('Alexandria')
253
- end
254
-
255
- it 'should return an alphabetized list of subdivision names translated to current locale with codes' do
256
- ISO3166.configuration.locales = [:es, :de, :en]
257
-
258
- subdivisions = ISO3166::Country.search('EG').subdivision_names_with_codes(:es)
259
- expect(subdivisions).to be_an(Array)
260
- expect(subdivisions.first[0]).to be_a(String)
261
- expect(subdivisions.size).to eq(27)
262
- expect(subdivisions.first[0]).to eq('Al Iskandariyah')
263
- end
264
- end
265
-
266
- describe 'valid?' do
267
- it 'should return true if country is valid' do
268
- expect(ISO3166::Country.new('US')).to be_valid
269
- end
270
-
271
- it 'should return false if country is invalid' do
272
- expect(ISO3166::Country.new({})).not_to be_valid
273
- end
274
- end
275
-
276
- describe 'new' do
277
- it 'should return new country object when a valid alpha2 string is passed' do
278
- expect(ISO3166::Country.new('US')).to be_a(ISO3166::Country)
279
- end
280
-
281
- it 'should return nil when an invalid alpha2 string is passed' do
282
- expect(ISO3166::Country.new('fubar')).to be_nil
283
- end
284
-
285
- it 'should return new country object when a valid alpha2 symbol is passed' do
286
- expect(ISO3166::Country.new(:us)).to be_a(ISO3166::Country)
287
- end
288
-
289
- it 'should return nil when an invalid alpha2 symbol is passed' do
290
- expect(ISO3166::Country.new(:fubar)).to be_nil
291
- end
292
- end
293
-
294
- describe 'compare' do
295
- it 'should compare itself with other countries by its name' do
296
- canada = ISO3166::Country.search('CA')
297
- mexico = ISO3166::Country.search('MX')
298
- expect(mexico <=> canada).to eq(1)
299
- expect(canada <=> mexico).to eq(-1)
300
- end
301
- end
302
-
303
- describe 'all' do
304
- it 'should return an array list of all countries' do
305
- countries = ISO3166::Country.all
306
- expect(countries).to be_an(Array)
307
- expect(countries.first).to be_an(ISO3166::Country)
308
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
309
- end
310
-
311
- it 'should allow to customize each country representation passing a block to the method' do
312
- countries = ISO3166::Country.all { |country, data| [data['name'], country, data['country_code']] }
313
- expect(countries).to be_an(Array)
314
- expect(countries.first).to be_an(Array)
315
- expect(countries.first.size).to eq(3)
316
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
317
- end
318
- end
319
-
320
- describe 'all_translated' do
321
- it 'should return an alphabetized list of all country names translated to the selected locale' do
322
- countries = ISO3166::Country.all_translated('fr')
323
- expect(countries).to be_an(Array)
324
- expect(countries.first).to be_a(String)
325
- expect(countries.first).to eq('Afghanistan')
326
- # countries missing the desired locale will not be added to the list
327
- # so all 250 countries may not be returned, 'fr' returns 249, for example
328
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
329
- end
330
-
331
- it 'should return an alphabetized list of all country names in English if no locale is passed' do
332
- countries = ISO3166::Country.all_translated
333
- expect(countries).to be_an(Array)
334
- expect(countries.first).to be_a(String)
335
- expect(countries.first).to eq('Afghanistan')
336
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
337
- end
338
- end
339
-
340
- describe 'all_names_with_codes' do
341
- require 'active_support/core_ext/string/output_safety'
342
- it 'should return an alphabetized list of all country names with ISOCODE alpha2' do
343
- countries = ISO3166::Country.all_names_with_codes
344
- expect(countries).to be_an(Array)
345
- expect(countries.first[0]).to be_a(String)
346
- expect(countries.first[0]).to eq('Afghanistan')
347
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
348
- expect(countries.any?{|pair| !pair[0].html_safe?}).to eq(false)
349
- end
350
-
351
- it 'should return an alphabetized list of all country names translated to current locale with ISOCODE alpha2' do
352
- ISO3166.configuration.locales = [:es, :de, :en]
353
-
354
- countries = ISO3166::Country.all_names_with_codes(:es)
355
- expect(countries).to be_an(Array)
356
- expect(countries.first[0]).to be_a(String)
357
- expect(countries.first[0]).to eq('AfganistΓ‘n')
358
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
359
- end
360
- end
361
-
362
- describe 'all_names_with_codes_without_active_support' do
363
- it 'should return an alphabetized list of all country names with ISOCODE alpha2' do
364
- countries = ISO3166::Country.all_names_with_codes
365
- expect(countries).to be_an(Array)
366
- expect(countries.first[0]).to be_a(String)
367
- expect(countries.first[0]).to eq('Afghanistan')
368
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
369
- end
370
-
371
- it 'should return an alphabetized list of all country names translated to current locale with ISOCODE alpha2' do
372
- ISO3166.configuration.locales = [:es, :de, :en]
373
-
374
- countries = ISO3166::Country.all_names_with_codes(:es)
375
- expect(countries).to be_an(Array)
376
- expect(countries.first[0]).to be_a(String)
377
- expect(countries.first[0]).to eq('AfganistΓ‘n')
378
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
379
- end
380
- end
381
-
382
- describe 'translation' do
383
- it 'should return the localized name for a country to the selected locale' do
384
- ISO3166.configuration.locales = [:es, :de, :en]
385
- countries = ISO3166::Country.new(:de).translation('de')
386
- expect(countries).to be_an(String)
387
- expect(countries).to eq('Deutschland')
388
- end
389
-
390
- it 'should return the localized name for a country in English' do
391
- countries = ISO3166::Country.new(:de).translation
392
- expect(countries).to be_an(String)
393
- expect(countries).to eq('Germany')
394
- end
395
-
396
- it 'should return nil when a translation is not found' do
397
- countries = ISO3166::Country.new(:de).translation('xxx')
398
- expect(countries).to be_nil
399
- end
400
- end
401
-
402
- describe 'translations' do
403
- it 'should return an hash of all country names translated to the selected locale' do
404
- countries = ISO3166::Country.translations('fr')
405
- expect(countries).to be_an(Hash)
406
- expect(countries.first[0]).to eq('AF')
407
- expect(countries.first).to eq(%w(AF Afghanistan))
408
- # countries missing the desired locale will not be added to the list
409
- # so all 250 countries may not be returned, 'fr' returns 249, for example
410
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
411
- end
412
-
413
- it 'should return an hash of all country names in English if no locale is passed' do
414
- countries = ISO3166::Country.translations
415
- expect(countries).to be_an(Hash)
416
- expect(countries.first[0]).to eq('AF')
417
- expect(countries.first).to eq(%w(AF Afghanistan))
418
- expect(countries.size).to eq(NUM_OF_COUNTRIES)
419
- end
420
- end
421
-
422
- describe 'countries' do
423
- it 'should be the same as all' do
424
- expect(ISO3166::Country.countries).to eq(ISO3166::Country.all)
425
- end
426
- end
427
-
428
- describe 'search' do
429
- it 'should return new country object when a valid alpha2 string is passed' do
430
- expect(ISO3166::Country.search('US')).to be_a(ISO3166::Country)
431
- end
432
-
433
- it 'should return nil when an invalid alpha2 string is passed' do
434
- expect(ISO3166::Country.search('fubar')).to be_nil
435
- end
436
-
437
- it 'should return new country object when a valid alpha2 symbol is passed' do
438
- expect(ISO3166::Country.search(:us)).to be_a(ISO3166::Country)
439
- end
440
-
441
- it 'should return nil when an invalid alpha2 symbol is passed' do
442
- expect(ISO3166::Country.search(:fubar)).to be_nil
443
- end
444
- end
445
-
446
- describe 'currency' do
447
- it 'should return an instance of Currency' do
448
- expect(country.currency).to be_a(Money::Currency)
449
- end
450
-
451
- it 'should allow access to symbol' do
452
- expect(country.currency.symbol).to eq('$')
453
- end
454
- end
455
-
456
- describe 'codes' do
457
- it 'returns a hash with the data of the country' do
458
- expect(ISO3166::Country.codes).to be_a Array
459
- expect(ISO3166::Country.codes.size).to eq(NUM_OF_COUNTRIES)
460
- end
461
- end
462
-
463
- describe 'find_all_by' do
464
- context 'when searchead attribute equals the given value' do
465
- let(:spain_data) { ISO3166::Country.find_all_by('alpha2', 'ES') }
466
-
467
- it 'returns a hash with the data of the country' do
468
- expect(spain_data).to be_a Hash
469
- expect(spain_data.keys.size).to eq(1)
470
- end
471
- end
472
-
473
- context 'when searchead attribute is list and one of its elements equals the given value' do
474
- let(:spain_data) { ISO3166::Country.find_all_by('languages', 'en') }
475
-
476
- it 'returns a hash with the data of the country' do
477
- expect(spain_data).to be_a Hash
478
- expect(spain_data.size).to be > 1
479
- end
480
- end
481
-
482
- it 'also finds results if the given values is not upcased/downcased properly' do
483
- spain_data = ISO3166::Country.find_all_by('alpha2', 'es')
484
- expect(spain_data).to be_a Hash
485
- expect(spain_data.keys.size).to eq(1)
486
- end
487
-
488
- it 'also finds results if the attribute is given as a symbol' do
489
- spain_data = ISO3166::Country.find_all_by(:alpha2, 'ES')
490
- expect(spain_data).to be_a Hash
491
- expect(spain_data.keys.size).to eq(1)
492
- end
493
-
494
- it 'casts the given value to a string to perform the search' do
495
- spain_data = ISO3166::Country.find_all_by(:country_code, 34)
496
- expect(spain_data).to be_a Hash
497
- expect(spain_data.keys).to eq(['ES'])
498
- end
499
-
500
- it 'also performs searches with regexps and forces it to ignore case' do
501
- spain_data = ISO3166::Country.find_all_by(:names, /EspaΓ±/)
502
- expect(spain_data).to be_a Hash
503
- expect(spain_data.keys).to eq(['ES'])
504
- end
505
- end
506
-
507
- describe 'hash finder methods' do
508
- context "when search name in 'name'" do
509
- subject { ISO3166::Country.find_by_name('Poland') }
510
- it 'should return' do
511
- expect(subject.first).to eq('PL')
512
- end
513
- end
514
-
515
- context "when search lowercase name in 'name'" do
516
- subject { ISO3166::Country.find_by_name('poland') }
517
- it 'should return' do
518
- expect(subject.first).to eq('PL')
519
- end
520
- end
521
-
522
- context "when search name with comma in 'name'" do
523
- subject { ISO3166::Country.find_by_name(country_name) }
524
-
525
- context 'with Republic of Korea' do
526
- let(:country_name) { 'Korea, Republic of' }
527
- it 'should return' do
528
- expect(subject.first).to eq('KR')
529
- end
530
- end
531
-
532
- context 'with Bolivia' do
533
- let(:country_name) { 'Bolivia, Plurinational State of' }
534
- it 'should return' do
535
- expect(subject.first).to eq('BO')
536
- end
537
- end
538
-
539
- context 'with Bonaire' do
540
- let(:country_name) { 'Bonaire, Sint Eustatius and Saba' }
541
- it 'should return' do
542
- expect(subject.first).to eq('BQ')
543
- end
544
- end
545
- end
546
-
547
- context 'when search lowercase multibyte name found' do
548
- subject { ISO3166::Country.find_country_by_name('россия') }
549
-
550
- it 'should be a country instance' do
551
- expect(subject).to be_a(ISO3166::Country)
552
- expect(subject.alpha2).to eq('RU')
553
- end
554
- end
555
-
556
- context 'when search lowercase multibyte name found' do
557
- subject { ISO3166::Country.find_country_by_name(/россия/) }
558
-
559
- it 'should be a country instance' do
560
- expect(subject).to be_a(ISO3166::Country)
561
- expect(subject.alpha2).to eq('RU')
562
- end
563
- end
564
-
565
- context 'when accents are not used' do
566
- subject { ISO3166::Country.find_country_by_name('emirats Arabes Unis') }
567
-
568
- it 'should be a country instance' do
569
- expect(subject).to be_a(ISO3166::Country)
570
- expect(subject.alpha2).to eq('AE')
571
- end
572
- end
573
-
574
- context "when search name in 'names'" do
575
- subject { ISO3166::Country.find_by_name('Polonia') }
576
- it 'should return' do
577
- expect(subject.first).to eq('PL')
578
- end
579
- end
580
-
581
- context 'when finding by invalid attribute' do
582
- it 'should raise an error' do
583
- expect { ISO3166::Country.find_by_invalid('invalid') }.to raise_error(RuntimeError, "Invalid attribute name 'invalid'")
584
- end
585
- end
586
-
587
- context 'when using find_all method' do
588
- let(:list) { ISO3166::Country.find_all_by_currency('USD') }
589
-
590
- it 'should be an Array of Arrays' do
591
- expect(list).to be_a(Array)
592
- expect(list.first).to be_a(Array)
593
- end
594
- end
595
-
596
- context 'when using find_by method' do
597
- subject { ISO3166::Country.find_by_alpha3('CAN') }
598
- it 'should return' do
599
- expect(subject.length).to eq 2
600
- expect(subject.first).to be_a(String)
601
- expect(subject.last).to be_a(Hash)
602
- end
603
- end
604
- end
605
-
606
- describe 'country finder methods' do
607
- context 'when search name found' do
608
- let(:uk) { ISO3166::Country.find_country_by_name('United Kingdom') }
609
-
610
- it 'should be a country instance' do
611
- expect(uk).to be_a(ISO3166::Country)
612
- expect(uk.alpha2).to eq('GB')
613
- end
614
- end
615
-
616
- context 'when search lowercase name found' do
617
- let(:uk) { ISO3166::Country.find_country_by_name('united kingdom') }
618
-
619
- it 'should be a country instance' do
620
- expect(uk).to be_a(ISO3166::Country)
621
- expect(uk.alpha2).to eq('GB')
622
- end
623
- end
624
-
625
- context 'when the search term contains comma' do
626
- let(:korea) { ISO3166::Country.find_country_by_name('Korea, Republic of') }
627
-
628
- it 'should be a country instance' do
629
- expect(korea).to be_a(ISO3166::Country)
630
- expect(korea.alpha2).to eq('KR')
631
- end
632
- end
633
-
634
- context 'when search translation found' do
635
- before do
636
- ISO3166.configure do |config|
637
- config.locales = [:bs]
638
- end
639
- end
640
- let(:uk) { ISO3166::Country.find_country_by_translated_names('Velika Britanija') }
641
-
642
- it 'should be a country instance' do
643
- expect(uk).to be_a(ISO3166::Country)
644
- expect(uk.alpha2).to eq('GB')
645
- end
646
- end
647
-
648
- context 'regression test for #388' do
649
- let(:no_country) { ISO3166::Country.find_country_by_translated_names(nil) }
650
-
651
- it 'should be a country instance' do
652
- expect(no_country).to_not be_a(ISO3166::Country)
653
- expect(no_country).to eq nil
654
- end
655
- end
656
-
657
- context 'when attempting to search by translations hash' do
658
- let(:uk) { ISO3166::Country.find_country_by_translations({}) }
659
-
660
- it 'should be a country instance' do
661
- expect { uk }.to raise_error(RuntimeError)
662
- end
663
- end
664
- context 'when search name not found' do
665
- let(:bogus) { ISO3166::Country.find_country_by_name('Does not exist') }
666
-
667
- it 'should be a country instance' do
668
- expect(bogus).to eq(nil)
669
- end
670
- end
671
-
672
- # Spot checks #243
673
- context 'when search name not found' do
674
- let(:belgium) { ISO3166::Country.find_country_by_name('Belgium') }
675
-
676
- it 'should be a country instance' do
677
- expect(belgium.alpha2).to eq('BE')
678
- end
679
- end
680
-
681
- # Spot checks #240
682
- context 'when search name not found' do
683
- let(:canada) { ISO3166::Country.find_country_by_name('Canada') }
684
-
685
- it 'should be a country instance' do
686
- expect(canada.alpha2).to eq('CA')
687
- end
688
- end
689
-
690
- # Spot checks #241
691
- context 'when search name not found' do
692
- let(:israel) { ISO3166::Country.find_country_by_name('Israel') }
693
-
694
- it 'should be a country instance' do
695
- expect(israel.alpha2).to eq('IL')
696
- end
697
- end
698
-
699
- # Spot checks #241
700
- context 'when search name not found' do
701
- let(:israel) { ISO3166::Country.find_by_name('Israel') }
702
-
703
- it 'should be a country instance' do
704
- expect(israel[0]).to eq('IL')
705
- end
706
- end
707
-
708
- # Spot checks #241
709
- context 'when search name not found' do
710
- let(:israel) { ISO3166::Country.find_all_by(:name, 'Israel') }
711
-
712
- it 'should be a country instance' do
713
- expect(israel.size).to eq(1)
714
- expect(israel.first[0]).to eq('IL')
715
- end
716
- end
717
-
718
- context 'when finding by invalid attribute' do
719
- it 'should raise an error' do
720
- expect { ISO3166::Country.find_country_by_invalid('invalid') }.to raise_error(RuntimeError,
721
- "Invalid attribute name 'invalid'")
722
- end
723
- end
724
-
725
- context 'when using find_all method' do
726
- let(:list) { ISO3166::Country.find_all_countries_by_currency('USD') }
727
-
728
- it 'should be an Array of Country objects' do
729
- expect(list).to be_a(Array)
730
- expect(list.first).to be_a(ISO3166::Country)
731
- end
732
- end
733
-
734
- context 'when using find_by method' do
735
- let(:country) { ISO3166::Country.find_country_by_alpha3('CAN') }
736
-
737
- it 'should be a single country object' do
738
- expect(country).to be_a(ISO3166::Country)
739
- end
740
- end
741
- end
742
-
743
- describe 'names in Data' do
744
- it 'should be unique (to allow .find_by_name work properly)' do
745
- names = ISO3166::Data.cache.map do |_k, v|
746
- [v['name'], v['unofficial_names']].flatten.uniq
747
- end.flatten
748
-
749
- expect(names.size).to eq(names.uniq.size)
750
- end
751
- end
752
-
753
- describe 'Norway' do
754
- let(:norway) { ISO3166::Country.search('NO') }
755
-
756
- it 'should have a currency' do
757
- expect(norway.currency).to be_a(Money::Currency)
758
- end
759
- end
760
-
761
- describe 'Guernsey' do
762
- let(:guernsey) { ISO3166::Country.search('GG') }
763
-
764
- it 'should have a currency' do
765
- expect(guernsey.currency.iso_code).to eq('GBP')
766
- end
767
- end
768
-
769
- describe 'Languages' do
770
- let(:german_speaking_countries) { ISO3166::Country.find_all_countries_by_languages('de') }
771
-
772
- it 'should find countries by language' do
773
- expect(german_speaking_countries.size).to eq(6)
774
- end
775
- end
776
-
777
- describe 'in_eu?' do
778
- let(:netherlands) { ISO3166::Country.search('NL') }
779
-
780
- it 'should return false for countries without eu_member flag' do
781
- expect(country.in_eu?).to be_falsey
782
- end
783
-
784
- it 'should return true for countries with eu_member flag set to true' do
785
- expect(netherlands.in_eu?).to be_truthy
786
- end
787
- end
788
-
789
- describe 'in_eea?' do
790
- let(:netherlands) { ISO3166::Country.search('NL') }
791
-
792
- it 'should return false for countries without eea_member flag' do
793
- expect(country.in_eea?).to be_falsey
794
- end
795
-
796
- it 'should return true for countries with eea_member flag set to true' do
797
- expect(netherlands.in_eea?).to be_truthy
798
- end
799
- end
800
-
801
- describe 'gec' do
802
- it 'should return the country\'s GEC code' do
803
- expect(ISO3166::Country.new('NA').gec).to eql 'WA'
804
- end
805
-
806
- it 'should return nil if the country does not have a GEC code' do
807
- expect(ISO3166::Country.new('UM').gec).to eql nil
808
- end
809
- end
810
-
811
- describe 'to_s' do
812
- it 'should return the country name' do
813
- expect(ISO3166::Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
814
- end
815
- end
816
-
817
- describe 'VAT rates' do
818
- let(:belgium) { ISO3166::Country.search('BE') }
819
-
820
- it 'should not return a vat_rate for countries without federal VAT' do
821
- expect(country.vat_rates).to eq(nil)
822
- end
823
-
824
- it 'should contain all keys for vat_rates' do
825
- expect(belgium.vat_rates).to be_a(Hash)
826
- expect(belgium.vat_rates.keys).to eq(%w(standard reduced super_reduced parking))
827
- end
828
-
829
- it 'should return an array of reduced vat rates' do
830
- expect(belgium.vat_rates['reduced']).to be_an(Array)
831
- expect(belgium.vat_rates['reduced']).to eq([6, 12])
832
- end
833
- end
834
-
835
- describe 'ISO3166::Country()' do
836
- it 'should return same object if instance of ISO3166::Country given' do
837
- expect(ISO3166::Country(country)).to eq country
838
- end
839
-
840
- it 'should return country if instance of String given' do
841
- expect(ISO3166::Country('us')).to eq country
842
- end
843
-
844
- it 'should return country if not convertable input given' do
845
- expect do
846
- ISO3166::Country(42)
847
- end.to raise_error(TypeError, /can't convert ([A-z]+) into ISO3166::Country/)
848
- end
849
- end
850
-
851
- describe 'Added country names to search by' do
852
- it 'should return country code for Democratic Republic of the Congo' do
853
- expect(ISO3166::Country.find_country_by_name('Democratic Republic of the Congo').alpha2).to eq 'CD'
854
- end
855
- it 'should return country code for Ivory Coast' do
856
- expect(ISO3166::Country.find_country_by_name('Ivory Coast').alpha2).to eq 'CI'
857
- end
858
- it 'should return Pakistan code for Guinea Bissau' do
859
- expect(ISO3166::Country.find_country_by_name('Guinea Bissau').alpha2).to eq 'GW'
860
- end
861
- it 'should return Pakistan code for St Kitts and Nevis' do
862
- expect(ISO3166::Country.find_country_by_name('St Kitts and Nevis').alpha2).to eq 'KN'
863
- end
864
- it 'should return Pakistan code for St Lucia' do
865
- expect(ISO3166::Country.find_country_by_name('St Lucia').alpha2).to eq 'LC'
866
- expect(ISO3166::Country.find_country_by_name('St. Lucia').alpha2).to eq 'LC'
867
- end
868
- it 'should return Pakistan code for Turks and Caicos' do
869
- expect(ISO3166::Country.find_country_by_name('Turks and Caicos').alpha2).to eq 'TC'
870
- end
871
- it 'should return Pakistan code for St Vincent Grenadines' do
872
- expect(ISO3166::Country.find_country_by_name('St Vincent Grenadines').alpha2).to eq 'VC'
873
- expect(ISO3166::Country.find_country_by_name('St. Vincent Grenadines').alpha2).to eq 'VC'
874
- end
875
- it 'should return country code for Palestinian Authority' do
876
- expect(ISO3166::Country.find_country_by_name('Palestinian Authority').alpha2).to eq 'PS'
877
- end
878
- end
879
-
880
- describe 'Emoji' do
881
- it 'has an emoji flag' do
882
- expect(country.emoji_flag).to eq 'πŸ‡ΊπŸ‡Έ'
883
- end
884
- end
885
-
886
- describe '#un_locode' do
887
- let(:countries) { ISO3166::Country.all }
888
-
889
- it 'should have two letter un_locode for each country' do
890
- expect(countries.all? { |country| !country.un_locode.nil? }).to be
891
- expect(countries.all? { |country| country.un_locode.length == 2 }).to be
892
- end
893
- end
894
- end