countries 3.0.0 β†’ 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
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