countries 2.0.0.pre.2 → 2.0.0.pre.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +9 -0
- data/README.markdown +116 -78
- data/Rakefile +37 -16
- data/bin/console +14 -0
- data/countries.gemspec +3 -2
- data/lib/countries.rb +3 -0
- data/lib/countries/cache/countries.json +1 -0
- data/lib/countries/cache/locales/af.json +1 -0
- data/lib/countries/cache/locales/am.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/az.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/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/cs.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/dz.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/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/ga.json +1 -0
- data/lib/countries/cache/locales/gl.json +1 -0
- data/lib/countries/cache/locales/gu.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/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/is.json +1 -0
- data/lib/countries/cache/locales/it.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/kk.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/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/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/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/pl.json +1 -0
- data/lib/countries/cache/locales/ps.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/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/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/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/zh.json +1 -0
- data/lib/countries/cache/locales/zu.json +1 -0
- data/lib/countries/configuration.rb +3 -1
- data/lib/countries/country.rb +47 -98
- data/lib/countries/country/class_methods.rb +100 -0
- data/lib/countries/data.rb +55 -19
- data/lib/countries/data/countries/AD.yaml +18 -15
- data/lib/countries/data/countries/AE.yaml +22 -19
- data/lib/countries/data/countries/AF.yaml +21 -16
- data/lib/countries/data/countries/AG.yaml +21 -18
- data/lib/countries/data/countries/AI.yaml +17 -14
- data/lib/countries/data/countries/AL.yaml +20 -17
- data/lib/countries/data/countries/AM.yaml +22 -18
- data/lib/countries/data/countries/AN.yaml +23 -19
- data/lib/countries/data/countries/AO.yaml +17 -14
- data/lib/countries/data/countries/AQ.yaml +19 -17
- data/lib/countries/data/countries/AR.yaml +22 -18
- data/lib/countries/data/countries/AS.yaml +23 -19
- data/lib/countries/data/countries/AT.yaml +20 -17
- data/lib/countries/data/countries/AU.yaml +20 -17
- data/lib/countries/data/countries/AW.yaml +17 -14
- data/lib/countries/data/countries/AX.yaml +22 -19
- data/lib/countries/data/countries/AZ.yaml +23 -19
- data/lib/countries/data/countries/BA.yaml +25 -20
- data/lib/countries/data/countries/BB.yaml +18 -15
- data/lib/countries/data/countries/BD.yaml +18 -15
- data/lib/countries/data/countries/BE.yaml +25 -20
- data/lib/countries/data/countries/BF.yaml +19 -15
- data/lib/countries/data/countries/BG.yaml +20 -17
- data/lib/countries/data/countries/BH.yaml +20 -17
- data/lib/countries/data/countries/BI.yaml +19 -15
- data/lib/countries/data/countries/BJ.yaml +18 -15
- data/lib/countries/data/countries/BL.yaml +18 -15
- data/lib/countries/data/countries/BM.yaml +19 -16
- data/lib/countries/data/countries/BN.yaml +17 -14
- data/lib/countries/data/countries/BO.yaml +22 -17
- data/lib/countries/data/countries/BQ.yaml +21 -17
- data/lib/countries/data/countries/BR.yaml +21 -18
- data/lib/countries/data/countries/BS.yaml +18 -15
- data/lib/countries/data/countries/BT.yaml +19 -16
- data/lib/countries/data/countries/BV.yaml +17 -15
- data/lib/countries/data/countries/BW.yaml +19 -15
- data/lib/countries/data/countries/BY.yaml +24 -20
- data/lib/countries/data/countries/BZ.yaml +20 -16
- data/lib/countries/data/countries/CA.yaml +21 -17
- data/lib/countries/data/countries/CC.yaml +19 -16
- data/lib/countries/data/countries/CD.yaml +26 -19
- data/lib/countries/data/countries/CF.yaml +23 -19
- data/lib/countries/data/countries/CG.yaml +22 -18
- data/lib/countries/data/countries/CH.yaml +24 -19
- data/lib/countries/data/countries/CI.yaml +22 -19
- data/lib/countries/data/countries/CK.yaml +21 -18
- data/lib/countries/data/countries/CL.yaml +18 -15
- data/lib/countries/data/countries/CM.yaml +23 -19
- data/lib/countries/data/countries/CN.yaml +18 -15
- data/lib/countries/data/countries/CO.yaml +19 -16
- data/lib/countries/data/countries/CR.yaml +17 -14
- data/lib/countries/data/countries/CU.yaml +18 -15
- data/lib/countries/data/countries/CV.yaml +21 -18
- data/lib/countries/data/countries/CW.yaml +17 -14
- data/lib/countries/data/countries/CX.yaml +22 -17
- data/lib/countries/data/countries/CY.yaml +24 -19
- data/lib/countries/data/countries/CZ.yaml +23 -19
- data/lib/countries/data/countries/DE.yaml +21 -18
- data/lib/countries/data/countries/DJ.yaml +21 -17
- data/lib/countries/data/countries/DK.yaml +21 -18
- data/lib/countries/data/countries/DM.yaml +17 -14
- data/lib/countries/data/countries/DO.yaml +21 -18
- data/lib/countries/data/countries/DZ.yaml +22 -19
- data/lib/countries/data/countries/EC.yaml +18 -15
- data/lib/countries/data/countries/EE.yaml +19 -16
- data/lib/countries/data/countries/EG.yaml +22 -19
- data/lib/countries/data/countries/EH.yaml +23 -19
- data/lib/countries/data/countries/ER.yaml +22 -17
- data/lib/countries/data/countries/ES.yaml +21 -18
- data/lib/countries/data/countries/ET.yaml +21 -18
- data/lib/countries/data/countries/FI.yaml +22 -18
- data/lib/countries/data/countries/FJ.yaml +23 -17
- data/lib/countries/data/countries/FK.yaml +21 -18
- data/lib/countries/data/countries/FM.yaml +20 -17
- data/lib/countries/data/countries/FO.yaml +21 -18
- data/lib/countries/data/countries/FR.yaml +21 -18
- data/lib/countries/data/countries/GA.yaml +19 -16
- data/lib/countries/data/countries/GB.yaml +22 -19
- data/lib/countries/data/countries/GD.yaml +17 -14
- data/lib/countries/data/countries/GE.yaml +20 -17
- data/lib/countries/data/countries/GF.yaml +20 -17
- data/lib/countries/data/countries/GG.yaml +23 -19
- data/lib/countries/data/countries/GH.yaml +17 -14
- data/lib/countries/data/countries/GI.yaml +17 -14
- data/lib/countries/data/countries/GL.yaml +20 -17
- data/lib/countries/data/countries/GM.yaml +17 -14
- data/lib/countries/data/countries/GN.yaml +21 -17
- data/lib/countries/data/countries/GP.yaml +18 -15
- data/lib/countries/data/countries/GQ.yaml +23 -19
- data/lib/countries/data/countries/GR.yaml +21 -18
- data/lib/countries/data/countries/GS.yaml +20 -17
- data/lib/countries/data/countries/GT.yaml +17 -14
- data/lib/countries/data/countries/GU.yaml +20 -15
- data/lib/countries/data/countries/GW.yaml +20 -17
- data/lib/countries/data/countries/GY.yaml +17 -14
- data/lib/countries/data/countries/HK.yaml +20 -16
- data/lib/countries/data/countries/HM.yaml +20 -17
- data/lib/countries/data/countries/HN.yaml +17 -14
- data/lib/countries/data/countries/HR.yaml +22 -19
- data/lib/countries/data/countries/HT.yaml +20 -16
- data/lib/countries/data/countries/HU.yaml +21 -18
- data/lib/countries/data/countries/ID.yaml +20 -17
- data/lib/countries/data/countries/IE.yaml +23 -19
- data/lib/countries/data/countries/IL.yaml +20 -16
- data/lib/countries/data/countries/IM.yaml +22 -18
- data/lib/countries/data/countries/IN.yaml +21 -17
- data/lib/countries/data/countries/IO.yaml +19 -16
- data/lib/countries/data/countries/IQ.yaml +19 -16
- data/lib/countries/data/countries/IR.yaml +20 -17
- data/lib/countries/data/countries/IS.yaml +21 -18
- data/lib/countries/data/countries/IT.yaml +21 -18
- data/lib/countries/data/countries/JE.yaml +19 -15
- data/lib/countries/data/countries/JM.yaml +19 -16
- data/lib/countries/data/countries/JO.yaml +22 -19
- data/lib/countries/data/countries/JP.yaml +19 -16
- data/lib/countries/data/countries/KE.yaml +20 -16
- data/lib/countries/data/countries/KG.yaml +24 -20
- data/lib/countries/data/countries/KH.yaml +21 -18
- data/lib/countries/data/countries/KI.yaml +17 -14
- data/lib/countries/data/countries/KM.yaml +22 -18
- data/lib/countries/data/countries/KN.yaml +23 -20
- data/lib/countries/data/countries/KP.yaml +23 -20
- data/lib/countries/data/countries/KR.yaml +23 -20
- data/lib/countries/data/countries/KW.yaml +20 -17
- data/lib/countries/data/countries/KY.yaml +21 -18
- data/lib/countries/data/countries/KZ.yaml +22 -18
- data/lib/countries/data/countries/LA.yaml +18 -15
- data/lib/countries/data/countries/LB.yaml +23 -19
- data/lib/countries/data/countries/LC.yaml +21 -18
- data/lib/countries/data/countries/LI.yaml +17 -14
- data/lib/countries/data/countries/LK.yaml +19 -15
- data/lib/countries/data/countries/LR.yaml +17 -14
- data/lib/countries/data/countries/LS.yaml +19 -15
- data/lib/countries/data/countries/LT.yaml +22 -19
- data/lib/countries/data/countries/LU.yaml +23 -18
- data/lib/countries/data/countries/LV.yaml +21 -18
- data/lib/countries/data/countries/LY.yaml +23 -20
- data/lib/countries/data/countries/MA.yaml +21 -18
- data/lib/countries/data/countries/MC.yaml +18 -15
- data/lib/countries/data/countries/MD.yaml +22 -19
- data/lib/countries/data/countries/ME.yaml +22 -16
- data/lib/countries/data/countries/MF.yaml +21 -16
- data/lib/countries/data/countries/MG.yaml +21 -17
- data/lib/countries/data/countries/MH.yaml +23 -19
- data/lib/countries/data/countries/MK.yaml +22 -19
- data/lib/countries/data/countries/ML.yaml +17 -14
- data/lib/countries/data/countries/MM.yaml +17 -14
- data/lib/countries/data/countries/MN.yaml +20 -17
- data/lib/countries/data/countries/MO.yaml +21 -17
- data/lib/countries/data/countries/MP.yaml +23 -19
- data/lib/countries/data/countries/MQ.yaml +18 -15
- data/lib/countries/data/countries/MR.yaml +23 -19
- data/lib/countries/data/countries/MS.yaml +17 -14
- data/lib/countries/data/countries/MT.yaml +20 -16
- data/lib/countries/data/countries/MU.yaml +19 -16
- data/lib/countries/data/countries/MV.yaml +20 -17
- data/lib/countries/data/countries/MW.yaml +19 -15
- data/lib/countries/data/countries/MX.yaml +20 -17
- data/lib/countries/data/countries/MY.yaml +22 -18
- data/lib/countries/data/countries/MZ.yaml +18 -15
- data/lib/countries/data/countries/NA.yaml +21 -17
- data/lib/countries/data/countries/NC.yaml +21 -18
- data/lib/countries/data/countries/NE.yaml +18 -15
- data/lib/countries/data/countries/NF.yaml +21 -18
- data/lib/countries/data/countries/NG.yaml +19 -16
- data/lib/countries/data/countries/NI.yaml +17 -14
- data/lib/countries/data/countries/NL.yaml +21 -18
- data/lib/countries/data/countries/NO.yaml +24 -20
- data/lib/countries/data/countries/NP.yaml +19 -16
- data/lib/countries/data/countries/NR.yaml +19 -15
- data/lib/countries/data/countries/NU.yaml +18 -15
- data/lib/countries/data/countries/NZ.yaml +21 -18
- data/lib/countries/data/countries/OM.yaml +19 -16
- data/lib/countries/data/countries/PA.yaml +18 -15
- data/lib/countries/data/countries/PE.yaml +19 -16
- data/lib/countries/data/countries/PF.yaml +21 -18
- data/lib/countries/data/countries/PG.yaml +21 -18
- data/lib/countries/data/countries/PH.yaml +22 -18
- data/lib/countries/data/countries/PK.yaml +20 -16
- data/lib/countries/data/countries/PL.yaml +20 -17
- data/lib/countries/data/countries/PM.yaml +21 -18
- data/lib/countries/data/countries/PN.yaml +18 -15
- data/lib/countries/data/countries/PR.yaml +19 -15
- data/lib/countries/data/countries/PS.yaml +28 -23
- data/lib/countries/data/countries/PT.yaml +17 -14
- data/lib/countries/data/countries/PW.yaml +17 -14
- data/lib/countries/data/countries/PY.yaml +19 -15
- data/lib/countries/data/countries/QA.yaml +19 -16
- data/lib/countries/data/countries/RE.yaml +19 -16
- data/lib/countries/data/countries/RO.yaml +21 -18
- data/lib/countries/data/countries/RS.yaml +20 -17
- data/lib/countries/data/countries/RU.yaml +23 -20
- data/lib/countries/data/countries/RW.yaml +21 -16
- data/lib/countries/data/countries/SA.yaml +22 -19
- data/lib/countries/data/countries/SB.yaml +21 -18
- data/lib/countries/data/countries/SC.yaml +20 -16
- data/lib/countries/data/countries/SD.yaml +23 -19
- data/lib/countries/data/countries/SE.yaml +21 -18
- data/lib/countries/data/countries/SG.yaml +22 -17
- data/lib/countries/data/countries/SH.yaml +21 -18
- data/lib/countries/data/countries/SI.yaml +21 -18
- data/lib/countries/data/countries/SJ.yaml +21 -18
- data/lib/countries/data/countries/SK.yaml +21 -18
- data/lib/countries/data/countries/SL.yaml +17 -14
- data/lib/countries/data/countries/SM.yaml +18 -15
- data/lib/countries/data/countries/SN.yaml +18 -15
- data/lib/countries/data/countries/SO.yaml +21 -17
- data/lib/countries/data/countries/SR.yaml +18 -15
- data/lib/countries/data/countries/SS.yaml +21 -17
- data/lib/countries/data/countries/ST.yaml +21 -18
- data/lib/countries/data/countries/SV.yaml +18 -15
- data/lib/countries/data/countries/SX.yaml +19 -15
- data/lib/countries/data/countries/SY.yaml +23 -20
- data/lib/countries/data/countries/SZ.yaml +21 -17
- data/lib/countries/data/countries/TC.yaml +23 -20
- data/lib/countries/data/countries/TD.yaml +23 -19
- data/lib/countries/data/countries/TF.yaml +21 -18
- data/lib/countries/data/countries/TG.yaml +17 -14
- data/lib/countries/data/countries/TH.yaml +19 -16
- data/lib/countries/data/countries/TJ.yaml +23 -19
- data/lib/countries/data/countries/TK.yaml +19 -16
- data/lib/countries/data/countries/TL.yaml +21 -18
- data/lib/countries/data/countries/TM.yaml +21 -17
- data/lib/countries/data/countries/TN.yaml +24 -20
- data/lib/countries/data/countries/TO.yaml +19 -15
- data/lib/countries/data/countries/TR.yaml +21 -18
- data/lib/countries/data/countries/TT.yaml +21 -18
- data/lib/countries/data/countries/TV.yaml +17 -14
- data/lib/countries/data/countries/TW.yaml +18 -15
- data/lib/countries/data/countries/TZ.yaml +22 -18
- data/lib/countries/data/countries/UA.yaml +22 -19
- data/lib/countries/data/countries/UG.yaml +20 -16
- data/lib/countries/data/countries/UM.yaml +21 -18
- data/lib/countries/data/countries/US.yaml +21 -18
- data/lib/countries/data/countries/UY.yaml +17 -14
- data/lib/countries/data/countries/UZ.yaml +23 -19
- data/lib/countries/data/countries/VA.yaml +24 -20
- data/lib/countries/data/countries/VC.yaml +23 -20
- data/lib/countries/data/countries/VE.yaml +17 -14
- data/lib/countries/data/countries/VG.yaml +22 -19
- data/lib/countries/data/countries/VI.yaml +22 -19
- data/lib/countries/data/countries/VN.yaml +18 -15
- data/lib/countries/data/countries/VU.yaml +20 -15
- data/lib/countries/data/countries/WF.yaml +21 -18
- data/lib/countries/data/countries/WS.yaml +19 -15
- data/lib/countries/data/countries/YE.yaml +20 -17
- data/lib/countries/data/countries/YT.yaml +17 -14
- data/lib/countries/data/countries/ZA.yaml +31 -19
- data/lib/countries/data/countries/ZM.yaml +19 -16
- data/lib/countries/data/countries/ZW.yaml +22 -17
- data/lib/countries/data/subdivisions/AD.yaml +14 -7
- data/lib/countries/data/subdivisions/AE.yaml +20 -13
- data/lib/countries/data/subdivisions/AF.yaml +72 -34
- data/lib/countries/data/subdivisions/AG.yaml +16 -8
- data/lib/countries/data/subdivisions/AL.yaml +72 -36
- data/lib/countries/data/subdivisions/AM.yaml +115 -70
- data/lib/countries/data/subdivisions/AO.yaml +185 -131
- data/lib/countries/data/subdivisions/AR.yaml +241 -169
- data/lib/countries/data/subdivisions/AT.yaml +97 -70
- data/lib/countries/data/subdivisions/AU.yaml +80 -56
- data/lib/countries/data/subdivisions/AZ.yaml +771 -536
- data/lib/countries/data/subdivisions/BA.yaml +20 -14
- data/lib/countries/data/subdivisions/BB.yaml +110 -77
- data/lib/countries/data/subdivisions/BD.yaml +699 -457
- data/lib/countries/data/subdivisions/BE.yaml +121 -88
- data/lib/countries/data/subdivisions/BF.yaml +453 -314
- data/lib/countries/data/subdivisions/BG.yaml +281 -197
- data/lib/countries/data/subdivisions/BH.yaml +54 -35
- data/lib/countries/data/subdivisions/BI.yaml +164 -116
- data/lib/countries/data/subdivisions/BJ.yaml +122 -86
- data/lib/countries/data/subdivisions/BN.yaml +40 -24
- data/lib/countries/data/subdivisions/BO.yaml +90 -63
- data/lib/countries/data/subdivisions/BQ.yaml +30 -21
- data/lib/countries/data/subdivisions/BR.yaml +270 -185
- data/lib/countries/data/subdivisions/BS.yaml +211 -144
- data/lib/countries/data/subdivisions/BT.yaml +218 -158
- data/lib/countries/data/subdivisions/BW.yaml +91 -64
- data/lib/countries/data/subdivisions/BY.yaml +77 -38
- data/lib/countries/data/subdivisions/BZ.yaml +60 -42
- data/lib/countries/data/subdivisions/CA.yaml +143 -104
- data/lib/countries/data/subdivisions/CD.yaml +114 -81
- data/lib/countries/data/subdivisions/CF.yaml +177 -126
- data/lib/countries/data/subdivisions/CG.yaml +112 -79
- data/lib/countries/data/subdivisions/CH.yaml +282 -204
- data/lib/countries/data/subdivisions/CI.yaml +190 -123
- data/lib/countries/data/subdivisions/CL.yaml +156 -111
- data/lib/countries/data/subdivisions/CM.yaml +102 -72
- data/lib/countries/data/subdivisions/CN.yaml +348 -240
- data/lib/countries/data/subdivisions/CO.yaml +331 -228
- data/lib/countries/data/subdivisions/CR.yaml +70 -49
- data/lib/countries/data/subdivisions/CU.yaml +170 -115
- data/lib/countries/data/subdivisions/CV.yaml +171 -120
- data/lib/countries/data/subdivisions/CY.yaml +60 -42
- data/lib/countries/data/subdivisions/CZ.yaml +148 -106
- data/lib/countries/data/subdivisions/DE.yaml +172 -124
- data/lib/countries/data/subdivisions/DJ.yaml +65 -47
- data/lib/countries/data/subdivisions/DK.yaml +216 -145
- data/lib/countries/data/subdivisions/DM.yaml +100 -70
- data/lib/countries/data/subdivisions/DO.yaml +311 -218
- data/lib/countries/data/subdivisions/DZ.yaml +528 -380
- data/lib/countries/data/subdivisions/EC.yaml +240 -164
- data/lib/countries/data/subdivisions/EE.yaml +156 -111
- data/lib/countries/data/subdivisions/EG.yaml +298 -217
- data/lib/countries/data/subdivisions/EH.yaml +44 -32
- data/lib/countries/data/subdivisions/ER.yaml +60 -42
- data/lib/countries/data/subdivisions/ES.yaml +564 -383
- data/lib/countries/data/subdivisions/ET.yaml +112 -79
- data/lib/countries/data/subdivisions/FI.yaml +64 -24
- data/lib/countries/data/subdivisions/FJ.yaml +50 -35
- data/lib/countries/data/subdivisions/FM.yaml +43 -27
- data/lib/countries/data/subdivisions/FR.yaml +1021 -677
- data/lib/countries/data/subdivisions/GA.yaml +92 -65
- data/lib/countries/data/subdivisions/GB.yaml +2329 -1545
- data/lib/countries/data/subdivisions/GD.yaml +70 -49
- data/lib/countries/data/subdivisions/GE.yaml +128 -92
- data/lib/countries/data/subdivisions/GH.yaml +101 -71
- data/lib/countries/data/subdivisions/GM.yaml +64 -46
- data/lib/countries/data/subdivisions/GN.yaml +341 -235
- data/lib/countries/data/subdivisions/GQ.yaml +90 -59
- data/lib/countries/data/subdivisions/GR.yaml +555 -395
- data/lib/countries/data/subdivisions/GT.yaml +221 -151
- data/lib/countries/data/subdivisions/GW.yaml +91 -60
- data/lib/countries/data/subdivisions/GY.yaml +100 -70
- data/lib/countries/data/subdivisions/HN.yaml +180 -126
- data/lib/countries/data/subdivisions/HR.yaml +232 -169
- data/lib/countries/data/subdivisions/HT.yaml +92 -65
- data/lib/countries/data/subdivisions/HU.yaml +431 -302
- data/lib/countries/data/subdivisions/ID.yaml +333 -234
- data/lib/countries/data/subdivisions/IE.yaml +286 -200
- data/lib/countries/data/subdivisions/IL.yaml +65 -47
- data/lib/countries/data/subdivisions/IN.yaml +365 -257
- data/lib/countries/data/subdivisions/IQ.yaml +197 -143
- data/lib/countries/data/subdivisions/IR.yaml +326 -229
- data/lib/countries/data/subdivisions/IS.yaml +90 -59
- data/lib/countries/data/subdivisions/IT.yaml +1100 -770
- data/lib/countries/data/subdivisions/JM.yaml +140 -98
- data/lib/countries/data/subdivisions/JO.yaml +131 -59
- data/lib/countries/data/subdivisions/JP.yaml +493 -348
- data/lib/countries/data/subdivisions/KE.yaml +80 -40
- data/lib/countries/data/subdivisions/KG.yaml +86 -62
- data/lib/countries/data/subdivisions/KH.yaml +264 -170
- data/lib/countries/data/subdivisions/KI.yaml +31 -18
- data/lib/countries/data/subdivisions/KM.yaml +33 -24
- data/lib/countries/data/subdivisions/KN.yaml +140 -98
- data/lib/countries/data/subdivisions/KP.yaml +150 -90
- data/lib/countries/data/subdivisions/KR.yaml +174 -102
- data/lib/countries/data/subdivisions/KW.yaml +65 -47
- data/lib/countries/data/subdivisions/KZ.yaml +186 -135
- data/lib/countries/data/subdivisions/Ky.yaml +60 -42
- data/lib/countries/data/subdivisions/LA.yaml +195 -135
- data/lib/countries/data/subdivisions/LB.yaml +66 -28
- data/lib/countries/data/subdivisions/LI.yaml +111 -38
- data/lib/countries/data/subdivisions/LK.yaml +266 -191
- data/lib/countries/data/subdivisions/LR.yaml +151 -106
- data/lib/countries/data/subdivisions/LS.yaml +100 -70
- data/lib/countries/data/subdivisions/LT.yaml +106 -76
- data/lib/countries/data/subdivisions/LU.yaml +31 -18
- data/lib/countries/data/subdivisions/LV.yaml +331 -126
- data/lib/countries/data/subdivisions/LY.yaml +342 -226
- data/lib/countries/data/subdivisions/MA.yaml +630 -437
- data/lib/countries/data/subdivisions/MD.yaml +130 -71
- data/lib/countries/data/subdivisions/ME.yaml +212 -149
- data/lib/countries/data/subdivisions/MG.yaml +66 -48
- data/lib/countries/data/subdivisions/MH.yaml +263 -164
- data/lib/countries/data/subdivisions/MK.yaml +854 -599
- data/lib/countries/data/subdivisions/ML.yaml +90 -63
- data/lib/countries/data/subdivisions/MM.yaml +147 -105
- data/lib/countries/data/subdivisions/MN.yaml +235 -169
- data/lib/countries/data/subdivisions/MR.yaml +141 -102
- data/lib/countries/data/subdivisions/MT.yaml +694 -482
- data/lib/countries/data/subdivisions/MU.yaml +170 -115
- data/lib/countries/data/subdivisions/MV.yaml +231 -168
- data/lib/countries/data/subdivisions/MW.yaml +270 -189
- data/lib/countries/data/subdivisions/MX.yaml +320 -220
- data/lib/countries/data/subdivisions/MY.yaml +161 -113
- data/lib/countries/data/subdivisions/MZ.yaml +110 -77
- data/lib/countries/data/subdivisions/NA.yaml +141 -99
- data/lib/countries/data/subdivisions/NE.yaml +81 -57
- data/lib/countries/data/subdivisions/NG.yaml +373 -262
- data/lib/countries/data/subdivisions/NI.yaml +172 -121
- data/lib/countries/data/subdivisions/NL.yaml +122 -86
- data/lib/countries/data/subdivisions/NO.yaml +212 -133
- data/lib/countries/data/subdivisions/NP.yaml +140 -90
- data/lib/countries/data/subdivisions/NR.yaml +141 -99
- data/lib/countries/data/subdivisions/NZ.yaml +171 -120
- data/lib/countries/data/subdivisions/OM.yaml +95 -68
- data/lib/countries/data/subdivisions/PA.yaml +101 -67
- data/lib/countries/data/subdivisions/PE.yaml +264 -182
- data/lib/countries/data/subdivisions/PG.yaml +215 -155
- data/lib/countries/data/subdivisions/PH.yaml +855 -596
- data/lib/countries/data/subdivisions/PK.yaml +80 -56
- data/lib/countries/data/subdivisions/PL.yaml +182 -134
- data/lib/countries/data/subdivisions/PT.yaml +201 -141
- data/lib/countries/data/subdivisions/PW.yaml +162 -110
- data/lib/countries/data/subdivisions/PY.yaml +182 -128
- data/lib/countries/data/subdivisions/QA.yaml +109 -73
- data/lib/countries/data/subdivisions/RO.yaml +443 -317
- data/lib/countries/data/subdivisions/RS.yaml +301 -193
- data/lib/countries/data/subdivisions/RU.yaml +839 -732
- data/lib/countries/data/subdivisions/RW.yaml +50 -35
- data/lib/countries/data/subdivisions/SA.yaml +141 -102
- data/lib/countries/data/subdivisions/SB.yaml +104 -74
- data/lib/countries/data/subdivisions/SC.yaml +230 -161
- data/lib/countries/data/subdivisions/SD.yaml +287 -183
- data/lib/countries/data/subdivisions/SE.yaml +215 -152
- data/lib/countries/data/subdivisions/SG.yaml +50 -31
- data/lib/countries/data/subdivisions/SH.yaml +30 -21
- data/lib/countries/data/subdivisions/SI.yaml +1950 -1367
- data/lib/countries/data/subdivisions/SK.yaml +81 -57
- data/lib/countries/data/subdivisions/SL.yaml +40 -28
- data/lib/countries/data/subdivisions/SM.yaml +92 -65
- data/lib/countries/data/subdivisions/SN.yaml +110 -77
- data/lib/countries/data/subdivisions/SO.yaml +180 -126
- data/lib/countries/data/subdivisions/SR.yaml +100 -70
- data/lib/countries/data/subdivisions/ST.yaml +20 -14
- data/lib/countries/data/subdivisions/SV.yaml +140 -98
- data/lib/countries/data/subdivisions/SY.yaml +153 -99
- data/lib/countries/data/subdivisions/SZ.yaml +41 -29
- data/lib/countries/data/subdivisions/TD.yaml +180 -126
- data/lib/countries/data/subdivisions/TF.yaml +40 -18
- data/lib/countries/data/subdivisions/TG.yaml +50 -35
- data/lib/countries/data/subdivisions/TH.yaml +775 -544
- data/lib/countries/data/subdivisions/TL.yaml +135 -96
- data/lib/countries/data/subdivisions/TM.yaml +64 -46
- data/lib/countries/data/subdivisions/TN.yaml +263 -191
- data/lib/countries/data/subdivisions/TO.yaml +52 -37
- data/lib/countries/data/subdivisions/TR.yaml +842 -599
- data/lib/countries/data/subdivisions/TT.yaml +160 -112
- data/lib/countries/data/subdivisions/TV.yaml +82 -46
- data/lib/countries/data/subdivisions/TW.yaml +235 -150
- data/lib/countries/data/subdivisions/TZ.yaml +265 -187
- data/lib/countries/data/subdivisions/Tj.yaml +33 -24
- data/lib/countries/data/subdivisions/UA.yaml +299 -218
- data/lib/countries/data/subdivisions/UG.yaml +800 -544
- data/lib/countries/data/subdivisions/UM.yaml +90 -59
- data/lib/countries/data/subdivisions/US.yaml +601 -391
- data/lib/countries/data/subdivisions/UY.yaml +161 -113
- data/lib/countries/data/subdivisions/UZ.yaml +154 -112
- data/lib/countries/data/subdivisions/VC.yaml +60 -38
- data/lib/countries/data/subdivisions/VE.yaml +250 -175
- data/lib/countries/data/subdivisions/VN.yaml +641 -449
- data/lib/countries/data/subdivisions/VU.yaml +66 -48
- data/lib/countries/data/subdivisions/WS.yaml +110 -77
- data/lib/countries/data/subdivisions/YE.yaml +203 -142
- data/lib/countries/data/subdivisions/ZA.yaml +95 -68
- data/lib/countries/data/subdivisions/ZM.yaml +90 -63
- data/lib/countries/data/subdivisions/ZW.yaml +100 -70
- data/lib/countries/iso3166.rb +5 -2
- data/lib/countries/kwarg_struct.rb +12 -0
- data/lib/countries/structure.rb +63 -0
- data/lib/countries/subdivision.rb +9 -0
- data/lib/countries/version.rb +1 -1
- data/spec/configuration_spec.rb +4 -1
- data/spec/country_spec.rb +42 -2
- data/spec/data_spec.rb +83 -0
- data/spec/global_spec.rb +2 -2
- data/spec/perf_spec.rb +54 -0
- data/spec/spec_helper.rb +3 -15
- data/spec/timezone_spec.rb +2 -2
- metadata +115 -109
- data/lib/countries/cache/countries +0 -0
- data/lib/countries/cache/locales/af +0 -0
- data/lib/countries/cache/locales/am +0 -0
- data/lib/countries/cache/locales/ar +0 -0
- data/lib/countries/cache/locales/as +0 -0
- data/lib/countries/cache/locales/az +0 -0
- data/lib/countries/cache/locales/be +0 -0
- data/lib/countries/cache/locales/bg +0 -0
- data/lib/countries/cache/locales/bn +0 -0
- data/lib/countries/cache/locales/br +0 -0
- data/lib/countries/cache/locales/bs +0 -0
- data/lib/countries/cache/locales/ca +0 -0
- data/lib/countries/cache/locales/cs +0 -0
- data/lib/countries/cache/locales/cy +0 -0
- data/lib/countries/cache/locales/da +0 -0
- data/lib/countries/cache/locales/de +0 -0
- data/lib/countries/cache/locales/dz +0 -0
- data/lib/countries/cache/locales/el +0 -0
- data/lib/countries/cache/locales/en +0 -0
- data/lib/countries/cache/locales/eo +0 -0
- data/lib/countries/cache/locales/es +0 -0
- data/lib/countries/cache/locales/et +0 -0
- data/lib/countries/cache/locales/eu +0 -0
- data/lib/countries/cache/locales/fa +0 -0
- data/lib/countries/cache/locales/fi +0 -0
- data/lib/countries/cache/locales/fo +0 -0
- data/lib/countries/cache/locales/fr +0 -0
- data/lib/countries/cache/locales/ga +0 -0
- data/lib/countries/cache/locales/gl +0 -0
- data/lib/countries/cache/locales/gu +0 -0
- data/lib/countries/cache/locales/he +0 -0
- data/lib/countries/cache/locales/hi +0 -0
- data/lib/countries/cache/locales/hr +0 -0
- data/lib/countries/cache/locales/hu +0 -0
- data/lib/countries/cache/locales/hy +0 -0
- data/lib/countries/cache/locales/ia +0 -0
- data/lib/countries/cache/locales/id +0 -0
- data/lib/countries/cache/locales/is +0 -0
- data/lib/countries/cache/locales/it +0 -0
- data/lib/countries/cache/locales/ja +0 -0
- data/lib/countries/cache/locales/ka +0 -0
- data/lib/countries/cache/locales/kk +0 -0
- data/lib/countries/cache/locales/km +0 -0
- data/lib/countries/cache/locales/kn +0 -0
- data/lib/countries/cache/locales/ko +0 -0
- data/lib/countries/cache/locales/ku +0 -0
- data/lib/countries/cache/locales/lt +0 -0
- data/lib/countries/cache/locales/lv +0 -0
- data/lib/countries/cache/locales/mi +0 -0
- data/lib/countries/cache/locales/mk +0 -0
- data/lib/countries/cache/locales/ml +0 -0
- data/lib/countries/cache/locales/mn +0 -0
- data/lib/countries/cache/locales/mr +0 -0
- data/lib/countries/cache/locales/ms +0 -0
- data/lib/countries/cache/locales/mt +0 -0
- data/lib/countries/cache/locales/nb +0 -0
- data/lib/countries/cache/locales/ne +0 -0
- data/lib/countries/cache/locales/nl +0 -0
- data/lib/countries/cache/locales/nn +0 -0
- data/lib/countries/cache/locales/oc +0 -0
- data/lib/countries/cache/locales/or +0 -0
- data/lib/countries/cache/locales/pa +0 -0
- data/lib/countries/cache/locales/pl +0 -0
- data/lib/countries/cache/locales/ps +0 -0
- data/lib/countries/cache/locales/pt +0 -0
- data/lib/countries/cache/locales/ro +0 -0
- data/lib/countries/cache/locales/ru +0 -0
- data/lib/countries/cache/locales/rw +0 -0
- data/lib/countries/cache/locales/si +0 -0
- data/lib/countries/cache/locales/sk +0 -0
- data/lib/countries/cache/locales/sl +0 -0
- data/lib/countries/cache/locales/so +0 -0
- data/lib/countries/cache/locales/sq +0 -0
- data/lib/countries/cache/locales/sr +0 -0
- data/lib/countries/cache/locales/sv +0 -0
- data/lib/countries/cache/locales/sw +0 -0
- data/lib/countries/cache/locales/ta +0 -0
- data/lib/countries/cache/locales/te +0 -0
- data/lib/countries/cache/locales/th +0 -0
- data/lib/countries/cache/locales/ti +0 -0
- data/lib/countries/cache/locales/tk +0 -0
- data/lib/countries/cache/locales/tl +0 -0
- data/lib/countries/cache/locales/tr +0 -0
- data/lib/countries/cache/locales/tt +0 -0
- data/lib/countries/cache/locales/ug +0 -0
- data/lib/countries/cache/locales/uk +0 -0
- data/lib/countries/cache/locales/ve +0 -0
- data/lib/countries/cache/locales/vi +0 -0
- data/lib/countries/cache/locales/wa +0 -0
- data/lib/countries/cache/locales/wo +0 -0
- data/lib/countries/cache/locales/xh +0 -0
- data/lib/countries/cache/locales/zh +0 -0
- data/lib/countries/cache/locales/zu +0 -0
- data/lib/countries/country/attr_readers.rb +0 -49
- data/lib/countries/data/countries.yaml +0 -251
@@ -0,0 +1,100 @@
|
|
1
|
+
module ISO3166
|
2
|
+
def ISO3166::Country(country_data_or_country)
|
3
|
+
case country_data_or_country
|
4
|
+
when ISO3166::Country
|
5
|
+
country_data_or_country
|
6
|
+
when String, Symbol
|
7
|
+
ISO3166::Country.search(country_data_or_country)
|
8
|
+
else
|
9
|
+
fail TypeError, "can't convert #{country_data_or_country.class.name} into ISO3166::Country"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module CountryClassMethods
|
14
|
+
def new(country_data)
|
15
|
+
super if country_data.is_a?(Hash) || codes.include?(country_data.to_s.upcase)
|
16
|
+
end
|
17
|
+
|
18
|
+
def codes
|
19
|
+
ISO3166::Data.codes
|
20
|
+
end
|
21
|
+
|
22
|
+
def all(&blk)
|
23
|
+
blk ||= proc { |_alpha2, d| ISO3166::Country.new(d) }
|
24
|
+
ISO3166::Data.cache.map(&blk)
|
25
|
+
end
|
26
|
+
|
27
|
+
alias_method :countries, :all
|
28
|
+
|
29
|
+
def all_translated(locale = 'en')
|
30
|
+
translations(locale).values
|
31
|
+
end
|
32
|
+
|
33
|
+
def all_names_with_codes(locale = 'en')
|
34
|
+
ISO3166::Country.all.map do |c|
|
35
|
+
[(c.translation(locale) || c.name).html_safe, c.alpha2]
|
36
|
+
end.sort_by { |d| d[0] }
|
37
|
+
end
|
38
|
+
|
39
|
+
def translations(locale = 'en')
|
40
|
+
I18nData.countries(locale.upcase)
|
41
|
+
end
|
42
|
+
|
43
|
+
def search(query)
|
44
|
+
country = new(query.to_s.upcase)
|
45
|
+
(country && country.valid?) ? country : nil
|
46
|
+
end
|
47
|
+
|
48
|
+
def [](query)
|
49
|
+
search(query)
|
50
|
+
end
|
51
|
+
|
52
|
+
def method_missing(*m)
|
53
|
+
regex = m.first.to_s.match(/^find_(all_)?(country_|countries_)?by_(.+)/)
|
54
|
+
super unless regex
|
55
|
+
|
56
|
+
countries = find_by(Regexp.last_match[3], m[1], Regexp.last_match[2])
|
57
|
+
Regexp.last_match[1] ? countries : countries.last
|
58
|
+
end
|
59
|
+
|
60
|
+
def find_all_by(attribute, val)
|
61
|
+
attributes, value = parse_attributes(attribute, val)
|
62
|
+
|
63
|
+
ISO3166::Data.cache.select do |_, v|
|
64
|
+
attributes.map do |attr|
|
65
|
+
Array(Country.new(v).send(attr)).any? { |n| value === sterlize_value(n)}
|
66
|
+
end.include?(true)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def sterlize_value(v)
|
71
|
+
if v.is_a?(Regexp)
|
72
|
+
Regexp.new(v.source.unaccent, 'i')
|
73
|
+
else
|
74
|
+
UnicodeUtils.downcase(v.to_s.unaccent)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
protected
|
79
|
+
|
80
|
+
def parse_attributes(attribute, val)
|
81
|
+
fail "Invalid attribute name '#{attribute}'" unless instance_methods.include?(attribute.to_sym)
|
82
|
+
|
83
|
+
attributes = Array(attribute.to_s)
|
84
|
+
if attributes == ['name']
|
85
|
+
attributes << 'unofficial_names'
|
86
|
+
# TODO: Revisit when better data from i18n_data
|
87
|
+
# attributes << 'translated_names'
|
88
|
+
end
|
89
|
+
|
90
|
+
[attributes, sterlize_value(val)]
|
91
|
+
end
|
92
|
+
|
93
|
+
def find_by(attribute, value, obj = nil)
|
94
|
+
find_all_by(attribute.downcase, value).map do |country|
|
95
|
+
obj.nil? ? country : new(country.last)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
data/lib/countries/data.rb
CHANGED
@@ -2,10 +2,12 @@ module ISO3166
|
|
2
2
|
##
|
3
3
|
# Handles building the in memory store of countries data
|
4
4
|
class Data
|
5
|
-
@@cache =
|
5
|
+
@@cache = {}
|
6
|
+
@@registered_data = {}
|
7
|
+
|
6
8
|
def initialize(alpha2)
|
7
|
-
self.class.update_cache
|
8
9
|
@alpha2 = alpha2.to_s.upcase
|
10
|
+
self.class.update_cache
|
9
11
|
end
|
10
12
|
|
11
13
|
def call
|
@@ -13,22 +15,52 @@ module ISO3166
|
|
13
15
|
end
|
14
16
|
|
15
17
|
class << self
|
18
|
+
|
19
|
+
def register(data)
|
20
|
+
alpha2 = data[:alpha2].upcase
|
21
|
+
@@registered_data[alpha2] = \
|
22
|
+
data.inject({}) { |a,(k,v)| a[k.to_s] = v; a }
|
23
|
+
@@cache = @@cache.merge(@@registered_data)
|
24
|
+
end
|
25
|
+
|
26
|
+
def unregister(alpha2)
|
27
|
+
alpha2 = alpha2.to_s.upcase
|
28
|
+
@@cache.delete(alpha2)
|
29
|
+
@@registered_data.delete(alpha2)
|
30
|
+
end
|
31
|
+
|
16
32
|
def cache
|
17
33
|
update_cache
|
18
34
|
end
|
19
35
|
|
20
36
|
def reset
|
21
|
-
@@cache =
|
22
|
-
@@
|
37
|
+
@@cache = {}
|
38
|
+
@@registered_data = {}
|
39
|
+
ISO3166.configuration.loaded_locales = []
|
23
40
|
end
|
24
41
|
|
25
42
|
def codes
|
26
|
-
|
43
|
+
load_data!
|
44
|
+
loaded_codes
|
27
45
|
end
|
28
46
|
|
29
47
|
def update_cache
|
30
|
-
|
31
|
-
|
48
|
+
load_data!
|
49
|
+
sync_translations!
|
50
|
+
@@cache
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def load_data!
|
56
|
+
return @@cache unless @@cache.size == loaded_codes || @@cache.keys.empty?
|
57
|
+
@@cache = load_cache %w(cache countries.json )
|
58
|
+
@@cache = @@cache.merge(@@registered_data)
|
59
|
+
@@cache
|
60
|
+
end
|
61
|
+
|
62
|
+
def sync_translations!
|
63
|
+
return unless cache_flush_required?
|
32
64
|
|
33
65
|
locales_to_remove.each do |locale|
|
34
66
|
unload_translations(locale)
|
@@ -37,13 +69,21 @@ module ISO3166
|
|
37
69
|
locales_to_load.each do |locale|
|
38
70
|
load_translations(locale)
|
39
71
|
end
|
40
|
-
|
41
|
-
@@cache.freeze
|
42
72
|
end
|
43
73
|
|
44
74
|
private
|
75
|
+
|
76
|
+
def loaded_codes
|
77
|
+
(@@cache.keys + @@registered_data.keys).uniq
|
78
|
+
end
|
79
|
+
|
80
|
+
# Codes that we have translations for in dataset
|
81
|
+
def internal_codes
|
82
|
+
loaded_codes - @@registered_data.keys
|
83
|
+
end
|
84
|
+
|
45
85
|
def cache_flush_required?
|
46
|
-
locales_to_load.size
|
86
|
+
locales_to_load.size != 0 || locales_to_remove.size != 0
|
47
87
|
end
|
48
88
|
|
49
89
|
def locales_to_load
|
@@ -63,8 +103,8 @@ module ISO3166
|
|
63
103
|
end
|
64
104
|
|
65
105
|
def load_translations(locale)
|
66
|
-
locale_names =
|
67
|
-
|
106
|
+
locale_names = load_cache(['cache', 'locales', "#{locale}.json"])
|
107
|
+
internal_codes.each do |alpha2|
|
68
108
|
@@cache[alpha2]['translations'] ||= {}
|
69
109
|
@@cache[alpha2]['translations'][locale] = locale_names[alpha2].freeze
|
70
110
|
@@cache[alpha2]['translated_names'] = @@cache[alpha2]['translations'].values.freeze
|
@@ -73,24 +113,20 @@ module ISO3166
|
|
73
113
|
end
|
74
114
|
|
75
115
|
def unload_translations(locale)
|
76
|
-
|
116
|
+
internal_codes.each do |alpha2|
|
77
117
|
@@cache[alpha2]['translations'].delete(locale)
|
78
118
|
@@cache[alpha2]['translated_names'] = @@cache[alpha2]['translations'].values.freeze
|
79
119
|
end
|
80
120
|
ISO3166.configuration.loaded_locales.delete(locale)
|
81
121
|
end
|
82
122
|
|
83
|
-
def
|
84
|
-
|
123
|
+
def load_cache(file_array)
|
124
|
+
JSON.load(File.binread(datafile_path file_array))
|
85
125
|
end
|
86
126
|
|
87
127
|
def datafile_path(file_array)
|
88
128
|
File.join([File.dirname(__FILE__)] + file_array)
|
89
129
|
end
|
90
|
-
|
91
|
-
def load_yaml(file_array)
|
92
|
-
YAML.load_file(datafile_path(file_array))
|
93
|
-
end
|
94
130
|
end
|
95
131
|
end
|
96
132
|
end
|
@@ -4,17 +4,10 @@ AD:
|
|
4
4
|
alpha2: AD
|
5
5
|
alpha3: AND
|
6
6
|
country_code: '376'
|
7
|
-
currency: EUR
|
8
7
|
international_prefix: '00'
|
9
8
|
ioc: AND
|
10
9
|
gec: AN
|
11
|
-
latitude: 42 30 N
|
12
|
-
longitude: 1 30 E
|
13
10
|
name: Andorra
|
14
|
-
names:
|
15
|
-
- Andorre
|
16
|
-
- Andorra
|
17
|
-
- "アンドラ"
|
18
11
|
national_destination_code_lengths:
|
19
12
|
- 2
|
20
13
|
national_number_lengths:
|
@@ -28,13 +21,23 @@ AD:
|
|
28
21
|
subregion: Southern Europe
|
29
22
|
world_region: EMEA
|
30
23
|
un_locode: AD
|
31
|
-
languages:
|
32
|
-
- ca
|
33
24
|
nationality: Andorran
|
34
25
|
postal_code: true
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
26
|
+
unofficial_names:
|
27
|
+
- Andorre
|
28
|
+
- Andorra
|
29
|
+
- "アンドラ"
|
30
|
+
languages_official:
|
31
|
+
- ca
|
32
|
+
languages_spoken:
|
33
|
+
- ca
|
34
|
+
geo:
|
35
|
+
latitude: 42 30 N
|
36
|
+
latitude_dec: '42.5506591796875'
|
37
|
+
longitude: 1 30 E
|
38
|
+
longitude_dec: '1.5762332677841187'
|
39
|
+
max_latitude: '42.65'
|
40
|
+
max_longitude: '1.783333'
|
41
|
+
min_latitude: '42.433333'
|
42
|
+
min_longitude: '1.416667'
|
43
|
+
currency_code: EUR
|
@@ -9,21 +9,10 @@ AE:
|
|
9
9
|
alpha2: AE
|
10
10
|
alpha3: ARE
|
11
11
|
country_code: '971'
|
12
|
-
currency: AED
|
13
12
|
international_prefix: '00'
|
14
13
|
ioc: UAE
|
15
14
|
gec: AE
|
16
|
-
latitude: 24 00 N
|
17
|
-
longitude: 54 00 E
|
18
15
|
name: United Arab Emirates
|
19
|
-
names:
|
20
|
-
- United Arab Emirates
|
21
|
-
- "الإمارات العربية المتحدة"
|
22
|
-
- Vereinigte Arabische Emirate
|
23
|
-
- "Émirats Arabes Unis"
|
24
|
-
- Emiratos Árabes Unidos
|
25
|
-
- "アラブ首長国連邦"
|
26
|
-
- Verenigde Arabische Emiraten
|
27
16
|
national_destination_code_lengths:
|
28
17
|
- 2
|
29
18
|
national_number_lengths:
|
@@ -36,13 +25,27 @@ AE:
|
|
36
25
|
subregion: Western Asia
|
37
26
|
world_region: EMEA
|
38
27
|
un_locode: AE
|
39
|
-
languages:
|
40
|
-
- ar
|
41
28
|
nationality: Emirian
|
42
29
|
postal_code: false
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
30
|
+
unofficial_names:
|
31
|
+
- United Arab Emirates
|
32
|
+
- "الإمارات العربية المتحدة"
|
33
|
+
- Vereinigte Arabische Emirate
|
34
|
+
- "Émirats Arabes Unis"
|
35
|
+
- Emiratos Árabes Unidos
|
36
|
+
- "アラブ首長国連邦"
|
37
|
+
- Verenigde Arabische Emiraten
|
38
|
+
languages_official:
|
39
|
+
- ar
|
40
|
+
languages_spoken:
|
41
|
+
- ar
|
42
|
+
geo:
|
43
|
+
latitude: 24 00 N
|
44
|
+
latitude_dec: '23.684776306152344'
|
45
|
+
longitude: 54 00 E
|
46
|
+
longitude_dec: '54.536643981933594'
|
47
|
+
max_latitude: '26.133333'
|
48
|
+
max_longitude: '58'
|
49
|
+
min_latitude: '22.166667'
|
50
|
+
min_longitude: '45'
|
51
|
+
currency_code: AED
|
@@ -4,17 +4,10 @@ AF:
|
|
4
4
|
alpha2: AF
|
5
5
|
alpha3: AFG
|
6
6
|
country_code: '93'
|
7
|
-
currency: AFN
|
8
7
|
international_prefix: '00'
|
9
8
|
ioc: AFG
|
10
9
|
gec: AF
|
11
|
-
latitude: 33 00 N
|
12
|
-
longitude: 65 00 E
|
13
10
|
name: Afghanistan
|
14
|
-
names:
|
15
|
-
- Afghanistan
|
16
|
-
- Afganistán
|
17
|
-
- "アフガニスタン"
|
18
11
|
national_destination_code_lengths:
|
19
12
|
- 2
|
20
13
|
national_number_lengths:
|
@@ -26,15 +19,27 @@ AF:
|
|
26
19
|
subregion: Southern Asia
|
27
20
|
world_region: APAC
|
28
21
|
un_locode: AF
|
29
|
-
|
22
|
+
nationality: Afghan
|
23
|
+
postal_code: true
|
24
|
+
unofficial_names:
|
25
|
+
- Afghanistan
|
26
|
+
- Afganistán
|
27
|
+
- "アフガニスタン"
|
28
|
+
languages_official:
|
30
29
|
- ps
|
31
30
|
- uz
|
32
31
|
- tk
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
32
|
+
languages_spoken:
|
33
|
+
- ps
|
34
|
+
- uz
|
35
|
+
- tk
|
36
|
+
geo:
|
37
|
+
latitude: 33 00 N
|
38
|
+
latitude_dec: '33.833248138427734'
|
39
|
+
longitude: 65 00 E
|
40
|
+
longitude_dec: '66.02528381347656'
|
41
|
+
max_latitude: '38.483611'
|
42
|
+
max_longitude: '74.8868713067'
|
43
|
+
min_latitude: '29.383333'
|
44
|
+
min_longitude: '60.566667'
|
45
|
+
currency_code: AFN
|
@@ -4,20 +4,10 @@ AG:
|
|
4
4
|
alpha2: AG
|
5
5
|
alpha3: ATG
|
6
6
|
country_code: '1'
|
7
|
-
currency: XCD
|
8
7
|
international_prefix: '011'
|
9
8
|
ioc: ANT
|
10
9
|
gec: AC
|
11
|
-
latitude: 17 03 N
|
12
|
-
longitude: 61 48 W
|
13
10
|
name: Antigua and Barbuda
|
14
|
-
names:
|
15
|
-
- Antigua and Barbuda
|
16
|
-
- Antigua und Barbuda
|
17
|
-
- Antigua et Barbuda
|
18
|
-
- Antigua y Barbuda
|
19
|
-
- "アンティグア・バーブーダ"
|
20
|
-
- Antigua en Barbuda
|
21
11
|
national_destination_code_lengths:
|
22
12
|
- 3
|
23
13
|
national_number_lengths:
|
@@ -28,13 +18,26 @@ AG:
|
|
28
18
|
subregion: Caribbean
|
29
19
|
world_region: AMER
|
30
20
|
un_locode: AG
|
31
|
-
languages:
|
32
|
-
- en
|
33
21
|
nationality: Antiguan, Barbudan
|
34
22
|
postal_code: false
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
23
|
+
unofficial_names:
|
24
|
+
- Antigua and Barbuda
|
25
|
+
- Antigua und Barbuda
|
26
|
+
- Antigua et Barbuda
|
27
|
+
- Antigua y Barbuda
|
28
|
+
- "アンティグア・バーブーダ"
|
29
|
+
- Antigua en Barbuda
|
30
|
+
languages_official:
|
31
|
+
- en
|
32
|
+
languages_spoken:
|
33
|
+
- en
|
34
|
+
geo:
|
35
|
+
latitude: 17 03 N
|
36
|
+
latitude_dec: '17.09273910522461'
|
37
|
+
longitude: 61 48 W
|
38
|
+
longitude_dec: "-61.81040954589844"
|
39
|
+
max_latitude: '17.733333'
|
40
|
+
max_longitude: "-61.666667"
|
41
|
+
min_latitude: '16.916667'
|
42
|
+
min_longitude: "-62.333333"
|
43
|
+
currency_code: XCD
|