countries 1.2.5 → 4.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/tests.yml +39 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +52 -0
- data/CHANGELOG.md +557 -1
- data/Gemfile +7 -0
- data/LICENSE +3 -1
- data/README.markdown +264 -132
- 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 +31 -22
- 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 +945 -121
- 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 +1122 -143
- 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 +35 -5
- 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 -11
- 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
|