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.
- checksums.yaml +4 -4
- data/lib/countries/cache/countries.json +1 -1
- data/lib/countries/cache/locales/ab.json +1 -0
- data/lib/countries/cache/locales/af.json +1 -1
- data/lib/countries/cache/locales/ak.json +1 -0
- data/lib/countries/cache/locales/am.json +1 -1
- data/lib/countries/cache/locales/an.json +1 -0
- data/lib/countries/cache/locales/ar.json +1 -1
- data/lib/countries/cache/locales/as.json +1 -1
- data/lib/countries/cache/locales/ay.json +1 -0
- data/lib/countries/cache/locales/az.json +1 -1
- data/lib/countries/cache/locales/ba.json +1 -0
- data/lib/countries/cache/locales/be.json +1 -1
- data/lib/countries/cache/locales/bg.json +1 -1
- data/lib/countries/cache/locales/bi.json +1 -0
- data/lib/countries/cache/locales/bn-in.json +1 -0
- data/lib/countries/cache/locales/bn.json +1 -1
- data/lib/countries/cache/locales/br.json +1 -1
- data/lib/countries/cache/locales/bs.json +1 -1
- data/lib/countries/cache/locales/ca.json +1 -1
- data/lib/countries/cache/locales/ce.json +1 -0
- data/lib/countries/cache/locales/ch.json +1 -0
- data/lib/countries/cache/locales/cs.json +1 -1
- data/lib/countries/cache/locales/cv.json +1 -0
- data/lib/countries/cache/locales/cy.json +1 -1
- data/lib/countries/cache/locales/da.json +1 -1
- data/lib/countries/cache/locales/de.json +1 -1
- data/lib/countries/cache/locales/dv.json +1 -0
- data/lib/countries/cache/locales/dz.json +1 -1
- data/lib/countries/cache/locales/ee.json +1 -0
- data/lib/countries/cache/locales/el.json +1 -1
- data/lib/countries/cache/locales/en.json +1 -1
- data/lib/countries/cache/locales/eo.json +1 -1
- data/lib/countries/cache/locales/es.json +1 -1
- data/lib/countries/cache/locales/et.json +1 -1
- data/lib/countries/cache/locales/eu.json +1 -1
- data/lib/countries/cache/locales/fa.json +1 -1
- data/lib/countries/cache/locales/ff.json +1 -0
- data/lib/countries/cache/locales/fi.json +1 -1
- data/lib/countries/cache/locales/fo.json +1 -1
- data/lib/countries/cache/locales/fr.json +1 -1
- data/lib/countries/cache/locales/fy.json +1 -0
- data/lib/countries/cache/locales/ga.json +1 -1
- data/lib/countries/cache/locales/gl.json +1 -1
- data/lib/countries/cache/locales/gn.json +1 -0
- data/lib/countries/cache/locales/gu.json +1 -1
- data/lib/countries/cache/locales/gv.json +1 -0
- data/lib/countries/cache/locales/ha.json +1 -0
- data/lib/countries/cache/locales/he.json +1 -1
- data/lib/countries/cache/locales/hi.json +1 -1
- data/lib/countries/cache/locales/hr.json +1 -1
- data/lib/countries/cache/locales/ht.json +1 -0
- data/lib/countries/cache/locales/hu.json +1 -1
- data/lib/countries/cache/locales/hy.json +1 -1
- data/lib/countries/cache/locales/ia.json +1 -1
- data/lib/countries/cache/locales/id.json +1 -1
- data/lib/countries/cache/locales/io.json +1 -0
- data/lib/countries/cache/locales/is.json +1 -1
- data/lib/countries/cache/locales/it.json +1 -1
- data/lib/countries/cache/locales/iu.json +1 -0
- data/lib/countries/cache/locales/ja.json +1 -1
- data/lib/countries/cache/locales/ka.json +1 -1
- data/lib/countries/cache/locales/ki.json +1 -0
- data/lib/countries/cache/locales/kk.json +1 -1
- data/lib/countries/cache/locales/kl.json +1 -0
- data/lib/countries/cache/locales/km.json +1 -1
- data/lib/countries/cache/locales/kn.json +1 -1
- data/lib/countries/cache/locales/ko.json +1 -1
- data/lib/countries/cache/locales/ku.json +1 -1
- data/lib/countries/cache/locales/kv.json +1 -0
- data/lib/countries/cache/locales/kw.json +1 -0
- data/lib/countries/cache/locales/ky.json +1 -0
- data/lib/countries/cache/locales/lo.json +1 -0
- data/lib/countries/cache/locales/lt.json +1 -1
- data/lib/countries/cache/locales/lv.json +1 -1
- data/lib/countries/cache/locales/mi.json +1 -1
- data/lib/countries/cache/locales/mk.json +1 -1
- data/lib/countries/cache/locales/ml.json +1 -1
- data/lib/countries/cache/locales/mn.json +1 -1
- data/lib/countries/cache/locales/mr.json +1 -1
- data/lib/countries/cache/locales/ms.json +1 -1
- data/lib/countries/cache/locales/mt.json +1 -1
- data/lib/countries/cache/locales/my.json +1 -0
- data/lib/countries/cache/locales/na.json +1 -0
- data/lib/countries/cache/locales/nb.json +1 -1
- data/lib/countries/cache/locales/ne.json +1 -1
- data/lib/countries/cache/locales/nl.json +1 -1
- data/lib/countries/cache/locales/nn.json +1 -1
- data/lib/countries/cache/locales/nv.json +1 -0
- data/lib/countries/cache/locales/oc.json +1 -1
- data/lib/countries/cache/locales/or.json +1 -1
- data/lib/countries/cache/locales/pa.json +1 -1
- data/lib/countries/cache/locales/pi.json +1 -0
- data/lib/countries/cache/locales/pl.json +1 -1
- data/lib/countries/cache/locales/ps.json +1 -1
- data/lib/countries/cache/locales/pt-br.json +1 -0
- data/lib/countries/cache/locales/pt.json +1 -1
- data/lib/countries/cache/locales/ro.json +1 -1
- data/lib/countries/cache/locales/ru.json +1 -1
- data/lib/countries/cache/locales/rw.json +1 -1
- data/lib/countries/cache/locales/sc.json +1 -0
- data/lib/countries/cache/locales/sd.json +1 -0
- data/lib/countries/cache/locales/si.json +1 -1
- data/lib/countries/cache/locales/sk.json +1 -1
- data/lib/countries/cache/locales/sl.json +1 -1
- data/lib/countries/cache/locales/so.json +1 -1
- data/lib/countries/cache/locales/sq.json +1 -1
- data/lib/countries/cache/locales/sr.json +1 -1
- data/lib/countries/cache/locales/sv.json +1 -1
- data/lib/countries/cache/locales/sw.json +1 -1
- data/lib/countries/cache/locales/ta.json +1 -1
- data/lib/countries/cache/locales/te.json +1 -1
- data/lib/countries/cache/locales/tg.json +1 -0
- data/lib/countries/cache/locales/th.json +1 -1
- data/lib/countries/cache/locales/ti.json +1 -1
- data/lib/countries/cache/locales/tk.json +1 -1
- data/lib/countries/cache/locales/tl.json +1 -1
- data/lib/countries/cache/locales/tr.json +1 -1
- data/lib/countries/cache/locales/tt.json +1 -1
- data/lib/countries/cache/locales/ug.json +1 -1
- data/lib/countries/cache/locales/uk.json +1 -1
- data/lib/countries/cache/locales/ur.json +1 -0
- data/lib/countries/cache/locales/uz.json +1 -0
- data/lib/countries/cache/locales/ve.json +1 -1
- data/lib/countries/cache/locales/vi.json +1 -1
- data/lib/countries/cache/locales/wa.json +1 -1
- data/lib/countries/cache/locales/wo.json +1 -1
- data/lib/countries/cache/locales/xh.json +1 -1
- data/lib/countries/cache/locales/yo.json +1 -0
- data/lib/countries/cache/locales/zh-cn.json +1 -0
- data/lib/countries/cache/locales/zh-hk.json +1 -0
- data/lib/countries/cache/locales/zh-tw.json +1 -0
- data/lib/countries/cache/locales/zu.json +1 -1
- data/lib/countries/configuration.rb +16 -1
- data/lib/countries/country/class_methods.rb +55 -92
- data/lib/countries/country/conversion_methods.rb +17 -0
- data/lib/countries/country/country_subdivision_methods.rb +82 -0
- data/lib/countries/country/currency_methods.rb +5 -1
- data/lib/countries/country/emoji.rb +5 -3
- data/lib/countries/country/finder_methods.rb +79 -0
- data/lib/countries/country.rb +132 -21
- data/lib/countries/data/countries/AD.yaml +29 -28
- data/lib/countries/data/countries/AE.yaml +33 -33
- data/lib/countries/data/countries/AF.yaml +33 -32
- data/lib/countries/data/countries/AG.yaml +30 -30
- data/lib/countries/data/countries/AI.yaml +28 -27
- data/lib/countries/data/countries/AL.yaml +30 -29
- data/lib/countries/data/countries/AM.yaml +31 -30
- data/lib/countries/data/countries/AO.yaml +28 -28
- data/lib/countries/data/countries/AQ.yaml +27 -27
- data/lib/countries/data/countries/AR.yaml +32 -30
- data/lib/countries/data/countries/AS.yaml +32 -31
- data/lib/countries/data/countries/AT.yaml +37 -36
- data/lib/countries/data/countries/AU.yaml +36 -33
- data/lib/countries/data/countries/AW.yaml +26 -26
- data/lib/countries/data/countries/AX.yaml +30 -27
- data/lib/countries/data/countries/AZ.yaml +31 -30
- data/lib/countries/data/countries/BA.yaml +33 -32
- data/lib/countries/data/countries/BB.yaml +29 -28
- data/lib/countries/data/countries/BD.yaml +29 -28
- data/lib/countries/data/countries/BE.yaml +42 -41
- data/lib/countries/data/countries/BF.yaml +30 -30
- data/lib/countries/data/countries/BG.yaml +38 -36
- data/lib/countries/data/countries/BH.yaml +30 -29
- data/lib/countries/data/countries/BI.yaml +30 -30
- data/lib/countries/data/countries/BJ.yaml +28 -28
- data/lib/countries/data/countries/BL.yaml +26 -25
- data/lib/countries/data/countries/BM.yaml +30 -29
- data/lib/countries/data/countries/BN.yaml +27 -26
- data/lib/countries/data/countries/BO.yaml +32 -32
- data/lib/countries/data/countries/BQ.yaml +29 -29
- data/lib/countries/data/countries/BR.yaml +37 -35
- data/lib/countries/data/countries/BS.yaml +27 -28
- data/lib/countries/data/countries/BT.yaml +29 -28
- data/lib/countries/data/countries/BV.yaml +27 -27
- data/lib/countries/data/countries/BW.yaml +30 -30
- data/lib/countries/data/countries/BY.yaml +31 -30
- data/lib/countries/data/countries/BZ.yaml +29 -29
- data/lib/countries/data/countries/CA.yaml +33 -30
- data/lib/countries/data/countries/CC.yaml +30 -29
- data/lib/countries/data/countries/CD.yaml +36 -36
- data/lib/countries/data/countries/CF.yaml +30 -30
- data/lib/countries/data/countries/CG.yaml +30 -30
- data/lib/countries/data/countries/CH.yaml +41 -40
- data/lib/countries/data/countries/CI.yaml +28 -28
- data/lib/countries/data/countries/CK.yaml +28 -28
- data/lib/countries/data/countries/CL.yaml +34 -28
- data/lib/countries/data/countries/CM.yaml +30 -30
- data/lib/countries/data/countries/CN.yaml +30 -28
- data/lib/countries/data/countries/CO.yaml +29 -28
- data/lib/countries/data/countries/CR.yaml +29 -28
- data/lib/countries/data/countries/CU.yaml +28 -27
- data/lib/countries/data/countries/CV.yaml +29 -28
- data/lib/countries/data/countries/CW.yaml +26 -26
- data/lib/countries/data/countries/CX.yaml +31 -30
- data/lib/countries/data/countries/CY.yaml +42 -41
- data/lib/countries/data/countries/CZ.yaml +39 -38
- data/lib/countries/data/countries/DE.yaml +39 -36
- data/lib/countries/data/countries/DJ.yaml +30 -30
- data/lib/countries/data/countries/DK.yaml +36 -35
- data/lib/countries/data/countries/DM.yaml +27 -27
- data/lib/countries/data/countries/DO.yaml +29 -28
- data/lib/countries/data/countries/DZ.yaml +29 -28
- data/lib/countries/data/countries/EC.yaml +29 -28
- data/lib/countries/data/countries/EE.yaml +37 -36
- data/lib/countries/data/countries/EG.yaml +29 -28
- data/lib/countries/data/countries/EH.yaml +31 -30
- data/lib/countries/data/countries/ER.yaml +32 -32
- data/lib/countries/data/countries/ES.yaml +37 -36
- data/lib/countries/data/countries/ET.yaml +29 -28
- data/lib/countries/data/countries/FI.yaml +40 -39
- data/lib/countries/data/countries/FJ.yaml +34 -34
- data/lib/countries/data/countries/FK.yaml +30 -29
- data/lib/countries/data/countries/FM.yaml +29 -28
- data/lib/countries/data/countries/FO.yaml +29 -28
- data/lib/countries/data/countries/FR.yaml +40 -37
- data/lib/countries/data/countries/GA.yaml +28 -28
- data/lib/countries/data/countries/GB.yaml +47 -36
- data/lib/countries/data/countries/GD.yaml +27 -27
- data/lib/countries/data/countries/GE.yaml +29 -28
- data/lib/countries/data/countries/GF.yaml +32 -29
- data/lib/countries/data/countries/GG.yaml +32 -31
- data/lib/countries/data/countries/GH.yaml +28 -28
- data/lib/countries/data/countries/GI.yaml +29 -28
- data/lib/countries/data/countries/GL.yaml +30 -29
- data/lib/countries/data/countries/GM.yaml +29 -29
- data/lib/countries/data/countries/GN.yaml +31 -30
- data/lib/countries/data/countries/GP.yaml +30 -27
- data/lib/countries/data/countries/GQ.yaml +30 -30
- data/lib/countries/data/countries/GR.yaml +38 -37
- data/lib/countries/data/countries/GS.yaml +30 -29
- data/lib/countries/data/countries/GT.yaml +29 -28
- data/lib/countries/data/countries/GU.yaml +32 -31
- data/lib/countries/data/countries/GW.yaml +29 -28
- data/lib/countries/data/countries/GY.yaml +27 -27
- data/lib/countries/data/countries/HK.yaml +30 -30
- data/lib/countries/data/countries/HM.yaml +29 -28
- data/lib/countries/data/countries/HN.yaml +29 -28
- data/lib/countries/data/countries/HR.yaml +38 -37
- data/lib/countries/data/countries/HT.yaml +30 -29
- data/lib/countries/data/countries/HU.yaml +38 -37
- data/lib/countries/data/countries/ID.yaml +30 -28
- data/lib/countries/data/countries/IE.yaml +40 -39
- data/lib/countries/data/countries/IL.yaml +36 -30
- data/lib/countries/data/countries/IM.yaml +32 -31
- data/lib/countries/data/countries/IN.yaml +32 -30
- data/lib/countries/data/countries/IO.yaml +29 -28
- data/lib/countries/data/countries/IQ.yaml +29 -28
- data/lib/countries/data/countries/IR.yaml +29 -28
- data/lib/countries/data/countries/IS.yaml +36 -35
- data/lib/countries/data/countries/IT.yaml +39 -36
- data/lib/countries/data/countries/JE.yaml +27 -26
- data/lib/countries/data/countries/JM.yaml +29 -29
- data/lib/countries/data/countries/JO.yaml +29 -28
- data/lib/countries/data/countries/JP.yaml +31 -28
- data/lib/countries/data/countries/KE.yaml +31 -30
- data/lib/countries/data/countries/KG.yaml +31 -30
- data/lib/countries/data/countries/KH.yaml +29 -28
- data/lib/countries/data/countries/KI.yaml +28 -28
- data/lib/countries/data/countries/KM.yaml +30 -30
- data/lib/countries/data/countries/KN.yaml +29 -29
- data/lib/countries/data/countries/KP.yaml +29 -28
- data/lib/countries/data/countries/KR.yaml +30 -28
- data/lib/countries/data/countries/KW.yaml +29 -28
- data/lib/countries/data/countries/KY.yaml +30 -29
- data/lib/countries/data/countries/KZ.yaml +31 -30
- data/lib/countries/data/countries/LA.yaml +29 -28
- data/lib/countries/data/countries/LB.yaml +32 -31
- data/lib/countries/data/countries/LC.yaml +29 -29
- data/lib/countries/data/countries/LI.yaml +30 -27
- data/lib/countries/data/countries/LK.yaml +29 -28
- data/lib/countries/data/countries/LR.yaml +29 -28
- data/lib/countries/data/countries/LS.yaml +29 -28
- data/lib/countries/data/countries/LT.yaml +38 -37
- data/lib/countries/data/countries/LU.yaml +40 -39
- data/lib/countries/data/countries/LV.yaml +43 -36
- data/lib/countries/data/countries/LY.yaml +28 -28
- data/lib/countries/data/countries/MA.yaml +29 -28
- data/lib/countries/data/countries/MC.yaml +31 -28
- data/lib/countries/data/countries/MD.yaml +29 -28
- data/lib/countries/data/countries/ME.yaml +35 -34
- data/lib/countries/data/countries/MF.yaml +32 -29
- data/lib/countries/data/countries/MG.yaml +31 -30
- data/lib/countries/data/countries/MH.yaml +31 -30
- data/lib/countries/data/countries/MK.yaml +31 -28
- data/lib/countries/data/countries/ML.yaml +28 -28
- data/lib/countries/data/countries/MM.yaml +28 -27
- data/lib/countries/data/countries/MN.yaml +29 -28
- data/lib/countries/data/countries/MO.yaml +29 -29
- data/lib/countries/data/countries/MP.yaml +32 -31
- data/lib/countries/data/countries/MQ.yaml +30 -27
- data/lib/countries/data/countries/MR.yaml +30 -30
- data/lib/countries/data/countries/MS.yaml +27 -27
- data/lib/countries/data/countries/MT.yaml +39 -38
- data/lib/countries/data/countries/MU.yaml +29 -28
- data/lib/countries/data/countries/MV.yaml +29 -28
- data/lib/countries/data/countries/MW.yaml +30 -30
- data/lib/countries/data/countries/MX.yaml +35 -33
- data/lib/countries/data/countries/MY.yaml +31 -30
- data/lib/countries/data/countries/MZ.yaml +29 -28
- data/lib/countries/data/countries/NA.yaml +31 -30
- data/lib/countries/data/countries/NC.yaml +30 -29
- data/lib/countries/data/countries/NE.yaml +29 -28
- data/lib/countries/data/countries/NF.yaml +30 -29
- data/lib/countries/data/countries/NG.yaml +35 -34
- data/lib/countries/data/countries/NI.yaml +29 -28
- data/lib/countries/data/countries/NL.yaml +40 -36
- data/lib/countries/data/countries/NO.yaml +37 -36
- data/lib/countries/data/countries/NP.yaml +33 -32
- data/lib/countries/data/countries/NR.yaml +28 -28
- data/lib/countries/data/countries/NU.yaml +26 -26
- data/lib/countries/data/countries/NZ.yaml +36 -35
- data/lib/countries/data/countries/OM.yaml +29 -28
- data/lib/countries/data/countries/PA.yaml +28 -28
- data/lib/countries/data/countries/PE.yaml +29 -28
- data/lib/countries/data/countries/PF.yaml +30 -29
- data/lib/countries/data/countries/PG.yaml +29 -28
- data/lib/countries/data/countries/PH.yaml +36 -35
- data/lib/countries/data/countries/PK.yaml +31 -30
- data/lib/countries/data/countries/PL.yaml +38 -37
- data/lib/countries/data/countries/PM.yaml +30 -29
- data/lib/countries/data/countries/PN.yaml +28 -27
- data/lib/countries/data/countries/PR.yaml +31 -30
- data/lib/countries/data/countries/PS.yaml +34 -32
- data/lib/countries/data/countries/PT.yaml +35 -34
- data/lib/countries/data/countries/PW.yaml +27 -26
- data/lib/countries/data/countries/PY.yaml +31 -30
- data/lib/countries/data/countries/QA.yaml +28 -28
- data/lib/countries/data/countries/RE.yaml +31 -28
- data/lib/countries/data/countries/RO.yaml +38 -37
- data/lib/countries/data/countries/RS.yaml +29 -28
- data/lib/countries/data/countries/RU.yaml +30 -28
- data/lib/countries/data/countries/RW.yaml +32 -32
- data/lib/countries/data/countries/SA.yaml +35 -28
- data/lib/countries/data/countries/SB.yaml +29 -29
- data/lib/countries/data/countries/SC.yaml +30 -30
- data/lib/countries/data/countries/SD.yaml +31 -30
- data/lib/countries/data/countries/SE.yaml +38 -37
- data/lib/countries/data/countries/SG.yaml +33 -32
- data/lib/countries/data/countries/SH.yaml +30 -29
- data/lib/countries/data/countries/SI.yaml +37 -36
- data/lib/countries/data/countries/SJ.yaml +30 -29
- data/lib/countries/data/countries/SK.yaml +37 -36
- data/lib/countries/data/countries/SL.yaml +28 -28
- data/lib/countries/data/countries/SM.yaml +29 -28
- data/lib/countries/data/countries/SN.yaml +29 -28
- data/lib/countries/data/countries/SO.yaml +31 -30
- data/lib/countries/data/countries/SR.yaml +27 -27
- data/lib/countries/data/countries/SS.yaml +30 -30
- data/lib/countries/data/countries/ST.yaml +28 -28
- data/lib/countries/data/countries/SV.yaml +28 -27
- data/lib/countries/data/countries/SX.yaml +29 -29
- data/lib/countries/data/countries/SY.yaml +28 -28
- data/lib/countries/data/countries/SZ.yaml +31 -30
- data/lib/countries/data/countries/TC.yaml +31 -30
- data/lib/countries/data/countries/TD.yaml +30 -30
- data/lib/countries/data/countries/TF.yaml +31 -31
- data/lib/countries/data/countries/TG.yaml +28 -28
- data/lib/countries/data/countries/TH.yaml +36 -33
- data/lib/countries/data/countries/TJ.yaml +31 -30
- data/lib/countries/data/countries/TK.yaml +28 -28
- data/lib/countries/data/countries/TL.yaml +28 -28
- data/lib/countries/data/countries/TM.yaml +31 -30
- data/lib/countries/data/countries/TN.yaml +31 -30
- data/lib/countries/data/countries/TO.yaml +30 -30
- data/lib/countries/data/countries/TR.yaml +30 -28
- data/lib/countries/data/countries/TT.yaml +29 -29
- data/lib/countries/data/countries/TV.yaml +28 -28
- data/lib/countries/data/countries/TW.yaml +32 -29
- data/lib/countries/data/countries/TZ.yaml +31 -30
- data/lib/countries/data/countries/UA.yaml +35 -34
- data/lib/countries/data/countries/UG.yaml +30 -30
- data/lib/countries/data/countries/UM.yaml +30 -29
- data/lib/countries/data/countries/US.yaml +33 -28
- data/lib/countries/data/countries/UY.yaml +29 -28
- data/lib/countries/data/countries/UZ.yaml +31 -30
- data/lib/countries/data/countries/VA.yaml +32 -31
- data/lib/countries/data/countries/VC.yaml +30 -29
- data/lib/countries/data/countries/VE.yaml +29 -28
- data/lib/countries/data/countries/VG.yaml +31 -30
- data/lib/countries/data/countries/VI.yaml +30 -28
- data/lib/countries/data/countries/VN.yaml +35 -28
- data/lib/countries/data/countries/VU.yaml +32 -32
- data/lib/countries/data/countries/WF.yaml +30 -29
- data/lib/countries/data/countries/WS.yaml +30 -30
- data/lib/countries/data/countries/YE.yaml +28 -28
- data/lib/countries/data/countries/YT.yaml +29 -26
- data/lib/countries/data/countries/ZA.yaml +42 -40
- data/lib/countries/data/countries/ZM.yaml +29 -28
- data/lib/countries/data/countries/ZW.yaml +32 -32
- data/lib/countries/data/locales_methods.rb +23 -0
- data/lib/countries/data/subdivision_methods.rb +30 -0
- data/lib/countries/data/subdivisions/AD.yaml +49 -28
- data/lib/countries/data/subdivisions/AE.yaml +185 -63
- data/lib/countries/data/subdivisions/AF.yaml +918 -419
- data/lib/countries/data/subdivisions/AG.yaml +169 -76
- data/lib/countries/data/subdivisions/AL.yaml +333 -468
- data/lib/countries/data/subdivisions/AM.yaml +291 -88
- data/lib/countries/data/subdivisions/AO.yaml +416 -144
- data/lib/countries/data/subdivisions/AR.yaml +543 -187
- data/lib/countries/data/subdivisions/AT.yaml +246 -72
- data/lib/countries/data/subdivisions/AU.yaml +257 -64
- data/lib/countries/data/subdivisions/AZ.yaml +2099 -805
- data/lib/countries/data/subdivisions/BA.yaml +128 -95
- data/lib/countries/data/subdivisions/BB.yaml +216 -88
- data/lib/countries/data/subdivisions/BD.yaml +1499 -543
- data/lib/countries/data/subdivisions/BE.yaml +403 -166
- data/lib/countries/data/subdivisions/BF.yaml +3032 -2291
- data/lib/countries/data/subdivisions/BG.yaml +658 -219
- data/lib/countries/data/subdivisions/BH.yaml +83 -46
- data/lib/countries/data/subdivisions/BI.yaml +461 -213
- data/lib/countries/data/subdivisions/BJ.yaml +260 -96
- data/lib/countries/data/subdivisions/BN.yaml +76 -32
- data/lib/countries/data/subdivisions/BO.yaml +201 -72
- data/lib/countries/data/subdivisions/BQ.yaml +70 -24
- data/lib/countries/data/subdivisions/BR.yaml +730 -216
- data/lib/countries/data/subdivisions/BS.yaml +985 -566
- data/lib/countries/data/subdivisions/BT.yaml +390 -160
- data/lib/countries/data/subdivisions/BW.yaml +523 -261
- data/lib/countries/data/subdivisions/BY.yaml +210 -126
- data/lib/countries/data/subdivisions/BZ.yaml +106 -48
- data/lib/countries/data/subdivisions/CA.yaml +395 -105
- data/lib/countries/data/subdivisions/CD.yaml +829 -406
- data/lib/countries/data/subdivisions/CF.yaml +323 -136
- data/lib/countries/data/subdivisions/CG.yaml +249 -90
- data/lib/countries/data/subdivisions/CH.yaml +711 -208
- data/lib/countries/data/subdivisions/CI.yaml +480 -322
- data/lib/countries/data/subdivisions/CL.yaml +379 -153
- data/lib/countries/data/subdivisions/CM.yaml +222 -80
- data/lib/countries/data/subdivisions/CN.yaml +2388 -1650
- data/lib/countries/data/subdivisions/CO.yaml +744 -264
- data/lib/countries/data/subdivisions/CR.yaml +140 -56
- data/lib/countries/data/subdivisions/CU.yaml +326 -128
- data/lib/countries/data/subdivisions/CV.yaml +709 -363
- data/lib/countries/data/subdivisions/CY.yaml +126 -48
- data/lib/countries/data/subdivisions/CZ.yaml +2291 -1347
- data/lib/countries/data/subdivisions/DE.yaml +531 -144
- data/lib/countries/data/subdivisions/DJ.yaml +132 -48
- data/lib/countries/data/subdivisions/DK.yaml +126 -236
- data/lib/countries/data/subdivisions/DM.yaml +170 -80
- data/lib/countries/data/subdivisions/DO.yaml +804 -248
- data/lib/countries/data/subdivisions/DZ.yaml +961 -384
- data/lib/countries/data/subdivisions/EC.yaml +571 -276
- data/lib/countries/data/subdivisions/EE.yaml +832 -152
- data/lib/countries/data/subdivisions/EG.yaml +553 -216
- data/lib/countries/data/subdivisions/ER.yaml +117 -48
- data/lib/countries/data/subdivisions/ES.yaml +3025 -1401
- data/lib/countries/data/subdivisions/ET.yaml +245 -88
- data/lib/countries/data/subdivisions/FI.yaml +372 -123
- data/lib/countries/data/subdivisions/FJ.yaml +587 -264
- data/lib/countries/data/subdivisions/FM.yaml +78 -32
- data/lib/countries/data/subdivisions/FR.yaml +3298 -1258
- data/lib/countries/data/subdivisions/GA.yaml +192 -72
- data/lib/countries/data/subdivisions/GB.yaml +5799 -2625
- data/lib/countries/data/subdivisions/GD.yaml +131 -56
- data/lib/countries/data/subdivisions/GE.yaml +284 -96
- data/lib/countries/data/subdivisions/GH.yaml +338 -113
- data/lib/countries/data/subdivisions/GL.yaml +135 -43
- data/lib/countries/data/subdivisions/GM.yaml +140 -48
- data/lib/countries/data/subdivisions/GN.yaml +1046 -503
- data/lib/countries/data/subdivisions/GQ.yaml +191 -72
- data/lib/countries/data/subdivisions/GR.yaml +317 -677
- data/lib/countries/data/subdivisions/GT.yaml +395 -198
- data/lib/countries/data/subdivisions/GW.yaml +235 -79
- data/lib/countries/data/subdivisions/GY.yaml +204 -80
- data/lib/countries/data/subdivisions/HN.yaml +313 -144
- data/lib/countries/data/subdivisions/HR.yaml +532 -168
- data/lib/countries/data/subdivisions/HT.yaml +237 -106
- data/lib/countries/data/subdivisions/HU.yaml +970 -381
- data/lib/countries/data/subdivisions/ID.yaml +2516 -1858
- data/lib/countries/data/subdivisions/IE.yaml +925 -429
- data/lib/countries/data/subdivisions/IL.yaml +135 -48
- data/lib/countries/data/subdivisions/IN.yaml +1304 -537
- data/lib/countries/data/subdivisions/IQ.yaml +447 -191
- data/lib/countries/data/subdivisions/IR.yaml +1708 -1306
- data/lib/countries/data/subdivisions/IS.yaml +1140 -67
- data/lib/countries/data/subdivisions/IT.yaml +9300 -7307
- data/lib/countries/data/subdivisions/JM.yaml +279 -112
- data/lib/countries/data/subdivisions/JO.yaml +221 -96
- data/lib/countries/data/subdivisions/JP.yaml +1039 -376
- data/lib/countries/data/subdivisions/KE.yaml +1273 -273
- data/lib/countries/data/subdivisions/KG.yaml +279 -118
- data/lib/countries/data/subdivisions/KH.yaml +572 -194
- data/lib/countries/data/subdivisions/KI.yaml +66 -24
- data/lib/countries/data/subdivisions/KM.yaml +56 -24
- data/lib/countries/data/subdivisions/KN.yaml +330 -112
- data/lib/countries/data/subdivisions/KP.yaml +333 -186
- data/lib/countries/data/subdivisions/KR.yaml +446 -128
- data/lib/countries/data/subdivisions/KW.yaml +98 -48
- data/lib/countries/data/subdivisions/KZ.yaml +488 -189
- data/lib/countries/data/subdivisions/LA.yaml +355 -149
- data/lib/countries/data/subdivisions/LB.yaml +184 -62
- data/lib/countries/data/subdivisions/LC.yaml +237 -55
- data/lib/countries/data/subdivisions/LI.yaml +234 -88
- data/lib/countries/data/subdivisions/LK.yaml +876 -431
- data/lib/countries/data/subdivisions/LR.yaml +362 -187
- data/lib/countries/data/subdivisions/LS.yaml +182 -80
- data/lib/countries/data/subdivisions/LT.yaml +2461 -1114
- data/lib/countries/data/subdivisions/LU.yaml +323 -146
- data/lib/countries/data/subdivisions/LV.yaml +2530 -5217
- data/lib/countries/data/subdivisions/LY.yaml +377 -162
- data/lib/countries/data/subdivisions/MA.yaml +3250 -2255
- data/lib/countries/data/subdivisions/MC.yaml +443 -129
- data/lib/countries/data/subdivisions/MD.yaml +1171 -590
- data/lib/countries/data/subdivisions/ME.yaml +548 -186
- data/lib/countries/data/subdivisions/MG.yaml +120 -48
- data/lib/countries/data/subdivisions/MH.yaml +596 -276
- data/lib/countries/data/subdivisions/MK.yaml +4141 -3147
- data/lib/countries/data/subdivisions/ML.yaml +230 -70
- data/lib/countries/data/subdivisions/MM.yaml +353 -112
- data/lib/countries/data/subdivisions/MN.yaml +537 -176
- data/lib/countries/data/subdivisions/MR.yaml +285 -111
- data/lib/countries/data/subdivisions/MT.yaml +1253 -544
- data/lib/countries/data/subdivisions/MU.yaml +262 -293
- data/lib/countries/data/subdivisions/MV.yaml +484 -263
- data/lib/countries/data/subdivisions/MW.yaml +741 -337
- data/lib/countries/data/subdivisions/MX.yaml +756 -260
- data/lib/countries/data/subdivisions/MY.yaml +376 -128
- data/lib/countries/data/subdivisions/MZ.yaml +222 -83
- data/lib/countries/data/subdivisions/NA.yaml +284 -129
- data/lib/countries/data/subdivisions/NE.yaml +187 -64
- data/lib/countries/data/subdivisions/NG.yaml +996 -296
- data/lib/countries/data/subdivisions/NI.yaml +302 -136
- data/lib/countries/data/subdivisions/NL.yaml +590 -263
- data/lib/countries/data/subdivisions/NO.yaml +782 -1085
- data/lib/countries/data/subdivisions/NP.yaml +534 -228
- data/lib/countries/data/subdivisions/NR.yaml +293 -112
- data/lib/countries/data/subdivisions/NZ.yaml +391 -197
- data/lib/countries/data/subdivisions/OM.yaml +355 -246
- data/lib/countries/data/subdivisions/PA.yaml +257 -113
- data/lib/countries/data/subdivisions/PE.yaml +502 -242
- data/lib/countries/data/subdivisions/PG.yaml +514 -237
- data/lib/countries/data/subdivisions/PH.yaml +5450 -3894
- data/lib/countries/data/subdivisions/PK.yaml +267 -204
- data/lib/countries/data/subdivisions/PL.yaml +272 -32
- data/lib/countries/data/subdivisions/PS.yaml +314 -0
- data/lib/countries/data/subdivisions/PT.yaml +411 -173
- data/lib/countries/data/subdivisions/PW.yaml +309 -128
- data/lib/countries/data/subdivisions/PY.yaml +360 -144
- data/lib/countries/data/subdivisions/QA.yaml +175 -97
- data/lib/countries/data/subdivisions/RO.yaml +960 -336
- data/lib/countries/data/subdivisions/RS.yaml +754 -261
- data/lib/countries/data/subdivisions/RU.yaml +2081 -665
- data/lib/countries/data/subdivisions/RW.yaml +114 -40
- data/lib/countries/data/subdivisions/SA.yaml +285 -104
- data/lib/countries/data/subdivisions/SB.yaml +190 -80
- data/lib/countries/data/subdivisions/SC.yaml +538 -184
- data/lib/countries/data/subdivisions/SD.yaml +847 -673
- data/lib/countries/data/subdivisions/SE.yaml +498 -237
- data/lib/countries/data/subdivisions/SG.yaml +89 -54
- data/lib/countries/data/subdivisions/SH.yaml +79 -31
- data/lib/countries/data/subdivisions/SI.yaml +4558 -1590
- data/lib/countries/data/subdivisions/SK.yaml +159 -64
- data/lib/countries/data/subdivisions/SL.yaml +92 -31
- data/lib/countries/data/subdivisions/SM.yaml +187 -72
- data/lib/countries/data/subdivisions/SN.yaml +395 -193
- data/lib/countries/data/subdivisions/SO.yaml +400 -144
- data/lib/countries/data/subdivisions/SR.yaml +185 -80
- data/lib/countries/data/subdivisions/SS.yaml +210 -0
- data/lib/countries/data/subdivisions/ST.yaml +178 -26
- data/lib/countries/data/subdivisions/SV.yaml +265 -112
- data/lib/countries/data/subdivisions/SY.yaml +287 -112
- data/lib/countries/data/subdivisions/SZ.yaml +87 -32
- data/lib/countries/data/subdivisions/TD.yaml +642 -312
- data/lib/countries/data/subdivisions/TG.yaml +93 -40
- data/lib/countries/data/subdivisions/TH.yaml +1796 -652
- data/lib/countries/data/subdivisions/TJ.yaml +224 -128
- data/lib/countries/data/subdivisions/TL.yaml +260 -104
- data/lib/countries/data/subdivisions/TM.yaml +137 -40
- data/lib/countries/data/subdivisions/TN.yaml +461 -192
- data/lib/countries/data/subdivisions/TO.yaml +81 -40
- data/lib/countries/data/subdivisions/TR.yaml +1991 -648
- data/lib/countries/data/subdivisions/TT.yaml +380 -204
- data/lib/countries/data/subdivisions/TV.yaml +187 -94
- data/lib/countries/data/subdivisions/TW.yaml +620 -251
- data/lib/countries/data/subdivisions/TZ.yaml +730 -208
- data/lib/countries/data/subdivisions/UA.yaml +640 -217
- data/lib/countries/data/subdivisions/UG.yaml +5678 -3641
- data/lib/countries/data/subdivisions/UM.yaml +220 -72
- data/lib/countries/data/subdivisions/US.yaml +1857 -486
- data/lib/countries/data/subdivisions/UY.yaml +456 -195
- data/lib/countries/data/subdivisions/UZ.yaml +380 -113
- data/lib/countries/data/subdivisions/VC.yaml +113 -48
- data/lib/countries/data/subdivisions/VE.yaml +514 -200
- data/lib/countries/data/subdivisions/VN.yaml +1405 -543
- data/lib/countries/data/subdivisions/VU.yaml +112 -48
- data/lib/countries/data/subdivisions/WF.yaml +66 -0
- data/lib/countries/data/subdivisions/WS.yaml +229 -88
- data/lib/countries/data/subdivisions/YE.yaml +550 -289
- data/lib/countries/data/subdivisions/ZA.yaml +288 -131
- data/lib/countries/data/subdivisions/ZM.yaml +191 -72
- data/lib/countries/data/subdivisions/ZW.yaml +183 -73
- data/lib/countries/data/translations/countries-ab.yaml +254 -0
- data/lib/countries/data/translations/countries-af.yaml +254 -0
- data/lib/countries/data/translations/countries-ak.yaml +254 -0
- data/lib/countries/data/translations/countries-am.yaml +254 -0
- data/lib/countries/data/translations/countries-an.yaml +254 -0
- data/lib/countries/data/translations/countries-ar.yaml +254 -0
- data/lib/countries/data/translations/countries-as.yaml +254 -0
- data/lib/countries/data/translations/countries-ay.yaml +254 -0
- data/lib/countries/data/translations/countries-az.yaml +254 -0
- data/lib/countries/data/translations/countries-ba.yaml +254 -0
- data/lib/countries/data/translations/countries-be.yaml +254 -0
- data/lib/countries/data/translations/countries-bg.yaml +254 -0
- data/lib/countries/data/translations/countries-bi.yaml +254 -0
- data/lib/countries/data/translations/countries-bn.yaml +254 -0
- data/lib/countries/data/translations/countries-bn_IN.yaml +254 -0
- data/lib/countries/data/translations/countries-br.yaml +254 -0
- data/lib/countries/data/translations/countries-bs.yaml +254 -0
- data/lib/countries/data/translations/countries-ca.yaml +254 -0
- data/lib/countries/data/translations/countries-ce.yaml +254 -0
- data/lib/countries/data/translations/countries-ch.yaml +254 -0
- data/lib/countries/data/translations/countries-cs.yaml +254 -0
- data/lib/countries/data/translations/countries-cv.yaml +254 -0
- data/lib/countries/data/translations/countries-cy.yaml +254 -0
- data/lib/countries/data/translations/countries-da.yaml +254 -0
- data/lib/countries/data/translations/countries-de.yaml +254 -0
- data/lib/countries/data/translations/countries-dv.yaml +254 -0
- data/lib/countries/data/translations/countries-dz.yaml +254 -0
- data/lib/countries/data/translations/countries-ee.yaml +254 -0
- data/lib/countries/data/translations/countries-el.yaml +254 -0
- data/lib/countries/data/translations/countries-en.yaml +254 -0
- data/lib/countries/data/translations/countries-eo.yaml +254 -0
- data/lib/countries/data/translations/countries-es.yaml +254 -0
- data/lib/countries/data/translations/countries-et.yaml +254 -0
- data/lib/countries/data/translations/countries-eu.yaml +254 -0
- data/lib/countries/data/translations/countries-fa.yaml +254 -0
- data/lib/countries/data/translations/countries-ff.yaml +254 -0
- data/lib/countries/data/translations/countries-fi.yaml +254 -0
- data/lib/countries/data/translations/countries-fo.yaml +254 -0
- data/lib/countries/data/translations/countries-fr.yaml +254 -0
- data/lib/countries/data/translations/countries-fy.yaml +254 -0
- data/lib/countries/data/translations/countries-ga.yaml +254 -0
- data/lib/countries/data/translations/countries-gl.yaml +254 -0
- data/lib/countries/data/translations/countries-gn.yaml +254 -0
- data/lib/countries/data/translations/countries-gu.yaml +254 -0
- data/lib/countries/data/translations/countries-gv.yaml +254 -0
- data/lib/countries/data/translations/countries-ha.yaml +254 -0
- data/lib/countries/data/translations/countries-he.yaml +254 -0
- data/lib/countries/data/translations/countries-hi.yaml +254 -0
- data/lib/countries/data/translations/countries-hr.yaml +254 -0
- data/lib/countries/data/translations/countries-ht.yaml +254 -0
- data/lib/countries/data/translations/countries-hu.yaml +254 -0
- data/lib/countries/data/translations/countries-hy.yaml +254 -0
- data/lib/countries/data/translations/countries-ia.yaml +254 -0
- data/lib/countries/data/translations/countries-id.yaml +254 -0
- data/lib/countries/data/translations/countries-io.yaml +254 -0
- data/lib/countries/data/translations/countries-is.yaml +254 -0
- data/lib/countries/data/translations/countries-it.yaml +254 -0
- data/lib/countries/data/translations/countries-iu.yaml +254 -0
- data/lib/countries/data/translations/countries-ja.yaml +254 -0
- data/lib/countries/data/translations/countries-ka.yaml +254 -0
- data/lib/countries/data/translations/countries-ki.yaml +254 -0
- data/lib/countries/data/translations/countries-kk.yaml +254 -0
- data/lib/countries/data/translations/countries-kl.yaml +254 -0
- data/lib/countries/data/translations/countries-km.yaml +254 -0
- data/lib/countries/data/translations/countries-kn.yaml +254 -0
- data/lib/countries/data/translations/countries-ko.yaml +254 -0
- data/lib/countries/data/translations/countries-ku.yaml +254 -0
- data/lib/countries/data/translations/countries-kv.yaml +254 -0
- data/lib/countries/data/translations/countries-kw.yaml +254 -0
- data/lib/countries/data/translations/countries-ky.yaml +254 -0
- data/lib/countries/data/translations/countries-lo.yaml +254 -0
- data/lib/countries/data/translations/countries-lt.yaml +254 -0
- data/lib/countries/data/translations/countries-lv.yaml +254 -0
- data/lib/countries/data/translations/countries-mi.yaml +254 -0
- data/lib/countries/data/translations/countries-mk.yaml +254 -0
- data/lib/countries/data/translations/countries-ml.yaml +254 -0
- data/lib/countries/data/translations/countries-mn.yaml +254 -0
- data/lib/countries/data/translations/countries-mr.yaml +254 -0
- data/lib/countries/data/translations/countries-ms.yaml +254 -0
- data/lib/countries/data/translations/countries-mt.yaml +254 -0
- data/lib/countries/data/translations/countries-my.yaml +254 -0
- data/lib/countries/data/translations/countries-na.yaml +254 -0
- data/lib/countries/data/translations/countries-nb.yaml +254 -0
- data/lib/countries/data/translations/countries-ne.yaml +254 -0
- data/lib/countries/data/translations/countries-nl.yaml +254 -0
- data/lib/countries/data/translations/countries-nn.yaml +254 -0
- data/lib/countries/data/translations/countries-nv.yaml +254 -0
- data/lib/countries/data/translations/countries-oc.yaml +254 -0
- data/lib/countries/data/translations/countries-or.yaml +254 -0
- data/lib/countries/data/translations/countries-pa.yaml +254 -0
- data/lib/countries/data/translations/countries-pi.yaml +254 -0
- data/lib/countries/data/translations/countries-pl.yaml +254 -0
- data/lib/countries/data/translations/countries-ps.yaml +254 -0
- data/lib/countries/data/translations/countries-pt.yaml +254 -0
- data/lib/countries/data/translations/countries-pt_BR.yaml +254 -0
- data/lib/countries/data/translations/countries-ro.yaml +254 -0
- data/lib/countries/data/translations/countries-ru.yaml +254 -0
- data/lib/countries/data/translations/countries-rw.yaml +254 -0
- data/lib/countries/data/translations/countries-sc.yaml +254 -0
- data/lib/countries/data/translations/countries-sd.yaml +254 -0
- data/lib/countries/data/translations/countries-si.yaml +254 -0
- data/lib/countries/data/translations/countries-sk.yaml +254 -0
- data/lib/countries/data/translations/countries-sl.yaml +254 -0
- data/lib/countries/data/translations/countries-so.yaml +254 -0
- data/lib/countries/data/translations/countries-sq.yaml +254 -0
- data/lib/countries/data/translations/countries-sr.yaml +254 -0
- data/lib/countries/data/translations/countries-sv.yaml +254 -0
- data/lib/countries/data/translations/countries-sw.yaml +254 -0
- data/lib/countries/data/translations/countries-ta.yaml +254 -0
- data/lib/countries/data/translations/countries-te.yaml +254 -0
- data/lib/countries/data/translations/countries-tg.yaml +254 -0
- data/lib/countries/data/translations/countries-th.yaml +254 -0
- data/lib/countries/data/translations/countries-ti.yaml +254 -0
- data/lib/countries/data/translations/countries-tk.yaml +254 -0
- data/lib/countries/data/translations/countries-tl.yaml +254 -0
- data/lib/countries/data/translations/countries-tr.yaml +254 -0
- data/lib/countries/data/translations/countries-tt.yaml +254 -0
- data/lib/countries/data/translations/countries-ug.yaml +254 -0
- data/lib/countries/data/translations/countries-uk.yaml +254 -0
- data/lib/countries/data/translations/countries-ur.yaml +254 -0
- data/lib/countries/data/translations/countries-uz.yaml +254 -0
- data/lib/countries/data/translations/countries-ve.yaml +254 -0
- data/lib/countries/data/translations/countries-vi.yaml +254 -0
- data/lib/countries/data/translations/countries-wa.yaml +254 -0
- data/lib/countries/data/translations/countries-wo.yaml +254 -0
- data/lib/countries/data/translations/countries-xh.yaml +254 -0
- data/lib/countries/data/translations/countries-yo.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_CN.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_HK.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_TW.yaml +254 -0
- data/lib/countries/data/translations/countries-zu.yaml +254 -0
- data/lib/countries/data.rb +85 -61
- data/lib/countries/global.rb +14 -3
- data/lib/countries/iso3166.rb +7 -2
- data/lib/countries/mongoid.rb +5 -0
- data/lib/countries/sources/cldr/downloader.rb +16 -14
- data/lib/countries/sources/cldr/subdivision.rb +5 -1
- data/lib/countries/sources/cldr/subdivision_updater.rb +24 -17
- data/lib/countries/sources/local/cached_loader.rb +5 -0
- data/lib/countries/sources/local/subdivision.rb +6 -2
- data/lib/countries/sources.rb +2 -0
- data/lib/countries/structure.rb +5 -6
- data/lib/countries/subdivision.rb +26 -8
- data/lib/countries/tasks/postal_codes.rake +54 -0
- data/lib/countries/timezones.rb +9 -4
- data/lib/countries/translations.rb +5 -4
- data/lib/countries/version.rb +3 -1
- data/lib/countries.rb +1 -2
- metadata +213 -104
- data/.gitignore +0 -25
- data/.rspec +0 -2
- data/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +0 -52
- data/.travis.yml +0 -16
- data/CHANGELOG.md +0 -388
- data/Gemfile +0 -9
- data/LICENSE +0 -22
- data/README.markdown +0 -331
- data/Rakefile +0 -90
- data/bin/console +0 -14
- data/countries.gemspec +0 -25
- data/lib/countries/cache/locales/zh.json +0 -1
- data/lib/countries/data/subdivisions/AI.yaml +0 -183
- data/lib/countries/data/subdivisions/AS.yaml +0 -66
- data/lib/countries/data/subdivisions/AX.yaml +0 -40
- data/lib/countries/data/subdivisions/BM.yaml +0 -144
- data/lib/countries/data/subdivisions/CK.yaml +0 -144
- data/lib/countries/data/subdivisions/EH.yaml +0 -72
- data/lib/countries/data/subdivisions/FO.yaml +0 -79
- data/lib/countries/data/subdivisions/GG.yaml +0 -144
- data/lib/countries/data/subdivisions/GU.yaml +0 -248
- data/lib/countries/data/subdivisions/HK.yaml +0 -235
- data/lib/countries/data/subdivisions/IM.yaml +0 -313
- data/lib/countries/data/subdivisions/JE.yaml +0 -157
- data/lib/countries/data/subdivisions/KY.yaml +0 -73
- data/lib/countries/data/subdivisions/MP.yaml +0 -53
- data/lib/countries/data/subdivisions/MS.yaml +0 -40
- data/lib/countries/data/subdivisions/NC.yaml +0 -40
- data/lib/countries/data/subdivisions/PF.yaml +0 -66
- data/lib/countries/data/subdivisions/PM.yaml +0 -27
- data/lib/countries/data/subdivisions/PR.yaml +0 -1015
- data/lib/countries/data/subdivisions/SJ.yaml +0 -27
- data/lib/countries/data/subdivisions/TF.yaml +0 -49
- data/lib/countries/data/subdivisions/TK.yaml +0 -40
- data/lib/countries/data/subdivisions/VI.yaml +0 -40
- data/lib/countries/data/subdivisions/YT.yaml +0 -222
- data/lib/countries/data/translation_corrections.yaml +0 -32
- data/lib/countries/kwarg_struct.rb +0 -12
- data/lib/countries/setup.rb +0 -18
- data/lib/countries/tasks/geocoding.rake +0 -104
- data/spec/00_global_spec.rb +0 -56
- data/spec/configuration_spec.rb +0 -54
- data/spec/country_spec.rb +0 -894
- data/spec/data_spec.rb +0 -181
- data/spec/mongoid_spec.rb +0 -61
- data/spec/perf_spec.rb +0 -74
- data/spec/spec_helper.rb +0 -13
- data/spec/subdivision_spec.rb +0 -18
- 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
|