countries 1.2.2 → 4.2.3
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 +5 -5
- data/.github/workflows/tests.yml +39 -0
- data/.gitignore +4 -1
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +52 -0
- data/CHANGELOG.md +570 -1
- data/Gemfile +7 -0
- data/LICENSE +3 -1
- data/README.markdown +261 -136
- data/Rakefile +44 -74
- data/bin/console +14 -0
- data/countries.gemspec +15 -9
- data/lib/countries/cache/countries.json +1 -0
- data/lib/countries/cache/locales/ab.json +1 -0
- data/lib/countries/cache/locales/af.json +1 -0
- data/lib/countries/cache/locales/ak.json +1 -0
- data/lib/countries/cache/locales/am.json +1 -0
- data/lib/countries/cache/locales/an.json +1 -0
- data/lib/countries/cache/locales/ar.json +1 -0
- data/lib/countries/cache/locales/as.json +1 -0
- data/lib/countries/cache/locales/ay.json +1 -0
- data/lib/countries/cache/locales/az.json +1 -0
- data/lib/countries/cache/locales/ba.json +1 -0
- data/lib/countries/cache/locales/be.json +1 -0
- data/lib/countries/cache/locales/bg.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/br.json +1 -0
- data/lib/countries/cache/locales/bs.json +1 -0
- data/lib/countries/cache/locales/ca.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/cv.json +1 -0
- data/lib/countries/cache/locales/cy.json +1 -0
- data/lib/countries/cache/locales/da.json +1 -0
- data/lib/countries/cache/locales/de.json +1 -0
- data/lib/countries/cache/locales/dv.json +1 -0
- data/lib/countries/cache/locales/dz.json +1 -0
- data/lib/countries/cache/locales/ee.json +1 -0
- data/lib/countries/cache/locales/el.json +1 -0
- data/lib/countries/cache/locales/en.json +1 -0
- data/lib/countries/cache/locales/eo.json +1 -0
- data/lib/countries/cache/locales/es.json +1 -0
- data/lib/countries/cache/locales/et.json +1 -0
- data/lib/countries/cache/locales/eu.json +1 -0
- data/lib/countries/cache/locales/fa.json +1 -0
- data/lib/countries/cache/locales/ff.json +1 -0
- data/lib/countries/cache/locales/fi.json +1 -0
- data/lib/countries/cache/locales/fo.json +1 -0
- data/lib/countries/cache/locales/fr.json +1 -0
- data/lib/countries/cache/locales/fy.json +1 -0
- data/lib/countries/cache/locales/ga.json +1 -0
- data/lib/countries/cache/locales/gl.json +1 -0
- data/lib/countries/cache/locales/gn.json +1 -0
- data/lib/countries/cache/locales/gu.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/hi.json +1 -0
- data/lib/countries/cache/locales/hr.json +1 -0
- data/lib/countries/cache/locales/ht.json +1 -0
- data/lib/countries/cache/locales/hu.json +1 -0
- data/lib/countries/cache/locales/hy.json +1 -0
- data/lib/countries/cache/locales/ia.json +1 -0
- data/lib/countries/cache/locales/id.json +1 -0
- data/lib/countries/cache/locales/io.json +1 -0
- data/lib/countries/cache/locales/is.json +1 -0
- data/lib/countries/cache/locales/it.json +1 -0
- data/lib/countries/cache/locales/iu.json +1 -0
- data/lib/countries/cache/locales/ja.json +1 -0
- data/lib/countries/cache/locales/ka.json +1 -0
- data/lib/countries/cache/locales/ki.json +1 -0
- data/lib/countries/cache/locales/kk.json +1 -0
- data/lib/countries/cache/locales/kl.json +1 -0
- data/lib/countries/cache/locales/km.json +1 -0
- data/lib/countries/cache/locales/kn.json +1 -0
- data/lib/countries/cache/locales/ko.json +1 -0
- data/lib/countries/cache/locales/ku.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/lv.json +1 -0
- data/lib/countries/cache/locales/mi.json +1 -0
- data/lib/countries/cache/locales/mk.json +1 -0
- data/lib/countries/cache/locales/ml.json +1 -0
- data/lib/countries/cache/locales/mn.json +1 -0
- data/lib/countries/cache/locales/mr.json +1 -0
- data/lib/countries/cache/locales/ms.json +1 -0
- data/lib/countries/cache/locales/mt.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/ne.json +1 -0
- data/lib/countries/cache/locales/nl.json +1 -0
- data/lib/countries/cache/locales/nn.json +1 -0
- data/lib/countries/cache/locales/nv.json +1 -0
- data/lib/countries/cache/locales/oc.json +1 -0
- data/lib/countries/cache/locales/or.json +1 -0
- data/lib/countries/cache/locales/pa.json +1 -0
- data/lib/countries/cache/locales/pi.json +1 -0
- data/lib/countries/cache/locales/pl.json +1 -0
- data/lib/countries/cache/locales/ps.json +1 -0
- data/lib/countries/cache/locales/pt-br.json +1 -0
- data/lib/countries/cache/locales/pt.json +1 -0
- data/lib/countries/cache/locales/ro.json +1 -0
- data/lib/countries/cache/locales/ru.json +1 -0
- data/lib/countries/cache/locales/rw.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/sk.json +1 -0
- data/lib/countries/cache/locales/sl.json +1 -0
- data/lib/countries/cache/locales/so.json +1 -0
- data/lib/countries/cache/locales/sq.json +1 -0
- data/lib/countries/cache/locales/sr.json +1 -0
- data/lib/countries/cache/locales/sv.json +1 -0
- data/lib/countries/cache/locales/sw.json +1 -0
- data/lib/countries/cache/locales/ta.json +1 -0
- data/lib/countries/cache/locales/te.json +1 -0
- data/lib/countries/cache/locales/tg.json +1 -0
- data/lib/countries/cache/locales/th.json +1 -0
- data/lib/countries/cache/locales/ti.json +1 -0
- data/lib/countries/cache/locales/tk.json +1 -0
- data/lib/countries/cache/locales/tl.json +1 -0
- data/lib/countries/cache/locales/tr.json +1 -0
- data/lib/countries/cache/locales/tt.json +1 -0
- data/lib/countries/cache/locales/ug.json +1 -0
- data/lib/countries/cache/locales/uk.json +1 -0
- 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 -0
- data/lib/countries/cache/locales/vi.json +1 -0
- data/lib/countries/cache/locales/wa.json +1 -0
- data/lib/countries/cache/locales/wo.json +1 -0
- data/lib/countries/cache/locales/xh.json +1 -0
- 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/zh.json +1 -0
- data/lib/countries/cache/locales/zu.json +1 -0
- data/lib/countries/configuration.rb +57 -0
- data/lib/countries/country/class_methods.rb +196 -0
- data/lib/countries/country/currency_methods.rb +13 -0
- data/lib/countries/country/emoji.rb +42 -0
- data/lib/countries/country.rb +214 -158
- data/lib/countries/data/countries/AD.yaml +32 -21
- data/lib/countries/data/countries/AE.yaml +40 -25
- data/lib/countries/data/countries/AF.yaml +36 -23
- data/lib/countries/data/countries/AG.yaml +36 -25
- data/lib/countries/data/countries/AI.yaml +33 -21
- data/lib/countries/data/countries/AL.yaml +35 -24
- data/lib/countries/data/countries/AM.yaml +36 -24
- data/lib/countries/data/countries/AO.yaml +30 -20
- data/lib/countries/data/countries/AQ.yaml +31 -22
- data/lib/countries/data/countries/AR.yaml +36 -24
- data/lib/countries/data/countries/AS.yaml +38 -25
- data/lib/countries/data/countries/AT.yaml +37 -25
- data/lib/countries/data/countries/AU.yaml +39 -23
- data/lib/countries/data/countries/AW.yaml +30 -20
- data/lib/countries/data/countries/AX.yaml +33 -22
- data/lib/countries/data/countries/AZ.yaml +37 -25
- data/lib/countries/data/countries/BA.yaml +40 -27
- data/lib/countries/data/countries/BB.yaml +33 -21
- data/lib/countries/data/countries/BD.yaml +32 -21
- data/lib/countries/data/countries/BE.yaml +42 -28
- data/lib/countries/data/countries/BF.yaml +32 -21
- data/lib/countries/data/countries/BG.yaml +38 -26
- data/lib/countries/data/countries/BH.yaml +35 -24
- data/lib/countries/data/countries/BI.yaml +32 -21
- data/lib/countries/data/countries/BJ.yaml +31 -21
- data/lib/countries/data/countries/BL.yaml +33 -22
- data/lib/countries/data/countries/BM.yaml +34 -22
- data/lib/countries/data/countries/BN.yaml +32 -21
- data/lib/countries/data/countries/BO.yaml +37 -25
- data/lib/countries/data/countries/BQ.yaml +33 -22
- data/lib/countries/data/countries/BR.yaml +42 -24
- data/lib/countries/data/countries/BS.yaml +32 -21
- data/lib/countries/data/countries/BT.yaml +33 -22
- data/lib/countries/data/countries/BV.yaml +32 -23
- data/lib/countries/data/countries/BW.yaml +32 -21
- data/lib/countries/data/countries/BY.yaml +38 -26
- data/lib/countries/data/countries/BZ.yaml +34 -23
- data/lib/countries/data/countries/CA.yaml +35 -23
- data/lib/countries/data/countries/CC.yaml +34 -23
- data/lib/countries/data/countries/CD.yaml +44 -28
- data/lib/countries/data/countries/CF.yaml +36 -25
- data/lib/countries/data/countries/CG.yaml +35 -23
- data/lib/countries/data/countries/CH.yaml +47 -26
- data/lib/countries/data/countries/CI.yaml +35 -24
- data/lib/countries/data/countries/CK.yaml +34 -24
- data/lib/countries/data/countries/CL.yaml +37 -21
- data/lib/countries/data/countries/CM.yaml +36 -25
- data/lib/countries/data/countries/CN.yaml +32 -21
- data/lib/countries/data/countries/CO.yaml +33 -22
- data/lib/countries/data/countries/CR.yaml +31 -20
- data/lib/countries/data/countries/CU.yaml +32 -21
- data/lib/countries/data/countries/CV.yaml +35 -24
- data/lib/countries/data/countries/CW.yaml +31 -21
- data/lib/countries/data/countries/CX.yaml +38 -25
- data/lib/countries/data/countries/CY.yaml +42 -28
- data/lib/countries/data/countries/CZ.yaml +42 -28
- data/lib/countries/data/countries/DE.yaml +39 -27
- data/lib/countries/data/countries/DJ.yaml +34 -23
- data/lib/countries/data/countries/DK.yaml +39 -27
- data/lib/countries/data/countries/DM.yaml +31 -20
- data/lib/countries/data/countries/DO.yaml +35 -24
- data/lib/countries/data/countries/DZ.yaml +36 -25
- data/lib/countries/data/countries/EC.yaml +32 -21
- data/lib/countries/data/countries/EE.yaml +37 -26
- data/lib/countries/data/countries/EG.yaml +36 -25
- data/lib/countries/data/countries/EH.yaml +38 -26
- data/lib/countries/data/countries/ER.yaml +36 -24
- data/lib/countries/data/countries/ES.yaml +38 -26
- data/lib/countries/data/countries/ET.yaml +35 -24
- data/lib/countries/data/countries/FI.yaml +40 -27
- data/lib/countries/data/countries/FJ.yaml +38 -25
- data/lib/countries/data/countries/FK.yaml +36 -25
- data/lib/countries/data/countries/FM.yaml +34 -23
- data/lib/countries/data/countries/FO.yaml +35 -24
- data/lib/countries/data/countries/FR.yaml +38 -26
- data/lib/countries/data/countries/GA.yaml +32 -22
- data/lib/countries/data/countries/GB.yaml +46 -28
- data/lib/countries/data/countries/GD.yaml +31 -20
- data/lib/countries/data/countries/GE.yaml +34 -23
- data/lib/countries/data/countries/GF.yaml +35 -23
- data/lib/countries/data/countries/GG.yaml +38 -26
- data/lib/countries/data/countries/GH.yaml +30 -20
- data/lib/countries/data/countries/GI.yaml +32 -21
- data/lib/countries/data/countries/GL.yaml +35 -24
- data/lib/countries/data/countries/GM.yaml +30 -20
- data/lib/countries/data/countries/GN.yaml +35 -23
- data/lib/countries/data/countries/GP.yaml +33 -22
- data/lib/countries/data/countries/GQ.yaml +36 -25
- data/lib/countries/data/countries/GR.yaml +41 -29
- data/lib/countries/data/countries/GS.yaml +34 -22
- data/lib/countries/data/countries/GT.yaml +31 -20
- data/lib/countries/data/countries/GU.yaml +36 -22
- data/lib/countries/data/countries/GW.yaml +34 -22
- data/lib/countries/data/countries/GY.yaml +30 -20
- data/lib/countries/data/countries/HK.yaml +33 -22
- data/lib/countries/data/countries/HM.yaml +35 -24
- data/lib/countries/data/countries/HN.yaml +31 -20
- data/lib/countries/data/countries/HR.yaml +40 -28
- data/lib/countries/data/countries/HT.yaml +34 -22
- data/lib/countries/data/countries/HU.yaml +39 -27
- data/lib/countries/data/countries/ID.yaml +34 -23
- data/lib/countries/data/countries/IE.yaml +39 -26
- data/lib/countries/data/countries/IL.yaml +39 -22
- data/lib/countries/data/countries/IM.yaml +37 -25
- data/lib/countries/data/countries/IN.yaml +35 -23
- data/lib/countries/data/countries/IO.yaml +35 -24
- data/lib/countries/data/countries/IQ.yaml +33 -22
- data/lib/countries/data/countries/IR.yaml +34 -23
- data/lib/countries/data/countries/IS.yaml +42 -24
- data/lib/countries/data/countries/IT.yaml +38 -26
- data/lib/countries/data/countries/JE.yaml +34 -22
- data/lib/countries/data/countries/JM.yaml +33 -22
- data/lib/countries/data/countries/JO.yaml +36 -25
- data/lib/countries/data/countries/JP.yaml +33 -22
- data/lib/countries/data/countries/KE.yaml +34 -22
- data/lib/countries/data/countries/KG.yaml +38 -26
- data/lib/countries/data/countries/KH.yaml +35 -24
- data/lib/countries/data/countries/KI.yaml +30 -20
- data/lib/countries/data/countries/KM.yaml +35 -24
- data/lib/countries/data/countries/KN.yaml +38 -25
- data/lib/countries/data/countries/KP.yaml +37 -26
- data/lib/countries/data/countries/KR.yaml +37 -26
- data/lib/countries/data/countries/KW.yaml +34 -23
- data/lib/countries/data/countries/KY.yaml +36 -24
- data/lib/countries/data/countries/KZ.yaml +36 -24
- data/lib/countries/data/countries/LA.yaml +32 -21
- data/lib/countries/data/countries/LB.yaml +37 -25
- data/lib/countries/data/countries/LC.yaml +35 -22
- data/lib/countries/data/countries/LI.yaml +32 -20
- data/lib/countries/data/countries/LK.yaml +33 -21
- data/lib/countries/data/countries/LR.yaml +31 -20
- data/lib/countries/data/countries/LS.yaml +33 -21
- data/lib/countries/data/countries/LT.yaml +41 -28
- data/lib/countries/data/countries/LU.yaml +39 -25
- data/lib/countries/data/countries/LV.yaml +45 -27
- data/lib/countries/data/countries/LY.yaml +36 -26
- data/lib/countries/data/countries/MA.yaml +35 -24
- data/lib/countries/data/countries/MC.yaml +32 -21
- data/lib/countries/data/countries/MD.yaml +36 -25
- data/lib/countries/data/countries/ME.yaml +38 -24
- data/lib/countries/data/countries/MF.yaml +37 -24
- data/lib/countries/data/countries/MG.yaml +35 -23
- data/lib/countries/data/countries/MH.yaml +37 -25
- data/lib/countries/data/countries/MK.yaml +37 -25
- data/lib/countries/data/countries/ML.yaml +30 -20
- data/lib/countries/data/countries/MM.yaml +31 -20
- data/lib/countries/data/countries/MN.yaml +34 -23
- data/lib/countries/data/countries/MO.yaml +33 -22
- data/lib/countries/data/countries/MP.yaml +38 -26
- data/lib/countries/data/countries/MQ.yaml +33 -22
- data/lib/countries/data/countries/MR.yaml +36 -25
- data/lib/countries/data/countries/MS.yaml +32 -21
- data/lib/countries/data/countries/MT.yaml +38 -25
- data/lib/countries/data/countries/MU.yaml +33 -22
- data/lib/countries/data/countries/MV.yaml +34 -23
- data/lib/countries/data/countries/MW.yaml +32 -21
- data/lib/countries/data/countries/MX.yaml +39 -23
- data/lib/countries/data/countries/MY.yaml +36 -24
- data/lib/countries/data/countries/MZ.yaml +32 -21
- data/lib/countries/data/countries/NA.yaml +35 -23
- data/lib/countries/data/countries/NC.yaml +36 -25
- data/lib/countries/data/countries/NE.yaml +32 -21
- data/lib/countries/data/countries/NF.yaml +36 -25
- data/lib/countries/data/countries/NG.yaml +39 -23
- data/lib/countries/data/countries/NI.yaml +31 -20
- data/lib/countries/data/countries/NL.yaml +41 -28
- data/lib/countries/data/countries/NO.yaml +43 -25
- data/lib/countries/data/countries/NP.yaml +43 -22
- data/lib/countries/data/countries/NR.yaml +32 -21
- data/lib/countries/data/countries/NU.yaml +30 -20
- data/lib/countries/data/countries/NZ.yaml +41 -24
- data/lib/countries/data/countries/OM.yaml +33 -22
- data/lib/countries/data/countries/PA.yaml +31 -21
- data/lib/countries/data/countries/PE.yaml +33 -22
- data/lib/countries/data/countries/PF.yaml +36 -25
- data/lib/countries/data/countries/PG.yaml +35 -24
- data/lib/countries/data/countries/PH.yaml +41 -24
- data/lib/countries/data/countries/PK.yaml +34 -22
- data/lib/countries/data/countries/PL.yaml +38 -26
- data/lib/countries/data/countries/PM.yaml +36 -25
- data/lib/countries/data/countries/PN.yaml +35 -23
- data/lib/countries/data/countries/PR.yaml +33 -21
- data/lib/countries/data/countries/PS.yaml +41 -28
- data/lib/countries/data/countries/PT.yaml +34 -22
- data/lib/countries/data/countries/PW.yaml +31 -20
- data/lib/countries/data/countries/PY.yaml +33 -21
- data/lib/countries/data/countries/QA.yaml +32 -22
- data/lib/countries/data/countries/RE.yaml +34 -23
- data/lib/countries/data/countries/RO.yaml +40 -28
- data/lib/countries/data/countries/RS.yaml +34 -23
- data/lib/countries/data/countries/RU.yaml +37 -26
- data/lib/countries/data/countries/RW.yaml +35 -23
- data/lib/countries/data/countries/SA.yaml +42 -25
- data/lib/countries/data/countries/SB.yaml +35 -25
- data/lib/countries/data/countries/SC.yaml +33 -22
- data/lib/countries/data/countries/SD.yaml +37 -25
- data/lib/countries/data/countries/SE.yaml +39 -27
- data/lib/countries/data/countries/SG.yaml +38 -25
- data/lib/countries/data/countries/SH.yaml +37 -25
- data/lib/countries/data/countries/SI.yaml +39 -27
- data/lib/countries/data/countries/SJ.yaml +36 -25
- data/lib/countries/data/countries/SK.yaml +39 -27
- data/lib/countries/data/countries/SL.yaml +30 -20
- data/lib/countries/data/countries/SM.yaml +32 -21
- data/lib/countries/data/countries/SN.yaml +32 -21
- data/lib/countries/data/countries/SO.yaml +35 -23
- data/lib/countries/data/countries/SR.yaml +31 -21
- data/lib/countries/data/countries/SS.yaml +35 -23
- data/lib/countries/data/countries/ST.yaml +34 -24
- data/lib/countries/data/countries/SV.yaml +32 -21
- data/lib/countries/data/countries/SX.yaml +34 -22
- data/lib/countries/data/countries/SY.yaml +36 -26
- data/lib/countries/data/countries/SZ.yaml +35 -23
- data/lib/countries/data/countries/TC.yaml +38 -25
- data/lib/countries/data/countries/TD.yaml +36 -25
- data/lib/countries/data/countries/TF.yaml +39 -28
- data/lib/countries/data/countries/TG.yaml +30 -20
- data/lib/countries/data/countries/TH.yaml +39 -22
- data/lib/countries/data/countries/TJ.yaml +37 -25
- data/lib/countries/data/countries/TK.yaml +33 -23
- data/lib/countries/data/countries/TL.yaml +34 -24
- data/lib/countries/data/countries/TM.yaml +35 -23
- data/lib/countries/data/countries/TN.yaml +38 -26
- data/lib/countries/data/countries/TO.yaml +32 -21
- data/lib/countries/data/countries/TR.yaml +35 -24
- data/lib/countries/data/countries/TT.yaml +35 -24
- data/lib/countries/data/countries/TV.yaml +30 -20
- data/lib/countries/data/countries/TW.yaml +33 -22
- data/lib/countries/data/countries/TZ.yaml +36 -24
- data/lib/countries/data/countries/UA.yaml +42 -25
- data/lib/countries/data/countries/UG.yaml +33 -22
- data/lib/countries/data/countries/UM.yaml +37 -26
- data/lib/countries/data/countries/US.yaml +37 -24
- data/lib/countries/data/countries/UY.yaml +31 -20
- data/lib/countries/data/countries/UZ.yaml +37 -25
- data/lib/countries/data/countries/VA.yaml +39 -27
- data/lib/countries/data/countries/VC.yaml +38 -24
- data/lib/countries/data/countries/VE.yaml +31 -20
- data/lib/countries/data/countries/VG.yaml +38 -26
- data/lib/countries/data/countries/VI.yaml +37 -25
- data/lib/countries/data/countries/VN.yaml +38 -21
- data/lib/countries/data/countries/VU.yaml +34 -22
- data/lib/countries/data/countries/WF.yaml +36 -25
- data/lib/countries/data/countries/WS.yaml +32 -21
- data/lib/countries/data/countries/YE.yaml +33 -23
- data/lib/countries/data/countries/YT.yaml +32 -21
- data/lib/countries/data/countries/ZA.yaml +52 -32
- data/lib/countries/data/countries/ZM.yaml +33 -22
- data/lib/countries/data/countries/ZW.yaml +36 -24
- data/lib/countries/data/subdivisions/AD.yaml +85 -50
- data/lib/countries/data/subdivisions/AE.yaml +513 -55
- data/lib/countries/data/subdivisions/AF.yaml +2239 -234
- data/lib/countries/data/subdivisions/AG.yaml +451 -57
- data/lib/countries/data/subdivisions/AI.yaml +197 -0
- data/lib/countries/data/subdivisions/AL.yaml +746 -316
- data/lib/countries/data/subdivisions/AM.yaml +788 -68
- data/lib/countries/data/subdivisions/AO.yaml +1145 -126
- data/lib/countries/data/subdivisions/AR.yaml +1668 -168
- data/lib/countries/data/subdivisions/AT.yaml +714 -63
- data/lib/countries/data/subdivisions/AU.yaml +673 -56
- data/lib/countries/data/subdivisions/AZ.yaml +4508 -536
- data/lib/countries/data/subdivisions/BA.yaml +359 -14
- data/lib/countries/data/subdivisions/BB.yaml +589 -79
- data/lib/countries/data/subdivisions/BD.yaml +2593 -400
- data/lib/countries/data/subdivisions/BE.yaml +943 -77
- data/lib/countries/data/subdivisions/BF.yaml +2917 -311
- data/lib/countries/data/subdivisions/BG.yaml +1965 -199
- data/lib/countries/data/subdivisions/BH.yaml +184 -31
- data/lib/countries/data/subdivisions/BI.yaml +982 -112
- data/lib/countries/data/subdivisions/BJ.yaml +691 -84
- data/lib/countries/data/subdivisions/BM.yaml +155 -0
- data/lib/countries/data/subdivisions/BN.yaml +225 -24
- data/lib/countries/data/subdivisions/BO.yaml +561 -63
- data/lib/countries/data/subdivisions/BQ.yaml +217 -21
- data/lib/countries/data/subdivisions/BR.yaml +2154 -185
- data/lib/countries/data/subdivisions/BS.yaml +1821 -143
- data/lib/countries/data/subdivisions/BT.yaml +1087 -140
- data/lib/countries/data/subdivisions/BW.yaml +923 -63
- data/lib/countries/data/subdivisions/BY.yaml +528 -31
- data/lib/countries/data/subdivisions/BZ.yaml +309 -42
- data/lib/countries/data/subdivisions/CA.yaml +1105 -92
- data/lib/countries/data/subdivisions/CD.yaml +1187 -78
- data/lib/countries/data/subdivisions/CF.yaml +961 -119
- data/lib/countries/data/subdivisions/CG.yaml +640 -77
- data/lib/countries/data/subdivisions/CH.yaml +1946 -182
- data/lib/countries/data/subdivisions/CI.yaml +859 -125
- data/lib/countries/data/subdivisions/CK.yaml +155 -0
- data/lib/countries/data/subdivisions/CL.yaml +968 -105
- data/lib/countries/data/subdivisions/CM.yaml +582 -70
- data/lib/countries/data/subdivisions/CN.yaml +2618 -274
- data/lib/countries/data/subdivisions/CO.yaml +2102 -227
- data/lib/countries/data/subdivisions/CR.yaml +393 -49
- data/lib/countries/data/subdivisions/CU.yaml +926 -119
- data/lib/countries/data/subdivisions/CV.yaml +1198 -119
- data/lib/countries/data/subdivisions/CY.yaml +328 -42
- data/lib/countries/data/subdivisions/CZ.yaml +2892 -129
- data/lib/countries/data/subdivisions/DE.yaml +1420 -112
- data/lib/countries/data/subdivisions/DJ.yaml +375 -42
- data/lib/countries/data/subdivisions/DK.yaml +344 -180
- data/lib/countries/data/subdivisions/DM.yaml +512 -72
- data/lib/countries/data/subdivisions/DO.yaml +1763 -219
- data/lib/countries/data/subdivisions/DZ.yaml +2869 -334
- data/lib/countries/data/subdivisions/EC.yaml +1348 -168
- data/lib/countries/data/subdivisions/EE.yaml +1368 -118
- data/lib/countries/data/subdivisions/EG.yaml +1628 -190
- data/lib/countries/data/subdivisions/EH.yaml +48 -28
- data/lib/countries/data/subdivisions/ER.yaml +348 -42
- data/lib/countries/data/subdivisions/ES.yaml +4875 -375
- data/lib/countries/data/subdivisions/ET.yaml +735 -77
- data/lib/countries/data/subdivisions/FI.yaml +890 -36
- data/lib/countries/data/subdivisions/FJ.yaml +720 -35
- data/lib/countries/data/subdivisions/FM.yaml +202 -24
- data/lib/countries/data/subdivisions/FR.yaml +8250 -684
- data/lib/countries/data/subdivisions/GA.yaml +526 -63
- data/lib/countries/data/subdivisions/GB.yaml +12522 -1516
- data/lib/countries/data/subdivisions/GD.yaml +354 -49
- data/lib/countries/data/subdivisions/GE.yaml +833 -85
- data/lib/countries/data/subdivisions/GH.yaml +658 -70
- data/lib/countries/data/subdivisions/GL.yaml +262 -0
- data/lib/countries/data/subdivisions/GM.yaml +381 -42
- data/lib/countries/data/subdivisions/GN.yaml +1919 -234
- data/lib/countries/data/subdivisions/GQ.yaml +459 -59
- data/lib/countries/data/subdivisions/GR.yaml +871 -527
- data/lib/countries/data/subdivisions/GT.yaml +1270 -150
- data/lib/countries/data/subdivisions/GW.yaml +563 -59
- data/lib/countries/data/subdivisions/GY.yaml +498 -70
- data/lib/countries/data/subdivisions/HN.yaml +1019 -126
- data/lib/countries/data/subdivisions/HR.yaml +1419 -151
- data/lib/countries/data/subdivisions/HT.yaml +525 -63
- data/lib/countries/data/subdivisions/HU.yaml +2949 -302
- data/lib/countries/data/subdivisions/ID.yaml +2679 -243
- data/lib/countries/data/subdivisions/IE.yaml +2027 -177
- data/lib/countries/data/subdivisions/IL.yaml +376 -42
- data/lib/countries/data/subdivisions/IN.yaml +3110 -252
- data/lib/countries/data/subdivisions/IQ.yaml +1105 -126
- data/lib/countries/data/subdivisions/IR.yaml +2092 -215
- data/lib/countries/data/subdivisions/IS.yaml +830 -59
- data/lib/countries/data/subdivisions/IT.yaml +8525 -790
- data/lib/countries/data/subdivisions/JM.yaml +732 -100
- data/lib/countries/data/subdivisions/JO.yaml +662 -48
- data/lib/countries/data/subdivisions/JP.yaml +3562 -327
- data/lib/countries/data/subdivisions/KE.yaml +1449 -56
- data/lib/countries/data/subdivisions/KG.yaml +624 -57
- data/lib/countries/data/subdivisions/KH.yaml +1332 -147
- data/lib/countries/data/subdivisions/KI.yaml +163 -17
- data/lib/countries/data/subdivisions/KM.yaml +189 -21
- data/lib/countries/data/subdivisions/KN.yaml +835 -100
- data/lib/countries/data/subdivisions/KP.yaml +922 -80
- data/lib/countries/data/subdivisions/KR.yaml +1225 -88
- data/lib/countries/data/subdivisions/KW.yaml +280 -42
- data/lib/countries/data/subdivisions/KZ.yaml +1213 -122
- data/lib/countries/data/subdivisions/LA.yaml +947 -120
- data/lib/countries/data/subdivisions/LB.yaml +386 -22
- data/lib/countries/data/subdivisions/LC.yaml +470 -0
- data/lib/countries/data/subdivisions/LI.yaml +557 -39
- data/lib/countries/data/subdivisions/LK.yaml +1546 -175
- data/lib/countries/data/subdivisions/LR.yaml +857 -105
- data/lib/countries/data/subdivisions/LS.yaml +529 -70
- data/lib/countries/data/subdivisions/LT.yaml +2616 -71
- data/lib/countries/data/subdivisions/LU.yaml +490 -24
- data/lib/countries/data/subdivisions/LV.yaml +2501 -178
- data/lib/countries/data/subdivisions/LY.yaml +1188 -262
- data/lib/countries/data/subdivisions/MA.yaml +3375 -437
- data/lib/countries/data/subdivisions/MC.yaml +484 -0
- data/lib/countries/data/subdivisions/MD.yaml +2240 -71
- data/lib/countries/data/subdivisions/ME.yaml +1136 -151
- data/lib/countries/data/subdivisions/MG.yaml +253 -42
- data/lib/countries/data/subdivisions/MH.yaml +995 -151
- data/lib/countries/data/subdivisions/MK.yaml +3964 -752
- data/lib/countries/data/subdivisions/ML.yaml +569 -63
- data/lib/countries/data/subdivisions/MM.yaml +849 -98
- data/lib/countries/data/subdivisions/MN.yaml +1389 -160
- data/lib/countries/data/subdivisions/MR.yaml +702 -94
- data/lib/countries/data/subdivisions/MT.yaml +3726 -478
- data/lib/countries/data/subdivisions/MU.yaml +923 -115
- data/lib/countries/data/subdivisions/MV.yaml +1219 -148
- data/lib/countries/data/subdivisions/MW.yaml +1646 -189
- data/lib/countries/data/subdivisions/MX.yaml +2414 -222
- data/lib/countries/data/subdivisions/MY.yaml +1071 -114
- data/lib/countries/data/subdivisions/MZ.yaml +665 -77
- data/lib/countries/data/subdivisions/NA.yaml +736 -98
- data/lib/countries/data/subdivisions/NE.yaml +475 -56
- data/lib/countries/data/subdivisions/NG.yaml +2370 -259
- data/lib/countries/data/subdivisions/NI.yaml +952 -119
- data/lib/countries/data/subdivisions/NL.yaml +1205 -84
- data/lib/countries/data/subdivisions/NO.yaml +856 -164
- data/lib/countries/data/subdivisions/NP.yaml +982 -90
- data/lib/countries/data/subdivisions/NR.yaml +827 -100
- data/lib/countries/data/subdivisions/NZ.yaml +946 -122
- data/lib/countries/data/subdivisions/OM.yaml +633 -63
- data/lib/countries/data/subdivisions/PA.yaml +708 -69
- data/lib/countries/data/subdivisions/PE.yaml +1489 -179
- data/lib/countries/data/subdivisions/PG.yaml +1211 -140
- data/lib/countries/data/subdivisions/PH.yaml +5089 -572
- data/lib/countries/data/subdivisions/PK.yaml +566 -56
- data/lib/countries/data/subdivisions/PL.yaml +1042 -150
- data/lib/countries/data/subdivisions/PS.yaml +747 -0
- data/lib/countries/data/subdivisions/PT.yaml +1124 -145
- data/lib/countries/data/subdivisions/PW.yaml +832 -108
- data/lib/countries/data/subdivisions/PY.yaml +1045 -127
- data/lib/countries/data/subdivisions/QA.yaml +469 -64
- data/lib/countries/data/subdivisions/RO.yaml +2746 -294
- data/lib/countries/data/subdivisions/RS.yaml +1786 -195
- data/lib/countries/data/subdivisions/RU.yaml +6570 -655
- data/lib/countries/data/subdivisions/RW.yaml +327 -35
- data/lib/countries/data/subdivisions/SA.yaml +768 -102
- data/lib/countries/data/subdivisions/SB.yaml +550 -70
- data/lib/countries/data/subdivisions/SC.yaml +1286 -163
- data/lib/countries/data/subdivisions/SD.yaml +1002 -254
- data/lib/countries/data/subdivisions/SE.yaml +1416 -149
- data/lib/countries/data/subdivisions/SG.yaml +108 -31
- data/lib/countries/data/subdivisions/SH.yaml +197 -21
- data/lib/countries/data/subdivisions/SI.yaml +10997 -1403
- data/lib/countries/data/subdivisions/SJ.yaml +29 -0
- data/lib/countries/data/subdivisions/SK.yaml +533 -57
- data/lib/countries/data/subdivisions/SL.yaml +231 -28
- data/lib/countries/data/subdivisions/SM.yaml +577 -65
- data/lib/countries/data/subdivisions/SN.yaml +761 -77
- data/lib/countries/data/subdivisions/SO.yaml +914 -126
- data/lib/countries/data/subdivisions/SR.yaml +512 -70
- data/lib/countries/data/subdivisions/SS.yaml +624 -0
- data/lib/countries/data/subdivisions/ST.yaml +73 -14
- data/lib/countries/data/subdivisions/SV.yaml +747 -98
- data/lib/countries/data/subdivisions/SY.yaml +806 -91
- data/lib/countries/data/subdivisions/SZ.yaml +217 -28
- data/lib/countries/data/subdivisions/TD.yaml +1242 -126
- data/lib/countries/data/subdivisions/TG.yaml +264 -35
- data/lib/countries/data/subdivisions/TH.yaml +4535 -539
- data/lib/countries/data/subdivisions/TJ.yaml +356 -0
- data/lib/countries/data/subdivisions/TK.yaml +43 -0
- data/lib/countries/data/subdivisions/TL.yaml +682 -91
- data/lib/countries/data/subdivisions/TM.yaml +390 -46
- data/lib/countries/data/subdivisions/TN.yaml +1301 -168
- data/lib/countries/data/subdivisions/TO.yaml +260 -36
- data/lib/countries/data/subdivisions/TR.yaml +5858 -624
- data/lib/countries/data/subdivisions/TT.yaml +865 -112
- data/lib/countries/data/subdivisions/TV.yaml +382 -44
- data/lib/countries/data/subdivisions/TW.yaml +1281 -145
- data/lib/countries/data/subdivisions/TZ.yaml +1868 -184
- data/lib/countries/data/subdivisions/UA.yaml +1988 -192
- data/lib/countries/data/subdivisions/UG.yaml +6150 -544
- data/lib/countries/data/subdivisions/UM.yaml +710 -59
- data/lib/countries/data/subdivisions/US.yaml +4789 -404
- data/lib/countries/data/subdivisions/UY.yaml +1163 -112
- data/lib/countries/data/subdivisions/UZ.yaml +902 -99
- data/lib/countries/data/subdivisions/VC.yaml +289 -38
- data/lib/countries/data/subdivisions/VE.yaml +1559 -175
- data/lib/countries/data/subdivisions/VN.yaml +3799 -550
- data/lib/countries/data/subdivisions/VU.yaml +333 -43
- data/lib/countries/data/subdivisions/WF.yaml +201 -0
- data/lib/countries/data/subdivisions/WS.yaml +587 -77
- data/lib/countries/data/subdivisions/YE.yaml +1262 -135
- data/lib/countries/data/subdivisions/ZA.yaml +712 -63
- data/lib/countries/data/subdivisions/ZM.yaml +568 -65
- data/lib/countries/data/subdivisions/ZW.yaml +520 -70
- data/lib/countries/data/translation_corrections.yaml +38 -1
- data/lib/countries/data.rb +161 -16
- data/lib/countries/global.rb +13 -3
- data/lib/countries/iso3166.rb +9 -2
- data/lib/countries/kwarg_struct.rb +12 -0
- data/lib/countries/mongoid.rb +25 -22
- data/lib/countries/setup.rb +7 -7
- data/lib/countries/sources/cldr/downloader.rb +37 -0
- data/lib/countries/sources/cldr/subdivision.rb +35 -0
- data/lib/countries/sources/cldr/subdivision_updater.rb +35 -0
- data/lib/countries/sources/local/cached_loader.rb +29 -0
- data/lib/countries/sources/local/subdivision.rb +33 -0
- data/lib/countries/sources.rb +6 -0
- data/lib/countries/structure.rb +72 -0
- data/lib/countries/subdivision.rb +10 -0
- data/lib/countries/tasks/geocoding.rake +97 -0
- data/lib/countries/tasks/postal_codes.rake +48 -0
- data/lib/countries/timezones.rb +13 -0
- data/lib/countries/translations.rb +11 -0
- data/lib/countries/version.rb +1 -1
- data/lib/countries.rb +2 -0
- data/spec/00_global_spec.rb +56 -0
- data/spec/configuration_spec.rb +54 -0
- data/spec/country_spec.rb +473 -87
- data/spec/data_spec.rb +181 -0
- data/spec/mongoid_spec.rb +2 -2
- data/spec/perf_spec.rb +74 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/subdivision_spec.rb +32 -0
- data/spec/thread_safety_spec.rb +46 -0
- data/spec/timezone_spec.rb +32 -0
- metadata +206 -30
- data/.travis.yml +0 -6
- data/lib/countries/cache/countries +0 -0
- data/lib/countries/data/countries/AN.yaml +0 -42
- data/lib/countries/data/countries.yaml +0 -251
- data/lib/countries/data/subdivisions/Ky.yaml +0 -55
- data/lib/countries/data/subdivisions/TF.yaml +0 -27
- data/lib/countries/data/subdivisions/Tj.yaml +0 -38
- data/spec/setup_spec.rb +0 -14
data/lib/countries/country.rb
CHANGED
|
@@ -1,201 +1,257 @@
|
|
|
1
|
-
module ISO3166
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
:names,
|
|
12
|
-
:latitude,
|
|
13
|
-
:longitude,
|
|
14
|
-
:continent,
|
|
15
|
-
:region,
|
|
16
|
-
:subregion,
|
|
17
|
-
:world_region,
|
|
18
|
-
:country_code,
|
|
19
|
-
:national_destination_code_lengths,
|
|
20
|
-
:national_number_lengths,
|
|
21
|
-
:international_prefix,
|
|
22
|
-
:national_prefix,
|
|
23
|
-
:address_format,
|
|
24
|
-
:translations,
|
|
25
|
-
:translated_names,
|
|
26
|
-
:ioc,
|
|
27
|
-
:gec,
|
|
28
|
-
:un_locode,
|
|
29
|
-
:languages,
|
|
30
|
-
:nationality,
|
|
31
|
-
:dissolved_on,
|
|
32
|
-
:eu_member,
|
|
33
|
-
:alt_currency,
|
|
34
|
-
:vat_rates,
|
|
35
|
-
:postal_code,
|
|
36
|
-
:min_longitude,
|
|
37
|
-
:min_latitude,
|
|
38
|
-
:max_longitude,
|
|
39
|
-
:max_latitude,
|
|
40
|
-
:latitude_dec,
|
|
41
|
-
:longitude_dec
|
|
42
|
-
]
|
|
43
|
-
|
|
44
|
-
AttrReaders.each do |meth|
|
|
45
|
-
define_method meth do
|
|
46
|
-
@data[meth.to_s]
|
|
1
|
+
module ISO3166
|
|
2
|
+
class Country
|
|
3
|
+
extend CountryClassMethods
|
|
4
|
+
include Emoji
|
|
5
|
+
attr_reader :data
|
|
6
|
+
|
|
7
|
+
ISO3166::DEFAULT_COUNTRY_HASH.each do |method_name, _type|
|
|
8
|
+
define_method method_name do
|
|
9
|
+
data[method_name.to_s]
|
|
10
|
+
end
|
|
47
11
|
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
attr_reader :data
|
|
51
|
-
|
|
52
|
-
def initialize(country_data)
|
|
53
|
-
@data = country_data.is_a?(Hash) ? country_data : ISO3166::Data.new(country_data).call
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def valid?
|
|
57
|
-
!(@data.nil? || @data.empty?)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
alias_method :zip, :postal_code
|
|
61
|
-
alias_method :zip?, :postal_code
|
|
62
|
-
alias_method :postal_code?, :postal_code
|
|
63
|
-
|
|
64
|
-
def ==(other)
|
|
65
|
-
other == data
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def <=>(other)
|
|
69
|
-
to_s <=> other.to_s
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def currency
|
|
73
|
-
ISO4217::Currency.from_code(@data['currency'])
|
|
74
|
-
end
|
|
75
12
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
13
|
+
ISO3166::DEFAULT_COUNTRY_HASH['geo'].each do |method_name, _type|
|
|
14
|
+
define_method method_name do
|
|
15
|
+
data['geo'][method_name.to_s]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
79
18
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
19
|
+
def initialize(country_data)
|
|
20
|
+
@country_data_or_code = country_data
|
|
21
|
+
reload
|
|
22
|
+
end
|
|
83
23
|
|
|
84
|
-
|
|
24
|
+
def valid?
|
|
25
|
+
!(data.nil? || data.empty?)
|
|
26
|
+
end
|
|
85
27
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
28
|
+
alias zip postal_code
|
|
29
|
+
alias zip? postal_code
|
|
30
|
+
alias postal_code? postal_code
|
|
31
|
+
alias zip_format postal_code_format
|
|
32
|
+
alias languages languages_official
|
|
33
|
+
|
|
34
|
+
def latitude_dec
|
|
35
|
+
if RUBY_VERSION =~ /^3\.\d\.\d/
|
|
36
|
+
warn "DEPRECATION WARNING: The Country#latitude_dec method has been deprecated and will be removed in 5.0. Please use Country#latitude instead.", uplevel: 1, category: :deprecated
|
|
37
|
+
else
|
|
38
|
+
warn "DEPRECATION WARNING: The Country#latitude_dec method has been deprecated and will be removed in 5.0. Please use Country#latitude instead.", uplevel: 1
|
|
39
|
+
end
|
|
40
|
+
latitude
|
|
41
|
+
end
|
|
89
42
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
43
|
+
def longitude_dec
|
|
44
|
+
if RUBY_VERSION =~ /^3\.\d\.\d/
|
|
45
|
+
warn "DEPRECATION WARNING: The Country#longitude_dec method has been deprecated and will be removed in 5.0. Please use Country#longitude instead.", uplevel: 1, category: :deprecated
|
|
46
|
+
else
|
|
47
|
+
warn "DEPRECATION WARNING: The Country#longitude_dec method has been deprecated and will be removed in 5.0. Please use Country#longitude instead.", uplevel: 1
|
|
48
|
+
end
|
|
49
|
+
longitude
|
|
50
|
+
end
|
|
93
51
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
52
|
+
def ==(other)
|
|
53
|
+
other.respond_to?(:alpha2) && other.alpha2 == alpha2
|
|
54
|
+
end
|
|
97
55
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
56
|
+
def eql?(other)
|
|
57
|
+
self == other
|
|
58
|
+
end
|
|
101
59
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
60
|
+
def hash
|
|
61
|
+
[alpha2, alpha3].hash
|
|
62
|
+
end
|
|
105
63
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
64
|
+
def <=>(other)
|
|
65
|
+
to_s <=> other.to_s
|
|
66
|
+
end
|
|
109
67
|
|
|
110
|
-
|
|
111
|
-
def
|
|
112
|
-
|
|
68
|
+
# +true+ if this Country has any Subdivisions.
|
|
69
|
+
def subdivisions?
|
|
70
|
+
!subdivisions.empty?
|
|
113
71
|
end
|
|
114
72
|
|
|
115
|
-
|
|
116
|
-
|
|
73
|
+
# @return [Array<ISO3166::Subdivision>] the list of subdivisions for this Country.
|
|
74
|
+
def subdivisions
|
|
75
|
+
@subdivisions ||= if data['subdivisions']
|
|
76
|
+
self.class.create_subdivisions(data['subdivisions'])
|
|
77
|
+
else
|
|
78
|
+
self.class.subdivisions(alpha2)
|
|
79
|
+
end
|
|
117
80
|
end
|
|
118
81
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
82
|
+
# @param locale [String] The locale to use for translations.
|
|
83
|
+
# @return [Array<Array>] This Country's subdivision pairs of names and codes.
|
|
84
|
+
def subdivision_names_with_codes(locale = 'en')
|
|
85
|
+
subdivisions.map { |k, v| [v.translations[locale] || v.name, k] }
|
|
122
86
|
end
|
|
123
87
|
|
|
124
|
-
|
|
88
|
+
alias states subdivisions
|
|
125
89
|
|
|
126
|
-
|
|
127
|
-
|
|
90
|
+
# +true+ if this country is a member of the European Union.
|
|
91
|
+
def in_eu?
|
|
92
|
+
data['eu_member'].nil? ? false : data['eu_member']
|
|
128
93
|
end
|
|
129
94
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
end.sort_by { |d| d[0] }
|
|
95
|
+
# +true+ if this country is a member of the European Economic Area.
|
|
96
|
+
def in_eea?
|
|
97
|
+
data['eea_member'].nil? ? false : data['eea_member']
|
|
134
98
|
end
|
|
135
99
|
|
|
136
|
-
|
|
137
|
-
|
|
100
|
+
# +true+ if this country is a member of the European Single Market.
|
|
101
|
+
def in_esm?
|
|
102
|
+
data['esm_member'].nil? ? in_eea? : data['esm_member']
|
|
138
103
|
end
|
|
139
104
|
|
|
140
|
-
def
|
|
141
|
-
|
|
142
|
-
(country && country.valid?) ? country : nil
|
|
105
|
+
def to_s
|
|
106
|
+
data['iso_short_name']
|
|
143
107
|
end
|
|
144
108
|
|
|
145
|
-
|
|
146
|
-
|
|
109
|
+
# @return [Array<String>] the list of names for this Country in all loaded locales.
|
|
110
|
+
def translated_names
|
|
111
|
+
data['translations'].values
|
|
147
112
|
end
|
|
148
113
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
114
|
+
# @param locale [String] The locale to use for translations.
|
|
115
|
+
# @return [String] the name of this Country in the selected locale.
|
|
116
|
+
def translation(locale = 'en')
|
|
117
|
+
data['translations'][locale.to_s.downcase]
|
|
118
|
+
end
|
|
152
119
|
|
|
153
|
-
|
|
154
|
-
|
|
120
|
+
# @return [String] the “common name” of this Country in English.
|
|
121
|
+
def common_name
|
|
122
|
+
ISO3166.configuration.locales = ISO3166.configuration.locales.append(:en).uniq
|
|
123
|
+
translation('en')
|
|
155
124
|
end
|
|
156
125
|
|
|
157
|
-
|
|
158
|
-
|
|
126
|
+
# @return [Array<String>] TThe list of names for this Country, in this Country's locales.
|
|
127
|
+
def local_names
|
|
128
|
+
ISO3166.configuration.locales = (ISO3166.configuration.locales + languages.map(&:to_sym)).uniq
|
|
129
|
+
reload
|
|
159
130
|
|
|
160
|
-
|
|
161
|
-
attributes.map do |attr|
|
|
162
|
-
Array(v[attr]).any? { |n| value === n.to_s.downcase }
|
|
163
|
-
end.include?(true)
|
|
164
|
-
end
|
|
131
|
+
@local_names ||= languages.map { |language| translations[language] }
|
|
165
132
|
end
|
|
166
133
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
134
|
+
# @return [String] The name for this Country, in this Country's locale.
|
|
135
|
+
def local_name
|
|
136
|
+
@local_name ||= local_names.first
|
|
137
|
+
end
|
|
171
138
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
#
|
|
139
|
+
# @return [String] This Country's ISO Short Name
|
|
140
|
+
# @deprecated Use {#iso_short_name} instead.
|
|
141
|
+
def name
|
|
142
|
+
if RUBY_VERSION =~ /^3\.\d\.\d/
|
|
143
|
+
warn "DEPRECATION WARNING: The Country#name method has been deprecated. Please use Country#iso_short_name instead or refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
|
|
144
|
+
else
|
|
145
|
+
warn "DEPRECATION WARNING: The Country#name method has been deprecated. Please use Country#iso_short_name instead or refer to the README file for more information on this change.", uplevel: 1
|
|
177
146
|
end
|
|
178
|
-
|
|
179
|
-
val = (val.is_a?(Regexp) ? Regexp.new(val.source, 'i') : val.to_s.downcase)
|
|
180
|
-
|
|
181
|
-
[attributes, val]
|
|
147
|
+
iso_short_name
|
|
182
148
|
end
|
|
183
149
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
150
|
+
# @return [Array<String>] Array of unofficial, slang names or aliases for this Country
|
|
151
|
+
# @deprecated Use {#unofficial_names} instead.
|
|
152
|
+
def names
|
|
153
|
+
if RUBY_VERSION =~ /^3\.\d\.\d/
|
|
154
|
+
warn "DEPRECATION WARNING: The Country#names method has been deprecated. Please use Country#unofficial_names instead or refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
|
|
155
|
+
else
|
|
156
|
+
warn "DEPRECATION WARNING: The Country#names method has been deprecated. Please use Country#unofficial_names instead or refer to the README file for more information on this change.", uplevel: 1
|
|
187
157
|
end
|
|
158
|
+
unofficial_names
|
|
188
159
|
end
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
160
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
161
|
+
# @!attribute alpha2
|
|
162
|
+
# @return [String] the ISO3166 alpha-2 code for this Country
|
|
163
|
+
#
|
|
164
|
+
# @!attribute alpha3
|
|
165
|
+
# @return [String] the ISO3166 alpha-3 code for this Country
|
|
166
|
+
#
|
|
167
|
+
# @!attribute address_format
|
|
168
|
+
# @return [String] a template for formatting addresses in this Country.
|
|
169
|
+
#
|
|
170
|
+
# @!attribute continent
|
|
171
|
+
# @return [String] the continent for this Country
|
|
172
|
+
#
|
|
173
|
+
# @!attribute country_code
|
|
174
|
+
# @return [String] the country calling code for this Country
|
|
175
|
+
#
|
|
176
|
+
# @!attribute currency_code
|
|
177
|
+
# @return [String] the ISO 4217 currency code for this Country
|
|
178
|
+
#
|
|
179
|
+
# @!attribute gec
|
|
180
|
+
# @return [String] the "Geopolitical Entities and Codes", formerly FIPS 10-4 code for this Country
|
|
181
|
+
#
|
|
182
|
+
# @!attribute geo
|
|
183
|
+
# @return [Hash] the hash of coordinates for this Country.
|
|
184
|
+
#
|
|
185
|
+
# @!attribute international_prefix
|
|
186
|
+
# @return [String] the phone prefix used in this Country for dialing international numbers
|
|
187
|
+
#
|
|
188
|
+
# @!attribute ioc
|
|
189
|
+
# @return [String] The International Olympic Committee code for for this Country
|
|
190
|
+
#
|
|
191
|
+
# @!attribute national_destination_code_lengths
|
|
192
|
+
# @return [Array<Integer>] Lengths of phone number destination codes
|
|
193
|
+
#
|
|
194
|
+
# @!attribute national_number_lengths
|
|
195
|
+
# @return [Array<Integer>] Lengths of phone numbers
|
|
196
|
+
#
|
|
197
|
+
# @!attribute national_prefix
|
|
198
|
+
# @return [String] the phone prefix used in this Country for dialing national numbers
|
|
199
|
+
#
|
|
200
|
+
# @!attribute nanp_prefix
|
|
201
|
+
# @return [String] the NANP prefix code
|
|
202
|
+
#
|
|
203
|
+
# @!attribute nationality
|
|
204
|
+
# @return [String] the nationality for this Country, in English
|
|
205
|
+
#
|
|
206
|
+
# @!attribute number
|
|
207
|
+
# @return [String] The ISO 3166-1 numeric code for this Country
|
|
208
|
+
#
|
|
209
|
+
# @!attribute languages_official
|
|
210
|
+
# @return [Array<String>] the list of official languages (locale codes) for this Country
|
|
211
|
+
#
|
|
212
|
+
# @!attribute languages_spoken
|
|
213
|
+
# @return [Array<String>] the list of spoken languages (locale codes) for this Country
|
|
214
|
+
#
|
|
215
|
+
# @!attribute translations
|
|
216
|
+
# @return [Hash] The hash of country name translations for this Country.
|
|
217
|
+
#
|
|
218
|
+
# @!attribute postal_code
|
|
219
|
+
# @return [Boolean] Does this Country uses postal codes in addresses
|
|
220
|
+
#
|
|
221
|
+
# @!attribute postal_code_format
|
|
222
|
+
# @return [String] The regex for valid postal codes in this Country
|
|
223
|
+
#
|
|
224
|
+
# @!attribute region
|
|
225
|
+
# @return [String] The Region this country is in. Approximately matches the United Nations geoscheme
|
|
226
|
+
#
|
|
227
|
+
# @!attribute unofficial_names
|
|
228
|
+
# @return [Array<String>] Array of unofficial, slang names or aliases for this Country
|
|
229
|
+
#
|
|
230
|
+
# @!attribute start_of_week
|
|
231
|
+
# @return [String] The starting day of the week ( +'monday'+ or +'sunday'+ )
|
|
232
|
+
#
|
|
233
|
+
# @!attribute subregion
|
|
234
|
+
# @return [String] The Subegion this country is in. Approximately matches the United Nations geoscheme's Subregions
|
|
235
|
+
#
|
|
236
|
+
# @!attribute un_locode
|
|
237
|
+
# @return [String] The UN/LOCODE prefix for this Country
|
|
238
|
+
#
|
|
239
|
+
# @!attribute vat_rates
|
|
240
|
+
# @return [Hash] the hash of VAT Rates for this Country
|
|
241
|
+
#
|
|
242
|
+
# @!attribute world_region
|
|
243
|
+
# @return [String] The "World Region" this country is in: +"AMER"+ , +"APAC"+ or +"EMEA"+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
private
|
|
248
|
+
|
|
249
|
+
def reload
|
|
250
|
+
@data = if @country_data_or_code.is_a?(Hash)
|
|
251
|
+
@country_data_or_code
|
|
252
|
+
else
|
|
253
|
+
ISO3166::Data.new(@country_data_or_code).call
|
|
254
|
+
end
|
|
255
|
+
end
|
|
200
256
|
end
|
|
201
257
|
end
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
AD:
|
|
3
|
-
continent: Europe
|
|
4
3
|
alpha2: AD
|
|
5
4
|
alpha3: AND
|
|
5
|
+
continent: Europe
|
|
6
6
|
country_code: '376'
|
|
7
|
-
|
|
7
|
+
currency_code: EUR
|
|
8
|
+
gec: AN
|
|
9
|
+
geo:
|
|
10
|
+
latitude: 42.506285
|
|
11
|
+
longitude: 1.521801
|
|
12
|
+
max_latitude: 42.655791
|
|
13
|
+
max_longitude: 1.786639
|
|
14
|
+
min_latitude: 42.4287488
|
|
15
|
+
min_longitude: 1.4087052
|
|
16
|
+
bounds:
|
|
17
|
+
northeast:
|
|
18
|
+
lat: 42.655791
|
|
19
|
+
lng: 1.786639
|
|
20
|
+
southwest:
|
|
21
|
+
lat: 42.4287488
|
|
22
|
+
lng: 1.4087052
|
|
8
23
|
international_prefix: '00'
|
|
9
24
|
ioc: AND
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
- Andorra
|
|
17
|
-
- "アンドラ"
|
|
25
|
+
iso_long_name: The Principality of Andorra
|
|
26
|
+
iso_short_name: Andorra
|
|
27
|
+
languages_official:
|
|
28
|
+
- ca
|
|
29
|
+
languages_spoken:
|
|
30
|
+
- ca
|
|
18
31
|
national_destination_code_lengths:
|
|
19
32
|
- 2
|
|
20
33
|
national_number_lengths:
|
|
@@ -23,18 +36,16 @@ AD:
|
|
|
23
36
|
- 8
|
|
24
37
|
- 9
|
|
25
38
|
national_prefix: None
|
|
39
|
+
nationality: Andorran
|
|
26
40
|
number: '020'
|
|
41
|
+
postal_code: true
|
|
42
|
+
postal_code_format: AD[1-7]0\d
|
|
27
43
|
region: Europe
|
|
44
|
+
start_of_week: monday
|
|
28
45
|
subregion: Southern Europe
|
|
29
|
-
world_region: EMEA
|
|
30
46
|
un_locode: AD
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
min_latitude: '42.433333'
|
|
37
|
-
max_longitude: '1.783333'
|
|
38
|
-
max_latitude: '42.65'
|
|
39
|
-
latitude_dec: '42.5506591796875'
|
|
40
|
-
longitude_dec: '1.5762332677841187'
|
|
47
|
+
unofficial_names:
|
|
48
|
+
- Andorre
|
|
49
|
+
- Andorra
|
|
50
|
+
- アンドラ
|
|
51
|
+
world_region: EMEA
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
AE:
|
|
3
|
-
continent: Asia
|
|
4
3
|
address_format: |-
|
|
5
4
|
{{recipient}}
|
|
6
5
|
{{street}}
|
|
@@ -8,22 +7,32 @@ AE:
|
|
|
8
7
|
{{country}}
|
|
9
8
|
alpha2: AE
|
|
10
9
|
alpha3: ARE
|
|
10
|
+
continent: Asia
|
|
11
11
|
country_code: '971'
|
|
12
|
-
|
|
12
|
+
currency_code: AED
|
|
13
|
+
gec: AE
|
|
14
|
+
geo:
|
|
15
|
+
latitude: 23.424076
|
|
16
|
+
longitude: 53.847818
|
|
17
|
+
max_latitude: 26.0765
|
|
18
|
+
max_longitude: 56.4395001
|
|
19
|
+
min_latitude: 22.6315138
|
|
20
|
+
min_longitude: 51.4723
|
|
21
|
+
bounds:
|
|
22
|
+
northeast:
|
|
23
|
+
lat: 26.0765
|
|
24
|
+
lng: 56.4395001
|
|
25
|
+
southwest:
|
|
26
|
+
lat: 22.6315138
|
|
27
|
+
lng: 51.4723
|
|
13
28
|
international_prefix: '00'
|
|
14
29
|
ioc: UAE
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
- "الإمارات العربية المتحدة"
|
|
22
|
-
- Vereinigte Arabische Emirate
|
|
23
|
-
- "Émirats Arabes Unis"
|
|
24
|
-
- Emiratos Árabes Unidos
|
|
25
|
-
- "アラブ首長国連邦"
|
|
26
|
-
- Verenigde Arabische Emiraten
|
|
30
|
+
iso_long_name: The United Arab Emirates
|
|
31
|
+
iso_short_name: United Arab Emirates
|
|
32
|
+
languages_official:
|
|
33
|
+
- ar
|
|
34
|
+
languages_spoken:
|
|
35
|
+
- ar
|
|
27
36
|
national_destination_code_lengths:
|
|
28
37
|
- 2
|
|
29
38
|
national_number_lengths:
|
|
@@ -31,18 +40,24 @@ AE:
|
|
|
31
40
|
- 8
|
|
32
41
|
- 9
|
|
33
42
|
national_prefix: '0'
|
|
43
|
+
nationality: Emirian
|
|
34
44
|
number: '784'
|
|
45
|
+
postal_code: false
|
|
35
46
|
region: Asia
|
|
47
|
+
start_of_week: monday
|
|
36
48
|
subregion: Western Asia
|
|
37
|
-
world_region: EMEA
|
|
38
49
|
un_locode: AE
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
unofficial_names:
|
|
51
|
+
- United Arab Emirates
|
|
52
|
+
- الإمارات العربية المتحدة
|
|
53
|
+
- Vereinigte Arabische Emirate
|
|
54
|
+
- Émirats Arabes Unis
|
|
55
|
+
- Emiratos Árabes Unidos
|
|
56
|
+
- アラブ首長国連邦
|
|
57
|
+
- Verenigde Arabische Emiraten
|
|
58
|
+
vat_rates:
|
|
59
|
+
standard: 5
|
|
60
|
+
reduced: []
|
|
61
|
+
super_reduced:
|
|
62
|
+
parking:
|
|
63
|
+
world_region: EMEA
|
|
@@ -1,40 +1,53 @@
|
|
|
1
1
|
---
|
|
2
2
|
AF:
|
|
3
|
-
continent: Asia
|
|
4
3
|
alpha2: AF
|
|
5
4
|
alpha3: AFG
|
|
5
|
+
continent: Asia
|
|
6
6
|
country_code: '93'
|
|
7
|
-
|
|
7
|
+
currency_code: AFN
|
|
8
|
+
gec: AF
|
|
9
|
+
geo:
|
|
10
|
+
latitude: 33.93911
|
|
11
|
+
longitude: 67.709953
|
|
12
|
+
max_latitude: 38.49087670000001
|
|
13
|
+
max_longitude: 74.8898619
|
|
14
|
+
min_latitude: 29.3772
|
|
15
|
+
min_longitude: 60.5170005
|
|
16
|
+
bounds:
|
|
17
|
+
northeast:
|
|
18
|
+
lat: 38.49087670000001
|
|
19
|
+
lng: 74.8898619
|
|
20
|
+
southwest:
|
|
21
|
+
lat: 29.3772
|
|
22
|
+
lng: 60.5170005
|
|
8
23
|
international_prefix: '00'
|
|
9
24
|
ioc: AFG
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
-
|
|
25
|
+
iso_long_name: The Islamic Republic of Afghanistan
|
|
26
|
+
iso_short_name: Afghanistan
|
|
27
|
+
languages_official:
|
|
28
|
+
- ps
|
|
29
|
+
- uz
|
|
30
|
+
- tk
|
|
31
|
+
languages_spoken:
|
|
32
|
+
- ps
|
|
33
|
+
- uz
|
|
34
|
+
- tk
|
|
18
35
|
national_destination_code_lengths:
|
|
19
36
|
- 2
|
|
20
37
|
national_number_lengths:
|
|
21
38
|
- 8
|
|
22
39
|
- 9
|
|
23
40
|
national_prefix: '0'
|
|
41
|
+
nationality: Afghan
|
|
24
42
|
number: '004'
|
|
43
|
+
postal_code: true
|
|
44
|
+
postal_code_format: "\\d{4}"
|
|
25
45
|
region: Asia
|
|
46
|
+
start_of_week: monday
|
|
26
47
|
subregion: Southern Asia
|
|
27
|
-
world_region: APAC
|
|
28
48
|
un_locode: AF
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
postal_code: true
|
|
35
|
-
min_longitude: '60.566667'
|
|
36
|
-
min_latitude: '29.383333'
|
|
37
|
-
max_longitude: '74.8868713067'
|
|
38
|
-
max_latitude: '38.483611'
|
|
39
|
-
latitude_dec: '33.833248138427734'
|
|
40
|
-
longitude_dec: '66.02528381347656'
|
|
49
|
+
unofficial_names:
|
|
50
|
+
- Afghanistan
|
|
51
|
+
- Afganistán
|
|
52
|
+
- アフガニスタン
|
|
53
|
+
world_region: APAC
|