countries 3.0.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/codeql-analysis.yml +70 -0
- data/.github/workflows/tests.yml +35 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +40 -1
- data/.rubocop_todo.yml +8 -41
- data/CHANGELOG.md +218 -2
- data/Gemfile +9 -2
- data/LICENSE +3 -1
- data/README.markdown +120 -79
- data/Rakefile +21 -43
- data/bin/console +1 -0
- data/countries.gemspec +15 -8
- data/lib/countries/cache/countries.json +1 -1
- data/lib/countries/cache/locales/ab.json +1 -1
- data/lib/countries/cache/locales/af.json +1 -1
- data/lib/countries/cache/locales/ak.json +1 -1
- data/lib/countries/cache/locales/am.json +1 -1
- data/lib/countries/cache/locales/an.json +1 -1
- data/lib/countries/cache/locales/ar.json +1 -1
- data/lib/countries/cache/locales/as.json +1 -1
- data/lib/countries/cache/locales/ay.json +1 -1
- data/lib/countries/cache/locales/az.json +1 -1
- data/lib/countries/cache/locales/ba.json +1 -1
- data/lib/countries/cache/locales/be.json +1 -1
- data/lib/countries/cache/locales/bg.json +1 -1
- data/lib/countries/cache/locales/bi.json +1 -1
- data/lib/countries/cache/locales/bn-in.json +1 -1
- data/lib/countries/cache/locales/bn.json +1 -1
- data/lib/countries/cache/locales/br.json +1 -1
- data/lib/countries/cache/locales/bs.json +1 -1
- data/lib/countries/cache/locales/ca.json +1 -1
- data/lib/countries/cache/locales/ce.json +1 -1
- data/lib/countries/cache/locales/ch.json +1 -1
- data/lib/countries/cache/locales/cs.json +1 -1
- data/lib/countries/cache/locales/cv.json +1 -1
- data/lib/countries/cache/locales/cy.json +1 -1
- data/lib/countries/cache/locales/da.json +1 -1
- data/lib/countries/cache/locales/de.json +1 -1
- data/lib/countries/cache/locales/dv.json +1 -1
- data/lib/countries/cache/locales/dz.json +1 -1
- data/lib/countries/cache/locales/ee.json +1 -1
- data/lib/countries/cache/locales/el.json +1 -1
- data/lib/countries/cache/locales/en.json +1 -1
- data/lib/countries/cache/locales/eo.json +1 -1
- data/lib/countries/cache/locales/es.json +1 -1
- data/lib/countries/cache/locales/et.json +1 -1
- data/lib/countries/cache/locales/eu.json +1 -1
- data/lib/countries/cache/locales/fa.json +1 -1
- data/lib/countries/cache/locales/ff.json +1 -1
- data/lib/countries/cache/locales/fi.json +1 -1
- data/lib/countries/cache/locales/fo.json +1 -1
- data/lib/countries/cache/locales/fr.json +1 -1
- data/lib/countries/cache/locales/fy.json +1 -1
- data/lib/countries/cache/locales/ga.json +1 -1
- data/lib/countries/cache/locales/gl.json +1 -1
- data/lib/countries/cache/locales/gn.json +1 -1
- data/lib/countries/cache/locales/gu.json +1 -1
- data/lib/countries/cache/locales/gv.json +1 -1
- data/lib/countries/cache/locales/ha.json +1 -1
- data/lib/countries/cache/locales/he.json +1 -1
- data/lib/countries/cache/locales/hi.json +1 -1
- data/lib/countries/cache/locales/hr.json +1 -1
- data/lib/countries/cache/locales/ht.json +1 -1
- data/lib/countries/cache/locales/hu.json +1 -1
- data/lib/countries/cache/locales/hy.json +1 -1
- data/lib/countries/cache/locales/ia.json +1 -1
- data/lib/countries/cache/locales/id.json +1 -1
- data/lib/countries/cache/locales/io.json +1 -1
- data/lib/countries/cache/locales/is.json +1 -1
- data/lib/countries/cache/locales/it.json +1 -1
- data/lib/countries/cache/locales/iu.json +1 -1
- data/lib/countries/cache/locales/ja.json +1 -1
- data/lib/countries/cache/locales/ka.json +1 -1
- data/lib/countries/cache/locales/ki.json +1 -1
- data/lib/countries/cache/locales/kk.json +1 -1
- data/lib/countries/cache/locales/kl.json +1 -1
- data/lib/countries/cache/locales/km.json +1 -1
- data/lib/countries/cache/locales/kn.json +1 -1
- data/lib/countries/cache/locales/ko.json +1 -1
- data/lib/countries/cache/locales/ku.json +1 -1
- data/lib/countries/cache/locales/kv.json +1 -1
- data/lib/countries/cache/locales/kw.json +1 -1
- data/lib/countries/cache/locales/ky.json +1 -1
- data/lib/countries/cache/locales/lo.json +1 -1
- data/lib/countries/cache/locales/lt.json +1 -1
- data/lib/countries/cache/locales/lv.json +1 -1
- data/lib/countries/cache/locales/mi.json +1 -1
- data/lib/countries/cache/locales/mk.json +1 -1
- data/lib/countries/cache/locales/ml.json +1 -1
- data/lib/countries/cache/locales/mn.json +1 -1
- data/lib/countries/cache/locales/mr.json +1 -1
- data/lib/countries/cache/locales/ms.json +1 -1
- data/lib/countries/cache/locales/mt.json +1 -1
- data/lib/countries/cache/locales/my.json +1 -1
- data/lib/countries/cache/locales/na.json +1 -1
- data/lib/countries/cache/locales/nb.json +1 -1
- data/lib/countries/cache/locales/ne.json +1 -1
- data/lib/countries/cache/locales/nl.json +1 -1
- data/lib/countries/cache/locales/nn.json +1 -1
- data/lib/countries/cache/locales/nv.json +1 -1
- data/lib/countries/cache/locales/oc.json +1 -1
- data/lib/countries/cache/locales/or.json +1 -1
- data/lib/countries/cache/locales/pa.json +1 -1
- data/lib/countries/cache/locales/pi.json +1 -1
- data/lib/countries/cache/locales/pl.json +1 -1
- data/lib/countries/cache/locales/ps.json +1 -1
- data/lib/countries/cache/locales/pt-br.json +1 -1
- data/lib/countries/cache/locales/pt.json +1 -1
- data/lib/countries/cache/locales/ro.json +1 -1
- data/lib/countries/cache/locales/ru.json +1 -1
- data/lib/countries/cache/locales/rw.json +1 -1
- data/lib/countries/cache/locales/sc.json +1 -1
- data/lib/countries/cache/locales/sd.json +1 -1
- data/lib/countries/cache/locales/si.json +1 -1
- data/lib/countries/cache/locales/sk.json +1 -1
- data/lib/countries/cache/locales/sl.json +1 -1
- data/lib/countries/cache/locales/so.json +1 -1
- data/lib/countries/cache/locales/sq.json +1 -1
- data/lib/countries/cache/locales/sr.json +1 -1
- data/lib/countries/cache/locales/sv.json +1 -1
- data/lib/countries/cache/locales/sw.json +1 -1
- data/lib/countries/cache/locales/ta.json +1 -1
- data/lib/countries/cache/locales/te.json +1 -1
- data/lib/countries/cache/locales/tg.json +1 -1
- data/lib/countries/cache/locales/th.json +1 -1
- data/lib/countries/cache/locales/ti.json +1 -1
- data/lib/countries/cache/locales/tk.json +1 -1
- data/lib/countries/cache/locales/tl.json +1 -1
- data/lib/countries/cache/locales/tr.json +1 -1
- data/lib/countries/cache/locales/tt.json +1 -1
- data/lib/countries/cache/locales/ug.json +1 -1
- data/lib/countries/cache/locales/uk.json +1 -1
- data/lib/countries/cache/locales/ur.json +1 -1
- data/lib/countries/cache/locales/uz.json +1 -1
- data/lib/countries/cache/locales/ve.json +1 -1
- data/lib/countries/cache/locales/vi.json +1 -1
- data/lib/countries/cache/locales/wa.json +1 -1
- data/lib/countries/cache/locales/wo.json +1 -1
- data/lib/countries/cache/locales/xh.json +1 -1
- data/lib/countries/cache/locales/yo.json +1 -1
- data/lib/countries/cache/locales/zh-cn.json +1 -1
- data/lib/countries/cache/locales/zh-hk.json +1 -1
- data/lib/countries/cache/locales/zh-tw.json +1 -1
- data/lib/countries/cache/locales/zh.json +1 -1
- data/lib/countries/cache/locales/zu.json +1 -1
- data/lib/countries/configuration.rb +15 -0
- data/lib/countries/country/class_methods.rb +25 -83
- data/lib/countries/country/currency_methods.rb +6 -1
- data/lib/countries/country/emoji.rb +5 -3
- data/lib/countries/country/finder_methods.rb +81 -0
- data/lib/countries/country.rb +115 -7
- data/lib/countries/data/countries/AD.yaml +28 -28
- data/lib/countries/data/countries/AE.yaml +32 -33
- data/lib/countries/data/countries/AF.yaml +32 -32
- data/lib/countries/data/countries/AG.yaml +29 -30
- data/lib/countries/data/countries/AI.yaml +27 -27
- data/lib/countries/data/countries/AL.yaml +29 -29
- data/lib/countries/data/countries/AM.yaml +30 -30
- data/lib/countries/data/countries/AO.yaml +27 -28
- data/lib/countries/data/countries/AQ.yaml +26 -27
- data/lib/countries/data/countries/AR.yaml +30 -30
- data/lib/countries/data/countries/AS.yaml +31 -31
- data/lib/countries/data/countries/AT.yaml +36 -36
- data/lib/countries/data/countries/AU.yaml +33 -33
- data/lib/countries/data/countries/AW.yaml +25 -26
- data/lib/countries/data/countries/AX.yaml +27 -27
- data/lib/countries/data/countries/AZ.yaml +30 -30
- data/lib/countries/data/countries/BA.yaml +32 -32
- data/lib/countries/data/countries/BB.yaml +28 -28
- data/lib/countries/data/countries/BD.yaml +28 -28
- data/lib/countries/data/countries/BE.yaml +41 -41
- data/lib/countries/data/countries/BF.yaml +29 -30
- data/lib/countries/data/countries/BG.yaml +36 -36
- data/lib/countries/data/countries/BH.yaml +29 -29
- data/lib/countries/data/countries/BI.yaml +29 -30
- data/lib/countries/data/countries/BJ.yaml +27 -28
- data/lib/countries/data/countries/BL.yaml +25 -25
- data/lib/countries/data/countries/BM.yaml +29 -29
- data/lib/countries/data/countries/BN.yaml +26 -26
- data/lib/countries/data/countries/BO.yaml +31 -32
- data/lib/countries/data/countries/BQ.yaml +28 -29
- data/lib/countries/data/countries/BR.yaml +35 -35
- data/lib/countries/data/countries/BS.yaml +27 -28
- data/lib/countries/data/countries/BT.yaml +28 -28
- data/lib/countries/data/countries/BV.yaml +26 -27
- data/lib/countries/data/countries/BW.yaml +29 -30
- data/lib/countries/data/countries/BY.yaml +30 -30
- data/lib/countries/data/countries/BZ.yaml +28 -29
- data/lib/countries/data/countries/CA.yaml +30 -30
- data/lib/countries/data/countries/CC.yaml +29 -29
- data/lib/countries/data/countries/CD.yaml +35 -36
- data/lib/countries/data/countries/CF.yaml +29 -30
- data/lib/countries/data/countries/CG.yaml +29 -30
- data/lib/countries/data/countries/CH.yaml +40 -40
- data/lib/countries/data/countries/CI.yaml +27 -28
- data/lib/countries/data/countries/CK.yaml +27 -28
- data/lib/countries/data/countries/CL.yaml +33 -28
- data/lib/countries/data/countries/CM.yaml +29 -30
- data/lib/countries/data/countries/CN.yaml +28 -28
- data/lib/countries/data/countries/CO.yaml +28 -28
- data/lib/countries/data/countries/CR.yaml +28 -28
- data/lib/countries/data/countries/CU.yaml +27 -27
- data/lib/countries/data/countries/CV.yaml +28 -28
- data/lib/countries/data/countries/CW.yaml +25 -26
- data/lib/countries/data/countries/CX.yaml +30 -30
- data/lib/countries/data/countries/CY.yaml +41 -41
- data/lib/countries/data/countries/CZ.yaml +38 -38
- data/lib/countries/data/countries/DE.yaml +36 -36
- data/lib/countries/data/countries/DJ.yaml +29 -30
- data/lib/countries/data/countries/DK.yaml +35 -35
- data/lib/countries/data/countries/DM.yaml +26 -27
- data/lib/countries/data/countries/DO.yaml +28 -28
- data/lib/countries/data/countries/DZ.yaml +28 -28
- data/lib/countries/data/countries/EC.yaml +28 -28
- data/lib/countries/data/countries/EE.yaml +36 -36
- data/lib/countries/data/countries/EG.yaml +28 -28
- data/lib/countries/data/countries/EH.yaml +30 -30
- data/lib/countries/data/countries/ER.yaml +31 -32
- data/lib/countries/data/countries/ES.yaml +36 -36
- data/lib/countries/data/countries/ET.yaml +28 -28
- data/lib/countries/data/countries/FI.yaml +39 -39
- data/lib/countries/data/countries/FJ.yaml +33 -34
- data/lib/countries/data/countries/FK.yaml +29 -29
- data/lib/countries/data/countries/FM.yaml +28 -28
- data/lib/countries/data/countries/FO.yaml +28 -28
- data/lib/countries/data/countries/FR.yaml +37 -37
- data/lib/countries/data/countries/GA.yaml +27 -28
- data/lib/countries/data/countries/GB.yaml +41 -36
- data/lib/countries/data/countries/GD.yaml +26 -27
- data/lib/countries/data/countries/GE.yaml +28 -28
- data/lib/countries/data/countries/GF.yaml +29 -29
- data/lib/countries/data/countries/GG.yaml +31 -31
- data/lib/countries/data/countries/GH.yaml +27 -28
- data/lib/countries/data/countries/GI.yaml +28 -28
- data/lib/countries/data/countries/GL.yaml +29 -29
- data/lib/countries/data/countries/GM.yaml +27 -28
- data/lib/countries/data/countries/GN.yaml +30 -30
- data/lib/countries/data/countries/GP.yaml +27 -27
- data/lib/countries/data/countries/GQ.yaml +29 -30
- data/lib/countries/data/countries/GR.yaml +37 -37
- data/lib/countries/data/countries/GS.yaml +29 -29
- data/lib/countries/data/countries/GT.yaml +28 -28
- data/lib/countries/data/countries/GU.yaml +31 -31
- data/lib/countries/data/countries/GW.yaml +28 -28
- data/lib/countries/data/countries/GY.yaml +26 -27
- data/lib/countries/data/countries/HK.yaml +29 -30
- data/lib/countries/data/countries/HM.yaml +28 -28
- data/lib/countries/data/countries/HN.yaml +28 -28
- data/lib/countries/data/countries/HR.yaml +37 -37
- data/lib/countries/data/countries/HT.yaml +29 -29
- data/lib/countries/data/countries/HU.yaml +37 -37
- data/lib/countries/data/countries/ID.yaml +28 -28
- data/lib/countries/data/countries/IE.yaml +39 -39
- data/lib/countries/data/countries/IL.yaml +35 -30
- data/lib/countries/data/countries/IM.yaml +31 -31
- data/lib/countries/data/countries/IN.yaml +30 -30
- data/lib/countries/data/countries/IO.yaml +28 -28
- data/lib/countries/data/countries/IQ.yaml +28 -28
- data/lib/countries/data/countries/IR.yaml +28 -28
- data/lib/countries/data/countries/IS.yaml +35 -35
- data/lib/countries/data/countries/IT.yaml +36 -36
- data/lib/countries/data/countries/JE.yaml +26 -26
- data/lib/countries/data/countries/JM.yaml +28 -29
- data/lib/countries/data/countries/JO.yaml +28 -28
- data/lib/countries/data/countries/JP.yaml +28 -28
- data/lib/countries/data/countries/KE.yaml +30 -30
- data/lib/countries/data/countries/KG.yaml +30 -30
- data/lib/countries/data/countries/KH.yaml +28 -28
- data/lib/countries/data/countries/KI.yaml +27 -28
- data/lib/countries/data/countries/KM.yaml +29 -30
- data/lib/countries/data/countries/KN.yaml +28 -29
- data/lib/countries/data/countries/KP.yaml +28 -28
- data/lib/countries/data/countries/KR.yaml +28 -28
- data/lib/countries/data/countries/KW.yaml +28 -28
- data/lib/countries/data/countries/KY.yaml +29 -29
- data/lib/countries/data/countries/KZ.yaml +30 -30
- data/lib/countries/data/countries/LA.yaml +28 -28
- data/lib/countries/data/countries/LB.yaml +30 -30
- data/lib/countries/data/countries/LC.yaml +28 -29
- data/lib/countries/data/countries/LI.yaml +27 -27
- data/lib/countries/data/countries/LK.yaml +28 -28
- data/lib/countries/data/countries/LR.yaml +28 -28
- data/lib/countries/data/countries/LS.yaml +28 -28
- data/lib/countries/data/countries/LT.yaml +37 -37
- data/lib/countries/data/countries/LU.yaml +39 -39
- data/lib/countries/data/countries/LV.yaml +42 -36
- data/lib/countries/data/countries/LY.yaml +27 -28
- data/lib/countries/data/countries/MA.yaml +28 -28
- data/lib/countries/data/countries/MC.yaml +28 -28
- data/lib/countries/data/countries/MD.yaml +28 -28
- data/lib/countries/data/countries/ME.yaml +34 -34
- data/lib/countries/data/countries/MF.yaml +29 -29
- data/lib/countries/data/countries/MG.yaml +30 -30
- data/lib/countries/data/countries/MH.yaml +30 -30
- data/lib/countries/data/countries/MK.yaml +28 -28
- data/lib/countries/data/countries/ML.yaml +27 -28
- data/lib/countries/data/countries/MM.yaml +27 -27
- data/lib/countries/data/countries/MN.yaml +28 -28
- data/lib/countries/data/countries/MO.yaml +28 -29
- data/lib/countries/data/countries/MP.yaml +31 -31
- data/lib/countries/data/countries/MQ.yaml +27 -27
- data/lib/countries/data/countries/MR.yaml +29 -30
- data/lib/countries/data/countries/MS.yaml +26 -27
- data/lib/countries/data/countries/MT.yaml +38 -38
- data/lib/countries/data/countries/MU.yaml +28 -28
- data/lib/countries/data/countries/MV.yaml +28 -28
- data/lib/countries/data/countries/MW.yaml +29 -30
- data/lib/countries/data/countries/MX.yaml +33 -33
- data/lib/countries/data/countries/MY.yaml +30 -30
- data/lib/countries/data/countries/MZ.yaml +28 -28
- data/lib/countries/data/countries/NA.yaml +30 -30
- data/lib/countries/data/countries/NC.yaml +29 -29
- data/lib/countries/data/countries/NE.yaml +28 -28
- data/lib/countries/data/countries/NF.yaml +29 -29
- data/lib/countries/data/countries/NG.yaml +34 -34
- data/lib/countries/data/countries/NI.yaml +28 -28
- data/lib/countries/data/countries/NL.yaml +36 -36
- data/lib/countries/data/countries/NO.yaml +36 -36
- data/lib/countries/data/countries/NP.yaml +32 -32
- data/lib/countries/data/countries/NR.yaml +27 -28
- data/lib/countries/data/countries/NU.yaml +25 -26
- data/lib/countries/data/countries/NZ.yaml +35 -35
- data/lib/countries/data/countries/OM.yaml +28 -28
- data/lib/countries/data/countries/PA.yaml +27 -28
- data/lib/countries/data/countries/PE.yaml +28 -28
- data/lib/countries/data/countries/PF.yaml +29 -29
- data/lib/countries/data/countries/PG.yaml +28 -28
- data/lib/countries/data/countries/PH.yaml +35 -35
- data/lib/countries/data/countries/PK.yaml +30 -30
- data/lib/countries/data/countries/PL.yaml +37 -37
- data/lib/countries/data/countries/PM.yaml +29 -29
- data/lib/countries/data/countries/PN.yaml +27 -27
- data/lib/countries/data/countries/PR.yaml +30 -30
- data/lib/countries/data/countries/PS.yaml +31 -32
- data/lib/countries/data/countries/PT.yaml +34 -34
- data/lib/countries/data/countries/PW.yaml +26 -26
- data/lib/countries/data/countries/PY.yaml +30 -30
- data/lib/countries/data/countries/QA.yaml +27 -28
- data/lib/countries/data/countries/RE.yaml +28 -28
- data/lib/countries/data/countries/RO.yaml +37 -37
- data/lib/countries/data/countries/RS.yaml +28 -28
- data/lib/countries/data/countries/RU.yaml +28 -28
- data/lib/countries/data/countries/RW.yaml +31 -32
- data/lib/countries/data/countries/SA.yaml +33 -28
- data/lib/countries/data/countries/SB.yaml +28 -29
- data/lib/countries/data/countries/SC.yaml +29 -30
- data/lib/countries/data/countries/SD.yaml +30 -30
- data/lib/countries/data/countries/SE.yaml +37 -37
- data/lib/countries/data/countries/SG.yaml +32 -32
- data/lib/countries/data/countries/SH.yaml +29 -29
- data/lib/countries/data/countries/SI.yaml +36 -36
- data/lib/countries/data/countries/SJ.yaml +29 -29
- data/lib/countries/data/countries/SK.yaml +36 -36
- data/lib/countries/data/countries/SL.yaml +27 -28
- data/lib/countries/data/countries/SM.yaml +28 -28
- data/lib/countries/data/countries/SN.yaml +28 -28
- data/lib/countries/data/countries/SO.yaml +30 -30
- data/lib/countries/data/countries/SR.yaml +26 -27
- data/lib/countries/data/countries/SS.yaml +29 -30
- data/lib/countries/data/countries/ST.yaml +27 -28
- data/lib/countries/data/countries/SV.yaml +27 -27
- data/lib/countries/data/countries/SX.yaml +28 -29
- data/lib/countries/data/countries/SY.yaml +27 -28
- data/lib/countries/data/countries/SZ.yaml +30 -30
- data/lib/countries/data/countries/TC.yaml +30 -30
- data/lib/countries/data/countries/TD.yaml +29 -30
- data/lib/countries/data/countries/TF.yaml +30 -31
- data/lib/countries/data/countries/TG.yaml +27 -28
- data/lib/countries/data/countries/TH.yaml +34 -33
- data/lib/countries/data/countries/TJ.yaml +30 -30
- data/lib/countries/data/countries/TK.yaml +27 -28
- data/lib/countries/data/countries/TL.yaml +27 -28
- data/lib/countries/data/countries/TM.yaml +30 -30
- data/lib/countries/data/countries/TN.yaml +30 -30
- data/lib/countries/data/countries/TO.yaml +29 -30
- data/lib/countries/data/countries/TR.yaml +28 -28
- data/lib/countries/data/countries/TT.yaml +28 -29
- data/lib/countries/data/countries/TV.yaml +27 -28
- data/lib/countries/data/countries/TW.yaml +28 -28
- data/lib/countries/data/countries/TZ.yaml +30 -30
- data/lib/countries/data/countries/UA.yaml +34 -34
- data/lib/countries/data/countries/UG.yaml +29 -30
- data/lib/countries/data/countries/UM.yaml +29 -29
- data/lib/countries/data/countries/US.yaml +29 -28
- data/lib/countries/data/countries/UY.yaml +28 -28
- data/lib/countries/data/countries/UZ.yaml +30 -30
- data/lib/countries/data/countries/VA.yaml +31 -31
- data/lib/countries/data/countries/VC.yaml +29 -29
- data/lib/countries/data/countries/VE.yaml +28 -28
- data/lib/countries/data/countries/VG.yaml +30 -30
- data/lib/countries/data/countries/VI.yaml +28 -28
- data/lib/countries/data/countries/VN.yaml +34 -28
- data/lib/countries/data/countries/VU.yaml +31 -32
- data/lib/countries/data/countries/WF.yaml +29 -29
- data/lib/countries/data/countries/WS.yaml +29 -30
- data/lib/countries/data/countries/YE.yaml +27 -28
- data/lib/countries/data/countries/YT.yaml +26 -26
- data/lib/countries/data/countries/ZA.yaml +40 -40
- data/lib/countries/data/countries/ZM.yaml +28 -28
- data/lib/countries/data/countries/ZW.yaml +31 -32
- data/lib/countries/data/subdivisions/AD.yaml +35 -28
- data/lib/countries/data/subdivisions/AE.yaml +154 -63
- data/lib/countries/data/subdivisions/AF.yaml +605 -300
- data/lib/countries/data/subdivisions/AG.yaml +149 -67
- data/lib/countries/data/subdivisions/AI.yaml +57 -43
- data/lib/countries/data/subdivisions/AL.yaml +252 -468
- data/lib/countries/data/subdivisions/AM.yaml +236 -88
- data/lib/countries/data/subdivisions/AO.yaml +344 -144
- data/lib/countries/data/subdivisions/AR.yaml +450 -187
- data/lib/countries/data/subdivisions/AT.yaml +202 -72
- data/lib/countries/data/subdivisions/AU.yaml +212 -64
- data/lib/countries/data/subdivisions/AZ.yaml +1550 -592
- data/lib/countries/data/subdivisions/BA.yaml +189 -16
- data/lib/countries/data/subdivisions/BB.yaml +190 -88
- data/lib/countries/data/subdivisions/BD.yaml +1192 -519
- data/lib/countries/data/subdivisions/BE.yaml +278 -88
- data/lib/countries/data/subdivisions/BF.yaml +993 -366
- data/lib/countries/data/subdivisions/BG.yaml +600 -219
- data/lib/countries/data/subdivisions/BH.yaml +72 -35
- data/lib/countries/data/subdivisions/BI.yaml +298 -123
- data/lib/countries/data/subdivisions/BJ.yaml +226 -96
- data/lib/countries/data/subdivisions/BM.yaml +44 -33
- data/lib/countries/data/subdivisions/BN.yaml +63 -32
- data/lib/countries/data/subdivisions/BO.yaml +157 -72
- data/lib/countries/data/subdivisions/BQ.yaml +63 -24
- data/lib/countries/data/subdivisions/BR.yaml +689 -216
- data/lib/countries/data/subdivisions/BS.yaml +625 -108
- data/lib/countries/data/subdivisions/BT.yaml +346 -160
- data/lib/countries/data/subdivisions/BW.yaml +294 -72
- data/lib/countries/data/subdivisions/BY.yaml +140 -51
- data/lib/countries/data/subdivisions/BZ.yaml +97 -48
- data/lib/countries/data/subdivisions/CA.yaml +358 -105
- data/lib/countries/data/subdivisions/CD.yaml +451 -68
- data/lib/countries/data/subdivisions/CF.yaml +291 -136
- data/lib/countries/data/subdivisions/CG.yaml +217 -88
- data/lib/countries/data/subdivisions/CH.yaml +593 -208
- data/lib/countries/data/subdivisions/CI.yaml +431 -66
- data/lib/countries/data/subdivisions/CK.yaml +44 -33
- data/lib/countries/data/subdivisions/CL.yaml +262 -132
- data/lib/countries/data/subdivisions/CM.yaml +190 -80
- data/lib/countries/data/subdivisions/CN.yaml +618 -46
- data/lib/countries/data/subdivisions/CO.yaml +643 -264
- data/lib/countries/data/subdivisions/CR.yaml +119 -56
- data/lib/countries/data/subdivisions/CU.yaml +268 -128
- data/lib/countries/data/subdivisions/CV.yaml +414 -126
- data/lib/countries/data/subdivisions/CY.yaml +102 -48
- data/lib/countries/data/subdivisions/CZ.yaml +1035 -1349
- data/lib/countries/data/subdivisions/DE.yaml +484 -144
- data/lib/countries/data/subdivisions/DJ.yaml +110 -48
- data/lib/countries/data/subdivisions/DK.yaml +110 -241
- data/lib/countries/data/subdivisions/DM.yaml +159 -80
- data/lib/countries/data/subdivisions/DO.yaml +660 -248
- data/lib/countries/data/subdivisions/DZ.yaml +809 -384
- data/lib/countries/data/subdivisions/EC.yaml +391 -192
- data/lib/countries/data/subdivisions/EE.yaml +653 -146
- data/lib/countries/data/subdivisions/EG.yaml +472 -216
- data/lib/countries/data/subdivisions/EH.yaml +20 -12
- data/lib/countries/data/subdivisions/ER.yaml +109 -48
- data/lib/countries/data/subdivisions/ES.yaml +1738 -435
- data/lib/countries/data/subdivisions/ET.yaml +207 -88
- data/lib/countries/data/subdivisions/FI.yaml +111 -124
- data/lib/countries/data/subdivisions/FJ.yaml +314 -40
- data/lib/countries/data/subdivisions/FM.yaml +63 -32
- data/lib/countries/data/subdivisions/FR.yaml +2826 -1280
- data/lib/countries/data/subdivisions/GA.yaml +159 -72
- data/lib/countries/data/subdivisions/GB.yaml +4980 -1771
- data/lib/countries/data/subdivisions/GD.yaml +114 -56
- data/lib/countries/data/subdivisions/GE.yaml +238 -96
- data/lib/countries/data/subdivisions/GH.yaml +266 -79
- data/lib/countries/data/subdivisions/GL.yaml +89 -0
- data/lib/countries/data/subdivisions/GM.yaml +124 -48
- data/lib/countries/data/subdivisions/GN.yaml +711 -274
- data/lib/countries/data/subdivisions/GQ.yaml +144 -72
- data/lib/countries/data/subdivisions/GR.yaml +297 -739
- data/lib/countries/data/subdivisions/GT.yaml +351 -176
- data/lib/countries/data/subdivisions/GW.yaml +192 -72
- data/lib/countries/data/subdivisions/GY.yaml +163 -80
- data/lib/countries/data/subdivisions/HN.yaml +274 -144
- data/lib/countries/data/subdivisions/HR.yaml +429 -168
- data/lib/countries/data/subdivisions/HT.yaml +179 -72
- data/lib/countries/data/subdivisions/HU.yaml +855 -403
- data/lib/countries/data/subdivisions/ID.yaml +2377 -1859
- data/lib/countries/data/subdivisions/IE.yaml +831 -440
- data/lib/countries/data/subdivisions/IL.yaml +114 -48
- data/lib/countries/data/subdivisions/IN.yaml +1006 -298
- data/lib/countries/data/subdivisions/IQ.yaml +316 -139
- data/lib/countries/data/subdivisions/IR.yaml +597 -239
- data/lib/countries/data/subdivisions/IS.yaml +445 -67
- data/lib/countries/data/subdivisions/IT.yaml +3435 -2211
- data/lib/countries/data/subdivisions/JM.yaml +243 -112
- data/lib/countries/data/subdivisions/JO.yaml +193 -96
- data/lib/countries/data/subdivisions/JP.yaml +950 -376
- data/lib/countries/data/subdivisions/KE.yaml +928 -273
- data/lib/countries/data/subdivisions/KG.yaml +188 -64
- data/lib/countries/data/subdivisions/KH.yaml +437 -192
- data/lib/countries/data/subdivisions/KI.yaml +57 -24
- data/lib/countries/data/subdivisions/KM.yaml +49 -24
- data/lib/countries/data/subdivisions/KN.yaml +308 -112
- data/lib/countries/data/subdivisions/KP.yaml +365 -57
- data/lib/countries/data/subdivisions/KR.yaml +393 -128
- data/lib/countries/data/subdivisions/KW.yaml +87 -48
- data/lib/countries/data/subdivisions/KZ.yaml +362 -135
- data/lib/countries/data/subdivisions/LA.yaml +300 -145
- data/lib/countries/data/subdivisions/LB.yaml +134 -48
- data/lib/countries/data/subdivisions/LC.yaml +166 -0
- data/lib/countries/data/subdivisions/LI.yaml +186 -88
- data/lib/countries/data/subdivisions/LK.yaml +544 -200
- data/lib/countries/data/subdivisions/LR.yaml +252 -110
- data/lib/countries/data/subdivisions/LS.yaml +149 -80
- data/lib/countries/data/subdivisions/LT.yaml +1042 -80
- data/lib/countries/data/subdivisions/LU.yaml +280 -146
- data/lib/countries/data/subdivisions/LV.yaml +766 -3582
- data/lib/countries/data/subdivisions/LY.yaml +339 -162
- data/lib/countries/data/subdivisions/MA.yaml +1443 -484
- data/lib/countries/data/subdivisions/MC.yaml +250 -0
- data/lib/countries/data/subdivisions/MD.yaml +1103 -558
- data/lib/countries/data/subdivisions/ME.yaml +425 -168
- data/lib/countries/data/subdivisions/MG.yaml +93 -48
- data/lib/countries/data/subdivisions/MH.yaml +422 -199
- data/lib/countries/data/subdivisions/MK.yaml +3556 -3147
- data/lib/countries/data/subdivisions/ML.yaml +187 -71
- data/lib/countries/data/subdivisions/MM.yaml +287 -112
- data/lib/countries/data/subdivisions/MN.yaml +421 -176
- data/lib/countries/data/subdivisions/MR.yaml +245 -99
- data/lib/countries/data/subdivisions/MT.yaml +1059 -544
- data/lib/countries/data/subdivisions/MU.yaml +317 -131
- data/lib/countries/data/subdivisions/MV.yaml +457 -163
- data/lib/countries/data/subdivisions/MW.yaml +537 -216
- data/lib/countries/data/subdivisions/MX.yaml +709 -256
- data/lib/countries/data/subdivisions/MY.yaml +336 -128
- data/lib/countries/data/subdivisions/MZ.yaml +191 -83
- data/lib/countries/data/subdivisions/NA.yaml +220 -107
- data/lib/countries/data/subdivisions/NE.yaml +170 -64
- data/lib/countries/data/subdivisions/NG.yaml +870 -296
- data/lib/countries/data/subdivisions/NI.yaml +260 -136
- data/lib/countries/data/subdivisions/NL.yaml +381 -96
- data/lib/countries/data/subdivisions/NO.yaml +633 -1095
- data/lib/countries/data/subdivisions/NP.yaml +383 -112
- data/lib/countries/data/subdivisions/NR.yaml +260 -112
- data/lib/countries/data/subdivisions/NZ.yaml +340 -197
- data/lib/countries/data/subdivisions/OM.yaml +202 -52
- data/lib/countries/data/subdivisions/PA.yaml +203 -99
- data/lib/countries/data/subdivisions/PE.yaml +418 -208
- data/lib/countries/data/subdivisions/PG.yaml +381 -155
- data/lib/countries/data/subdivisions/PH.yaml +1855 -662
- data/lib/countries/data/subdivisions/PK.yaml +185 -54
- data/lib/countries/data/subdivisions/PL.yaml +83 -32
- data/lib/countries/data/subdivisions/PS.yaml +257 -0
- data/lib/countries/data/subdivisions/PT.yaml +355 -173
- data/lib/countries/data/subdivisions/PW.yaml +269 -128
- data/lib/countries/data/subdivisions/PY.yaml +321 -144
- data/lib/countries/data/subdivisions/QA.yaml +168 -65
- data/lib/countries/data/subdivisions/RO.yaml +729 -336
- data/lib/countries/data/subdivisions/RS.yaml +589 -240
- data/lib/countries/data/subdivisions/RU.yaml +1875 -665
- data/lib/countries/data/subdivisions/RW.yaml +102 -40
- data/lib/countries/data/subdivisions/SA.yaml +234 -104
- data/lib/countries/data/subdivisions/SB.yaml +169 -80
- data/lib/countries/data/subdivisions/SC.yaml +464 -184
- data/lib/countries/data/subdivisions/SD.yaml +163 -22
- data/lib/countries/data/subdivisions/SE.yaml +435 -237
- data/lib/countries/data/subdivisions/SG.yaml +71 -49
- data/lib/countries/data/subdivisions/SH.yaml +67 -14
- data/lib/countries/data/subdivisions/SI.yaml +3570 -1549
- data/lib/countries/data/subdivisions/SJ.yaml +8 -6
- data/lib/countries/data/subdivisions/SK.yaml +129 -64
- data/lib/countries/data/subdivisions/SL.yaml +80 -31
- data/lib/countries/data/subdivisions/SM.yaml +159 -72
- data/lib/countries/data/subdivisions/SN.yaml +233 -88
- data/lib/countries/data/subdivisions/SO.yaml +311 -144
- data/lib/countries/data/subdivisions/SR.yaml +158 -80
- data/lib/countries/data/subdivisions/SS.yaml +196 -0
- data/lib/countries/data/subdivisions/ST.yaml +55 -16
- data/lib/countries/data/subdivisions/SV.yaml +231 -112
- data/lib/countries/data/subdivisions/SY.yaml +220 -112
- data/lib/countries/data/subdivisions/SZ.yaml +65 -32
- data/lib/countries/data/subdivisions/TD.yaml +409 -139
- data/lib/countries/data/subdivisions/TG.yaml +75 -40
- data/lib/countries/data/subdivisions/TH.yaml +1451 -616
- data/lib/countries/data/subdivisions/TJ.yaml +100 -24
- data/lib/countries/data/subdivisions/TK.yaml +12 -9
- data/lib/countries/data/subdivisions/TL.yaml +209 -104
- data/lib/countries/data/subdivisions/TM.yaml +116 -40
- data/lib/countries/data/subdivisions/TN.yaml +412 -192
- data/lib/countries/data/subdivisions/TO.yaml +75 -40
- data/lib/countries/data/subdivisions/TR.yaml +1817 -648
- data/lib/countries/data/subdivisions/TT.yaml +296 -113
- data/lib/countries/data/subdivisions/TV.yaml +133 -59
- data/lib/countries/data/subdivisions/TW.yaml +467 -164
- data/lib/countries/data/subdivisions/TZ.yaml +661 -208
- data/lib/countries/data/subdivisions/UA.yaml +505 -216
- data/lib/countries/data/subdivisions/UG.yaml +2269 -640
- data/lib/countries/data/subdivisions/UM.yaml +207 -72
- data/lib/countries/data/subdivisions/US.yaml +1635 -483
- data/lib/countries/data/subdivisions/UY.yaml +367 -152
- data/lib/countries/data/subdivisions/UZ.yaml +289 -113
- data/lib/countries/data/subdivisions/VC.yaml +101 -48
- data/lib/countries/data/subdivisions/VE.yaml +456 -200
- data/lib/countries/data/subdivisions/VN.yaml +3664 -2996
- data/lib/countries/data/subdivisions/VU.yaml +98 -48
- data/lib/countries/data/subdivisions/WF.yaml +63 -0
- data/lib/countries/data/subdivisions/WS.yaml +200 -88
- data/lib/countries/data/subdivisions/YE.yaml +375 -152
- data/lib/countries/data/subdivisions/ZA.yaml +238 -72
- data/lib/countries/data/subdivisions/ZM.yaml +157 -72
- data/lib/countries/data/subdivisions/ZW.yaml +152 -73
- data/lib/countries/data/translation_corrections.yaml +24 -7
- data/lib/countries/data.rb +71 -41
- data/lib/countries/global.rb +15 -3
- data/lib/countries/iso3166.rb +3 -0
- data/lib/countries/kwarg_struct.rb +2 -0
- data/lib/countries/mongoid.rb +5 -0
- data/lib/countries/sources/cldr/downloader.rb +16 -14
- data/lib/countries/sources/cldr/subdivision.rb +4 -0
- data/lib/countries/sources/cldr/subdivision_updater.rb +24 -17
- data/lib/countries/sources/local/cached_loader.rb +5 -0
- data/lib/countries/sources/local/subdivision.rb +6 -2
- data/lib/countries/sources.rb +2 -0
- data/lib/countries/structure.rb +4 -6
- data/lib/countries/subdivision.rb +2 -0
- data/lib/countries/tasks/geocoding.rake +21 -19
- data/lib/countries/tasks/postal_codes.rake +50 -0
- data/lib/countries/timezones.rb +9 -4
- data/lib/countries/translations.rb +5 -4
- data/lib/countries/version.rb +3 -1
- data/lib/countries.rb +2 -1
- data/spec/00_global_spec.rb +2 -0
- data/spec/configuration_spec.rb +11 -5
- data/spec/country_spec.rb +232 -69
- data/spec/data_spec.rb +35 -29
- data/spec/mongoid_spec.rb +2 -2
- data/spec/perf_spec.rb +16 -16
- data/spec/spec_helper.rb +2 -0
- data/spec/subdivision_spec.rb +6 -4
- data/spec/thread_safety_spec.rb +47 -0
- data/spec/timezone_spec.rb +2 -0
- metadata +31 -52
- data/.travis.yml +0 -15
- data/lib/countries/data/subdivisions/AS.yaml +0 -66
- data/lib/countries/data/subdivisions/AX.yaml +0 -40
- data/lib/countries/data/subdivisions/FO.yaml +0 -79
- data/lib/countries/data/subdivisions/GG.yaml +0 -144
- data/lib/countries/data/subdivisions/GU.yaml +0 -248
- data/lib/countries/data/subdivisions/HK.yaml +0 -235
- data/lib/countries/data/subdivisions/IM.yaml +0 -313
- data/lib/countries/data/subdivisions/JE.yaml +0 -157
- data/lib/countries/data/subdivisions/KY.yaml +0 -73
- data/lib/countries/data/subdivisions/MP.yaml +0 -53
- data/lib/countries/data/subdivisions/MS.yaml +0 -40
- data/lib/countries/data/subdivisions/NC.yaml +0 -40
- data/lib/countries/data/subdivisions/PF.yaml +0 -66
- data/lib/countries/data/subdivisions/PM.yaml +0 -27
- data/lib/countries/data/subdivisions/PR.yaml +0 -1015
- data/lib/countries/data/subdivisions/TF.yaml +0 -49
- data/lib/countries/data/subdivisions/VI.yaml +0 -40
- data/lib/countries/data/subdivisions/YT.yaml +0 -222
- data/lib/countries/setup.rb +0 -18
data/spec/country_spec.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
NUM_OF_COUNTRIES = 249
|
|
@@ -43,12 +43,14 @@ describe ISO3166::Country do
|
|
|
43
43
|
expect(country.alpha3).to eq('USA')
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
it 'should return 3166
|
|
47
|
-
expect(country.
|
|
46
|
+
it 'should return 3166 iso_short_name' do
|
|
47
|
+
expect(country.iso_short_name).to eq('United States of America')
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
it 'should return alternate names' do
|
|
51
|
-
expect(country.
|
|
51
|
+
expect(country.unofficial_names).to eq(['United States', 'USA', 'Murica',
|
|
52
|
+
'Vereinigte Staaten von Amerika', 'États-Unis',
|
|
53
|
+
'Estados Unidos', 'アメリカ合衆国', 'Verenigde Staten'])
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
it 'should return translations' do
|
|
@@ -65,15 +67,7 @@ describe ISO3166::Country do
|
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
it 'should return bounds' do
|
|
68
|
-
expect(country.bounds['northeast']['lat']).to eq(71.
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it 'should return the decimal Latitude' do
|
|
72
|
-
expect(country.latitude_dec).to eq('39.44325637817383')
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
it 'should return the decimal Longitude' do
|
|
76
|
-
expect(country.longitude_dec).to eq('-98.95733642578125')
|
|
70
|
+
expect(country.bounds['northeast']['lat']).to eq(71.3577635769)
|
|
77
71
|
end
|
|
78
72
|
|
|
79
73
|
it 'should return continent' do
|
|
@@ -85,8 +79,18 @@ describe ISO3166::Country do
|
|
|
85
79
|
end
|
|
86
80
|
|
|
87
81
|
it 'knows when a country does not require postal codes' do
|
|
88
|
-
|
|
89
|
-
expect(
|
|
82
|
+
antarctica = ISO3166::Country.search('AQ')
|
|
83
|
+
expect(antarctica.postal_code).to eq(false)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
it 'knows about the country postal code format' do
|
|
87
|
+
expect(country.postal_code_format).to_not be_nil
|
|
88
|
+
|
|
89
|
+
regex = Regexp.new(country.postal_code_format)
|
|
90
|
+
expect(regex).to match('12345-6789')
|
|
91
|
+
|
|
92
|
+
antarctica = ISO3166::Country.search('AQ')
|
|
93
|
+
expect(antarctica.postal_code_format).to be_nil
|
|
90
94
|
end
|
|
91
95
|
|
|
92
96
|
it 'should return region' do
|
|
@@ -121,7 +125,7 @@ describe ISO3166::Country do
|
|
|
121
125
|
let(:country) { ISO3166::Country.search('BE') }
|
|
122
126
|
|
|
123
127
|
it 'should return its local names based on its languages' do
|
|
124
|
-
expect(country.local_names).to match_array(%w
|
|
128
|
+
expect(country.local_names).to match_array(%w[België Belgique Belgien])
|
|
125
129
|
end
|
|
126
130
|
|
|
127
131
|
it 'should return its first local name' do
|
|
@@ -134,7 +138,7 @@ describe ISO3166::Country do
|
|
|
134
138
|
before do
|
|
135
139
|
ISO3166::Data.register(
|
|
136
140
|
alpha2: 'BR2',
|
|
137
|
-
|
|
141
|
+
iso_short_name: 'Brazil',
|
|
138
142
|
languages_official: %w(pt-BR),
|
|
139
143
|
translations: {
|
|
140
144
|
'pt-BR' => 'Translation for pt-BR',
|
|
@@ -158,7 +162,7 @@ describe ISO3166::Country do
|
|
|
158
162
|
before do
|
|
159
163
|
ISO3166::Data.register(
|
|
160
164
|
alpha2: 'BR2',
|
|
161
|
-
|
|
165
|
+
iso_short_name: 'Brazil',
|
|
162
166
|
languages_official: %w(pt-BR),
|
|
163
167
|
translations: {
|
|
164
168
|
'pt' => 'Translation for pt'
|
|
@@ -223,11 +227,11 @@ describe ISO3166::Country do
|
|
|
223
227
|
end
|
|
224
228
|
|
|
225
229
|
it 'should return a hash with all sub divisions' do
|
|
226
|
-
expect(country.subdivisions.size).to eq(
|
|
230
|
+
expect(country.subdivisions.size).to eq(57)
|
|
227
231
|
end
|
|
228
232
|
|
|
229
233
|
it 'should be available through states' do
|
|
230
|
-
expect(country.states.size).to eq(
|
|
234
|
+
expect(country.states.size).to eq(57)
|
|
231
235
|
end
|
|
232
236
|
|
|
233
237
|
it 'should be a subdivision object' do
|
|
@@ -238,6 +242,10 @@ describe ISO3166::Country do
|
|
|
238
242
|
expect(virginia.name).to eq('Virginia')
|
|
239
243
|
end
|
|
240
244
|
|
|
245
|
+
it 'should have a code' do
|
|
246
|
+
expect(virginia.code).to eq('VA')
|
|
247
|
+
end
|
|
248
|
+
|
|
241
249
|
it 'should behave like a hash' do
|
|
242
250
|
expect(virginia['name']).to eq('Virginia')
|
|
243
251
|
end
|
|
@@ -253,7 +261,7 @@ describe ISO3166::Country do
|
|
|
253
261
|
end
|
|
254
262
|
|
|
255
263
|
it 'should return an alphabetized list of subdivision names translated to current locale with codes' do
|
|
256
|
-
ISO3166.configuration.locales = [
|
|
264
|
+
ISO3166.configuration.locales = %i[es de en]
|
|
257
265
|
|
|
258
266
|
subdivisions = ISO3166::Country.search('EG').subdivision_names_with_codes(:es)
|
|
259
267
|
expect(subdivisions).to be_an(Array)
|
|
@@ -309,7 +317,7 @@ describe ISO3166::Country do
|
|
|
309
317
|
end
|
|
310
318
|
|
|
311
319
|
it 'should allow to customize each country representation passing a block to the method' do
|
|
312
|
-
countries = ISO3166::Country.all { |country, data| [data['
|
|
320
|
+
countries = ISO3166::Country.all { |country, data| [data['iso_short_name'], country, data['country_code']] }
|
|
313
321
|
expect(countries).to be_an(Array)
|
|
314
322
|
expect(countries.first).to be_an(Array)
|
|
315
323
|
expect(countries.first.size).to eq(3)
|
|
@@ -335,6 +343,26 @@ describe ISO3166::Country do
|
|
|
335
343
|
expect(countries.first).to eq('Aruba')
|
|
336
344
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
337
345
|
end
|
|
346
|
+
|
|
347
|
+
context 'with custom countries' do
|
|
348
|
+
before do
|
|
349
|
+
ISO3166::Data.register(
|
|
350
|
+
alpha2: 'XX',
|
|
351
|
+
iso_short_name: 'Custom Country',
|
|
352
|
+
translations: { 'en' => 'Custom Country' }
|
|
353
|
+
)
|
|
354
|
+
end
|
|
355
|
+
|
|
356
|
+
it 'should include custom registered countries' do
|
|
357
|
+
custom_country = ISO3166::Country.find_by_alpha2('XX')[1]
|
|
358
|
+
countries = ISO3166::Country.all_translated
|
|
359
|
+
expect(countries).to include(custom_country['iso_short_name'])
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
after do
|
|
363
|
+
ISO3166::Data.unregister('XX')
|
|
364
|
+
end
|
|
365
|
+
end
|
|
338
366
|
end
|
|
339
367
|
|
|
340
368
|
describe 'all_names_with_codes' do
|
|
@@ -345,11 +373,11 @@ describe ISO3166::Country do
|
|
|
345
373
|
expect(countries.first[0]).to be_a(String)
|
|
346
374
|
expect(countries.first[0]).to eq('Afghanistan')
|
|
347
375
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
348
|
-
expect(countries.any?{|pair| !pair[0].html_safe?}).to eq(false)
|
|
376
|
+
expect(countries.any? { |pair| !pair[0].html_safe? }).to eq(false)
|
|
349
377
|
end
|
|
350
378
|
|
|
351
379
|
it 'should return an alphabetized list of all country names translated to current locale with ISOCODE alpha2' do
|
|
352
|
-
ISO3166.configuration.locales = [
|
|
380
|
+
ISO3166.configuration.locales = %i[es de en]
|
|
353
381
|
|
|
354
382
|
countries = ISO3166::Country.all_names_with_codes(:es)
|
|
355
383
|
expect(countries).to be_an(Array)
|
|
@@ -369,7 +397,7 @@ describe ISO3166::Country do
|
|
|
369
397
|
end
|
|
370
398
|
|
|
371
399
|
it 'should return an alphabetized list of all country names translated to current locale with ISOCODE alpha2' do
|
|
372
|
-
ISO3166.configuration.locales = [
|
|
400
|
+
ISO3166.configuration.locales = %i[es de en]
|
|
373
401
|
|
|
374
402
|
countries = ISO3166::Country.all_names_with_codes(:es)
|
|
375
403
|
expect(countries).to be_an(Array)
|
|
@@ -381,7 +409,7 @@ describe ISO3166::Country do
|
|
|
381
409
|
|
|
382
410
|
describe 'translation' do
|
|
383
411
|
it 'should return the localized name for a country to the selected locale' do
|
|
384
|
-
ISO3166.configuration.locales = [
|
|
412
|
+
ISO3166.configuration.locales = %i[es de en]
|
|
385
413
|
countries = ISO3166::Country.new(:de).translation('de')
|
|
386
414
|
expect(countries).to be_an(String)
|
|
387
415
|
expect(countries).to eq('Deutschland')
|
|
@@ -400,7 +428,7 @@ describe ISO3166::Country do
|
|
|
400
428
|
|
|
401
429
|
context 'should return variant locales' do
|
|
402
430
|
it 'should return different value for Chinese variants' do
|
|
403
|
-
ISO3166.configuration.locales = [
|
|
431
|
+
ISO3166.configuration.locales = %i[zh-cn zh-hk zh-tw]
|
|
404
432
|
name_cn = ISO3166::Country['TW'].translation('zh-cn')
|
|
405
433
|
name_hk = ISO3166::Country['TW'].translation('zh-hk')
|
|
406
434
|
name_tw = ISO3166::Country['TW'].translation('zh-tw')
|
|
@@ -408,7 +436,7 @@ describe ISO3166::Country do
|
|
|
408
436
|
end
|
|
409
437
|
|
|
410
438
|
it 'should return different value for Portuguese variants' do
|
|
411
|
-
ISO3166.configuration.locales = [
|
|
439
|
+
ISO3166.configuration.locales = %i[pt pt-br]
|
|
412
440
|
name_pt = ISO3166::Country['SG'].translation('pt')
|
|
413
441
|
name_br = ISO3166::Country['SG'].translation('pt-br')
|
|
414
442
|
expect([name_pt, name_br].uniq.size).to eql 2
|
|
@@ -421,7 +449,7 @@ describe ISO3166::Country do
|
|
|
421
449
|
countries = ISO3166::Country.translations('fr')
|
|
422
450
|
expect(countries).to be_an(Hash)
|
|
423
451
|
expect(countries.first[0]).to eq('AW')
|
|
424
|
-
expect(countries.first).to eq(%w
|
|
452
|
+
expect(countries.first).to eq(%w[AW Aruba])
|
|
425
453
|
# countries missing the desired locale will not be added to the list
|
|
426
454
|
# so all 250 countries may not be returned, 'fr' returns 249, for example
|
|
427
455
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
@@ -431,7 +459,7 @@ describe ISO3166::Country do
|
|
|
431
459
|
countries = ISO3166::Country.translations
|
|
432
460
|
expect(countries).to be_an(Hash)
|
|
433
461
|
expect(countries.first[0]).to eq('AW')
|
|
434
|
-
expect(countries.first).to eq(%w
|
|
462
|
+
expect(countries.first).to eq(%w[AW Aruba])
|
|
435
463
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
436
464
|
end
|
|
437
465
|
end
|
|
@@ -515,7 +543,7 @@ describe ISO3166::Country do
|
|
|
515
543
|
end
|
|
516
544
|
|
|
517
545
|
it 'also performs searches with regexps and forces it to ignore case' do
|
|
518
|
-
spain_data = ISO3166::Country.find_all_by(:
|
|
546
|
+
spain_data = ISO3166::Country.find_all_by(:unofficial_names, /Españ/)
|
|
519
547
|
expect(spain_data).to be_a Hash
|
|
520
548
|
expect(spain_data.keys).to eq(['ES'])
|
|
521
549
|
end
|
|
@@ -527,7 +555,7 @@ describe ISO3166::Country do
|
|
|
527
555
|
case lookup.length
|
|
528
556
|
when 2 then ISO3166::Country.find_all_by(:alpha2, lookup)
|
|
529
557
|
when 3 then ISO3166::Country.find_all_by(:alpha3, lookup)
|
|
530
|
-
else ISO3166::Country.find_all_by(:
|
|
558
|
+
else ISO3166::Country.find_all_by(:iso_short_name, lookup)
|
|
531
559
|
end
|
|
532
560
|
end
|
|
533
561
|
expect(Time.now - start).to be < 1
|
|
@@ -535,22 +563,22 @@ describe ISO3166::Country do
|
|
|
535
563
|
end
|
|
536
564
|
|
|
537
565
|
describe 'hash finder methods' do
|
|
538
|
-
context "when search name in '
|
|
539
|
-
subject { ISO3166::Country.
|
|
566
|
+
context "when search name in 'iso_short_name'" do
|
|
567
|
+
subject { ISO3166::Country.find_by_iso_short_name('Poland') }
|
|
540
568
|
it 'should return' do
|
|
541
569
|
expect(subject.first).to eq('PL')
|
|
542
570
|
end
|
|
543
571
|
end
|
|
544
572
|
|
|
545
|
-
context "when search lowercase name in '
|
|
546
|
-
subject { ISO3166::Country.
|
|
573
|
+
context "when search lowercase name in 'iso_short_name'" do
|
|
574
|
+
subject { ISO3166::Country.find_by_iso_short_name('poland') }
|
|
547
575
|
it 'should return' do
|
|
548
576
|
expect(subject.first).to eq('PL')
|
|
549
577
|
end
|
|
550
578
|
end
|
|
551
579
|
|
|
552
|
-
context "when search name with comma in '
|
|
553
|
-
subject { ISO3166::Country.
|
|
580
|
+
context "when search name with comma in 'iso_short_name'" do
|
|
581
|
+
subject { ISO3166::Country.find_by_iso_short_name(country_name) }
|
|
554
582
|
|
|
555
583
|
context 'with Republic of Korea' do
|
|
556
584
|
let(:country_name) { 'Korea, Republic of' }
|
|
@@ -575,7 +603,7 @@ describe ISO3166::Country do
|
|
|
575
603
|
end
|
|
576
604
|
|
|
577
605
|
context 'when search lowercase multibyte name found' do
|
|
578
|
-
subject { ISO3166::Country.
|
|
606
|
+
subject { ISO3166::Country.find_country_by_unofficial_names('россия') }
|
|
579
607
|
|
|
580
608
|
it 'should be a country instance' do
|
|
581
609
|
expect(subject).to be_a(ISO3166::Country)
|
|
@@ -584,7 +612,7 @@ describe ISO3166::Country do
|
|
|
584
612
|
end
|
|
585
613
|
|
|
586
614
|
context 'when search lowercase multibyte name found' do
|
|
587
|
-
subject { ISO3166::Country.
|
|
615
|
+
subject { ISO3166::Country.find_country_by_unofficial_names(/россия/) }
|
|
588
616
|
|
|
589
617
|
it 'should be a country instance' do
|
|
590
618
|
expect(subject).to be_a(ISO3166::Country)
|
|
@@ -593,7 +621,7 @@ describe ISO3166::Country do
|
|
|
593
621
|
end
|
|
594
622
|
|
|
595
623
|
context 'when accents are not used' do
|
|
596
|
-
subject { ISO3166::Country.
|
|
624
|
+
subject { ISO3166::Country.find_country_by_unofficial_names('emirats Arabes Unis') }
|
|
597
625
|
|
|
598
626
|
it 'should be a country instance' do
|
|
599
627
|
expect(subject).to be_a(ISO3166::Country)
|
|
@@ -601,8 +629,20 @@ describe ISO3166::Country do
|
|
|
601
629
|
end
|
|
602
630
|
end
|
|
603
631
|
|
|
604
|
-
context "when search name in '
|
|
605
|
-
subject { ISO3166::Country.
|
|
632
|
+
context "when search name in 'unofficial_names'" do
|
|
633
|
+
subject { ISO3166::Country.find_by_unofficial_names('Polonia') }
|
|
634
|
+
it 'should return' do
|
|
635
|
+
expect(subject.first).to eq('PL')
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
context "when search name in 'translated_names'" do
|
|
640
|
+
before do
|
|
641
|
+
ISO3166.configure do |config|
|
|
642
|
+
config.locales = [:bs]
|
|
643
|
+
end
|
|
644
|
+
end
|
|
645
|
+
subject { ISO3166::Country.find_by_translated_names('Poljska') }
|
|
606
646
|
it 'should return' do
|
|
607
647
|
expect(subject.first).to eq('PL')
|
|
608
648
|
end
|
|
@@ -610,7 +650,9 @@ describe ISO3166::Country do
|
|
|
610
650
|
|
|
611
651
|
context 'when finding by invalid attribute' do
|
|
612
652
|
it 'should raise an error' do
|
|
613
|
-
expect { ISO3166::Country.find_by_invalid('invalid') }.to
|
|
653
|
+
expect { ISO3166::Country.find_by_invalid('invalid') }.to(
|
|
654
|
+
raise_error(RuntimeError, "Invalid attribute name 'invalid'")
|
|
655
|
+
)
|
|
614
656
|
end
|
|
615
657
|
end
|
|
616
658
|
|
|
@@ -635,7 +677,7 @@ describe ISO3166::Country do
|
|
|
635
677
|
|
|
636
678
|
describe 'country finder methods' do
|
|
637
679
|
context 'when search name found' do
|
|
638
|
-
let(:uk) { ISO3166::Country.
|
|
680
|
+
let(:uk) { ISO3166::Country.find_country_by_unofficial_names('United Kingdom') }
|
|
639
681
|
|
|
640
682
|
it 'should be a country instance' do
|
|
641
683
|
expect(uk).to be_a(ISO3166::Country)
|
|
@@ -644,7 +686,7 @@ describe ISO3166::Country do
|
|
|
644
686
|
end
|
|
645
687
|
|
|
646
688
|
context 'when search lowercase name found' do
|
|
647
|
-
let(:uk) { ISO3166::Country.
|
|
689
|
+
let(:uk) { ISO3166::Country.find_country_by_unofficial_names('united kingdom') }
|
|
648
690
|
|
|
649
691
|
it 'should be a country instance' do
|
|
650
692
|
expect(uk).to be_a(ISO3166::Country)
|
|
@@ -653,7 +695,7 @@ describe ISO3166::Country do
|
|
|
653
695
|
end
|
|
654
696
|
|
|
655
697
|
context 'when the search term contains comma' do
|
|
656
|
-
let(:korea) { ISO3166::Country.
|
|
698
|
+
let(:korea) { ISO3166::Country.find_country_by_unofficial_names('Korea, Republic of') }
|
|
657
699
|
|
|
658
700
|
it 'should be a country instance' do
|
|
659
701
|
expect(korea).to be_a(ISO3166::Country)
|
|
@@ -675,6 +717,49 @@ describe ISO3166::Country do
|
|
|
675
717
|
end
|
|
676
718
|
end
|
|
677
719
|
|
|
720
|
+
describe '#find_country_by_any_name' do
|
|
721
|
+
context 'when search name found' do
|
|
722
|
+
let(:uk) { ISO3166::Country.find_country_by_any_name('United Kingdom') }
|
|
723
|
+
|
|
724
|
+
it 'should be a country instance' do
|
|
725
|
+
expect(uk).to be_a(ISO3166::Country)
|
|
726
|
+
expect(uk.alpha2).to eq('GB')
|
|
727
|
+
end
|
|
728
|
+
end
|
|
729
|
+
|
|
730
|
+
context 'when search lowercase name found' do
|
|
731
|
+
let(:uk) { ISO3166::Country.find_country_by_any_name('united kingdom') }
|
|
732
|
+
|
|
733
|
+
it 'should be a country instance' do
|
|
734
|
+
expect(uk).to be_a(ISO3166::Country)
|
|
735
|
+
expect(uk.alpha2).to eq('GB')
|
|
736
|
+
end
|
|
737
|
+
end
|
|
738
|
+
|
|
739
|
+
context 'when the search term contains comma' do
|
|
740
|
+
let(:korea) { ISO3166::Country.find_country_by_any_name('Korea, Republic of') }
|
|
741
|
+
|
|
742
|
+
it 'should be a country instance' do
|
|
743
|
+
expect(korea).to be_a(ISO3166::Country)
|
|
744
|
+
expect(korea.alpha2).to eq('KR')
|
|
745
|
+
end
|
|
746
|
+
end
|
|
747
|
+
|
|
748
|
+
context 'when search translation found' do
|
|
749
|
+
before do
|
|
750
|
+
ISO3166.configure do |config|
|
|
751
|
+
config.locales = [:bs]
|
|
752
|
+
end
|
|
753
|
+
end
|
|
754
|
+
let(:uk) { ISO3166::Country.find_country_by_any_name('Velika Britanija') }
|
|
755
|
+
|
|
756
|
+
it 'should be a country instance' do
|
|
757
|
+
expect(uk).to be_a(ISO3166::Country)
|
|
758
|
+
expect(uk.alpha2).to eq('GB')
|
|
759
|
+
end
|
|
760
|
+
end
|
|
761
|
+
end
|
|
762
|
+
|
|
678
763
|
context 'regression test for #388' do
|
|
679
764
|
let(:no_country) { ISO3166::Country.find_country_by_translated_names(nil) }
|
|
680
765
|
|
|
@@ -691,8 +776,9 @@ describe ISO3166::Country do
|
|
|
691
776
|
expect { uk }.to raise_error(RuntimeError)
|
|
692
777
|
end
|
|
693
778
|
end
|
|
779
|
+
|
|
694
780
|
context 'when search name not found' do
|
|
695
|
-
let(:bogus) { ISO3166::Country.
|
|
781
|
+
let(:bogus) { ISO3166::Country.find_country_by_unofficial_names('Does not exist') }
|
|
696
782
|
|
|
697
783
|
it 'should be a country instance' do
|
|
698
784
|
expect(bogus).to eq(nil)
|
|
@@ -701,7 +787,7 @@ describe ISO3166::Country do
|
|
|
701
787
|
|
|
702
788
|
# Spot checks #243
|
|
703
789
|
context 'when search name not found' do
|
|
704
|
-
let(:belgium) { ISO3166::Country.
|
|
790
|
+
let(:belgium) { ISO3166::Country.find_country_by_unofficial_names('Belgium') }
|
|
705
791
|
|
|
706
792
|
it 'should be a country instance' do
|
|
707
793
|
expect(belgium.alpha2).to eq('BE')
|
|
@@ -710,7 +796,7 @@ describe ISO3166::Country do
|
|
|
710
796
|
|
|
711
797
|
# Spot checks #240
|
|
712
798
|
context 'when search name not found' do
|
|
713
|
-
let(:canada) { ISO3166::Country.
|
|
799
|
+
let(:canada) { ISO3166::Country.find_country_by_unofficial_names('Canada') }
|
|
714
800
|
|
|
715
801
|
it 'should be a country instance' do
|
|
716
802
|
expect(canada.alpha2).to eq('CA')
|
|
@@ -719,7 +805,7 @@ describe ISO3166::Country do
|
|
|
719
805
|
|
|
720
806
|
# Spot checks #241
|
|
721
807
|
context 'when search name not found' do
|
|
722
|
-
let(:israel) { ISO3166::Country.
|
|
808
|
+
let(:israel) { ISO3166::Country.find_country_by_unofficial_names('Israel') }
|
|
723
809
|
|
|
724
810
|
it 'should be a country instance' do
|
|
725
811
|
expect(israel.alpha2).to eq('IL')
|
|
@@ -728,7 +814,7 @@ describe ISO3166::Country do
|
|
|
728
814
|
|
|
729
815
|
# Spot checks #241
|
|
730
816
|
context 'when search name not found' do
|
|
731
|
-
let(:israel) { ISO3166::Country.
|
|
817
|
+
let(:israel) { ISO3166::Country.find_by_iso_short_name('Israel') }
|
|
732
818
|
|
|
733
819
|
it 'should be a country instance' do
|
|
734
820
|
expect(israel[0]).to eq('IL')
|
|
@@ -737,7 +823,7 @@ describe ISO3166::Country do
|
|
|
737
823
|
|
|
738
824
|
# Spot checks #241
|
|
739
825
|
context 'when search name not found' do
|
|
740
|
-
let(:israel) { ISO3166::Country.find_all_by(:
|
|
826
|
+
let(:israel) { ISO3166::Country.find_all_by(:iso_short_name, 'Israel') }
|
|
741
827
|
|
|
742
828
|
it 'should be a country instance' do
|
|
743
829
|
expect(israel.size).to eq(1)
|
|
@@ -747,8 +833,9 @@ describe ISO3166::Country do
|
|
|
747
833
|
|
|
748
834
|
context 'when finding by invalid attribute' do
|
|
749
835
|
it 'should raise an error' do
|
|
750
|
-
expect { ISO3166::Country.find_country_by_invalid('invalid') }.to
|
|
751
|
-
|
|
836
|
+
expect { ISO3166::Country.find_country_by_invalid('invalid') }.to(
|
|
837
|
+
raise_error(RuntimeError, "Invalid attribute name 'invalid'")
|
|
838
|
+
)
|
|
752
839
|
end
|
|
753
840
|
end
|
|
754
841
|
|
|
@@ -770,10 +857,49 @@ describe ISO3166::Country do
|
|
|
770
857
|
end
|
|
771
858
|
end
|
|
772
859
|
|
|
860
|
+
describe 'finder methods respond_to_missing?' do
|
|
861
|
+
subject { ISO3166::Country.respond_to?(method_name) }
|
|
862
|
+
describe 'find_all_by' do
|
|
863
|
+
context 'find by a valid Country attribute' do
|
|
864
|
+
let(:method_name) { :find_all_by_currency }
|
|
865
|
+
it { is_expected.to be true }
|
|
866
|
+
end
|
|
867
|
+
|
|
868
|
+
context 'find by an invalid attribute' do
|
|
869
|
+
let(:method_name) { :find_all_by_invalid }
|
|
870
|
+
it { is_expected.to be false }
|
|
871
|
+
end
|
|
872
|
+
end
|
|
873
|
+
|
|
874
|
+
describe 'hash finder methods' do
|
|
875
|
+
context 'find by a valid Country attribute' do
|
|
876
|
+
let(:method_name) { :find_by_iso_short_name }
|
|
877
|
+
it { is_expected.to be true }
|
|
878
|
+
end
|
|
879
|
+
|
|
880
|
+
context 'find by an invalid attribute' do
|
|
881
|
+
let(:method_name) { :find_by_invalid }
|
|
882
|
+
it { is_expected.to be false }
|
|
883
|
+
end
|
|
884
|
+
end
|
|
885
|
+
|
|
886
|
+
describe 'country finder methods' do
|
|
887
|
+
context 'find country by a valid Country attribute' do
|
|
888
|
+
let(:method_name) { :find_country_by_alpha3 }
|
|
889
|
+
it { is_expected.to be true }
|
|
890
|
+
end
|
|
891
|
+
|
|
892
|
+
context 'find by an invalid attribute' do
|
|
893
|
+
let(:method_name) { :find_country_by_invalid }
|
|
894
|
+
it { is_expected.to be false }
|
|
895
|
+
end
|
|
896
|
+
end
|
|
897
|
+
end
|
|
898
|
+
|
|
773
899
|
describe 'names in Data' do
|
|
774
|
-
it 'should be unique (to allow .
|
|
900
|
+
it 'should be unique (to allow .find_by_any_name work properly)' do
|
|
775
901
|
names = ISO3166::Data.cache.map do |_k, v|
|
|
776
|
-
[v['
|
|
902
|
+
[v['iso_short_name'], v['unofficial_names']].flatten.uniq
|
|
777
903
|
end.flatten
|
|
778
904
|
|
|
779
905
|
expect(names.size).to eq(names.uniq.size)
|
|
@@ -828,6 +954,23 @@ describe ISO3166::Country do
|
|
|
828
954
|
end
|
|
829
955
|
end
|
|
830
956
|
|
|
957
|
+
describe 'in_esm?' do
|
|
958
|
+
let(:netherlands) { ISO3166::Country.search('NL') }
|
|
959
|
+
let(:switzerland) { ISO3166::Country.search('CH') }
|
|
960
|
+
|
|
961
|
+
it 'should return false for countries without esm_member or eea_member flag' do
|
|
962
|
+
expect(country.in_esm?).to be_falsey
|
|
963
|
+
end
|
|
964
|
+
|
|
965
|
+
it 'should return true for countries with eea_member flag set to true' do
|
|
966
|
+
expect(netherlands.in_esm?).to be_truthy
|
|
967
|
+
end
|
|
968
|
+
|
|
969
|
+
it 'should return true for countries with esm_member flag set to true' do
|
|
970
|
+
expect(switzerland.in_esm?).to be_truthy
|
|
971
|
+
end
|
|
972
|
+
end
|
|
973
|
+
|
|
831
974
|
describe 'gec' do
|
|
832
975
|
it 'should return the country\'s GEC code' do
|
|
833
976
|
expect(ISO3166::Country.new('NA').gec).to eql 'WA'
|
|
@@ -839,7 +982,7 @@ describe ISO3166::Country do
|
|
|
839
982
|
end
|
|
840
983
|
|
|
841
984
|
describe 'to_s' do
|
|
842
|
-
it 'should return the country
|
|
985
|
+
it 'should return the country iso_short_name' do
|
|
843
986
|
expect(ISO3166::Country.new('GB').to_s).to eq('United Kingdom of Great Britain and Northern Ireland')
|
|
844
987
|
end
|
|
845
988
|
end
|
|
@@ -853,7 +996,7 @@ describe ISO3166::Country do
|
|
|
853
996
|
|
|
854
997
|
it 'should contain all keys for vat_rates' do
|
|
855
998
|
expect(belgium.vat_rates).to be_a(Hash)
|
|
856
|
-
expect(belgium.vat_rates.keys).to eq(%w
|
|
999
|
+
expect(belgium.vat_rates.keys).to eq(%w[standard reduced super_reduced parking])
|
|
857
1000
|
end
|
|
858
1001
|
|
|
859
1002
|
it 'should return an array of reduced vat rates' do
|
|
@@ -880,30 +1023,30 @@ describe ISO3166::Country do
|
|
|
880
1023
|
|
|
881
1024
|
describe 'Added country names to search by' do
|
|
882
1025
|
it 'should return country code for Democratic Republic of the Congo' do
|
|
883
|
-
expect(ISO3166::Country.
|
|
1026
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('Democratic Republic of the Congo').alpha2).to eq 'CD'
|
|
884
1027
|
end
|
|
885
1028
|
it 'should return country code for Ivory Coast' do
|
|
886
|
-
expect(ISO3166::Country.
|
|
1029
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('Ivory Coast').alpha2).to eq 'CI'
|
|
887
1030
|
end
|
|
888
1031
|
it 'should return Pakistan code for Guinea Bissau' do
|
|
889
|
-
expect(ISO3166::Country.
|
|
1032
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('Guinea Bissau').alpha2).to eq 'GW'
|
|
890
1033
|
end
|
|
891
1034
|
it 'should return Pakistan code for St Kitts and Nevis' do
|
|
892
|
-
expect(ISO3166::Country.
|
|
1035
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('St Kitts and Nevis').alpha2).to eq 'KN'
|
|
893
1036
|
end
|
|
894
1037
|
it 'should return Pakistan code for St Lucia' do
|
|
895
|
-
expect(ISO3166::Country.
|
|
896
|
-
expect(ISO3166::Country.
|
|
1038
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('St Lucia').alpha2).to eq 'LC'
|
|
1039
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('St. Lucia').alpha2).to eq 'LC'
|
|
897
1040
|
end
|
|
898
1041
|
it 'should return Pakistan code for Turks and Caicos' do
|
|
899
|
-
expect(ISO3166::Country.
|
|
1042
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('Turks and Caicos').alpha2).to eq 'TC'
|
|
900
1043
|
end
|
|
901
1044
|
it 'should return Pakistan code for St Vincent Grenadines' do
|
|
902
|
-
expect(ISO3166::Country.
|
|
903
|
-
expect(ISO3166::Country.
|
|
1045
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('St Vincent Grenadines').alpha2).to eq 'VC'
|
|
1046
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('St. Vincent Grenadines').alpha2).to eq 'VC'
|
|
904
1047
|
end
|
|
905
1048
|
it 'should return country code for Palestinian Authority' do
|
|
906
|
-
expect(ISO3166::Country.
|
|
1049
|
+
expect(ISO3166::Country.find_country_by_unofficial_names('Palestinian Authority').alpha2).to eq 'PS'
|
|
907
1050
|
end
|
|
908
1051
|
end
|
|
909
1052
|
|
|
@@ -921,4 +1064,24 @@ describe ISO3166::Country do
|
|
|
921
1064
|
expect(countries.all? { |country| country.un_locode.length == 2 }).to be
|
|
922
1065
|
end
|
|
923
1066
|
end
|
|
1067
|
+
|
|
1068
|
+
describe '.pluck' do
|
|
1069
|
+
let(:args) { [] }
|
|
1070
|
+
|
|
1071
|
+
subject { ISO3166::Country.pluck(*args) }
|
|
1072
|
+
|
|
1073
|
+
it 'returns empty arrays' do
|
|
1074
|
+
expect(subject.first).to be_empty
|
|
1075
|
+
expect(subject.last).to be_empty
|
|
1076
|
+
end
|
|
1077
|
+
|
|
1078
|
+
context "when asking for alpha2, alpha3 and iso_short_name" do
|
|
1079
|
+
let(:args) { [:alpha2, :alpha3, :iso_short_name] }
|
|
1080
|
+
|
|
1081
|
+
it 'returns the correct values' do
|
|
1082
|
+
expect(subject.first).to eq(%w[AD AND Andorra])
|
|
1083
|
+
expect(subject.last).to eq(%w[ZW ZWE Zimbabwe])
|
|
1084
|
+
end
|
|
1085
|
+
end
|
|
1086
|
+
end
|
|
924
1087
|
end
|