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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b689d67277b1896cc6810ad8782f6f1584965ca
|
4
|
+
data.tar.gz: 49813c4c5797c0449c3adbeeef9b872288d3a387
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 989a54adf89519d22899fec6d74fc0ba7296fee1c8797676a88095aee3fd6132f2edd9355e23733d5127f9fbf9320033950d4e6706e13f9e02b32d17a3c3bef7
|
7
|
+
data.tar.gz: 33fe7849f6b2d03e358a56e1228d1b43282d3e87cd6bfc273526f4dd308bdb8b3acb7c35aef115930551c5f619243e894ad6ce0917a2ef53d5eb2ec7fea21499
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -11,6 +11,15 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
11
11
|
- Add Configuration methods to force locales to load
|
12
12
|
- Dropped currencies gem in favor of money
|
13
13
|
- Add Time Zone Support
|
14
|
+
- DATA STRUCTURE CHANGES
|
15
|
+
-COUNTRY
|
16
|
+
- BREAKING CHANGES
|
17
|
+
- names: => unofficial_names
|
18
|
+
- languages: => official_languages
|
19
|
+
- lat/lng fields are nested under a "geo" key
|
20
|
+
- + spoken_languages
|
21
|
+
- +
|
22
|
+
|
14
23
|
|
15
24
|
## 1.2.5 @ 2016-01-22
|
16
25
|
- Rebuilding cache
|
data/README.markdown
CHANGED
@@ -4,16 +4,19 @@ Countries
|
|
4
4
|
Countries is a collection of all sorts of useful information for every country in the ISO 3166 standard. It contains info for the following standards ISO3166-1(countries), ISO3166-2(states/subdivisions), ISO4217(currency) and E.164(phone numbers). I will add any country based data I can get access to. I hope this to be a repository for all country based information.
|
5
5
|
|
6
6
|
[![Gem Version](https://badge.fury.io/rb/countries.svg)](https://badge.fury.io/rb/countries)
|
7
|
-
[![Build Status](https://travis-ci.org/hexorx/countries.svg)](https://travis-ci.org/hexorx/countries) [![Dependency Status](https://gemnasium.com/hexorx/countries.svg)](https://gemnasium.com/hexorx/countries) [![Code Climate](https://codeclimate.com/github/hexorx/countries.svg)](https://codeclimate.com/github/hexorx/countries)
|
8
|
-
|
7
|
+
[![Build Status](https://travis-ci.org/hexorx/countries.svg)](https://travis-ci.org/hexorx/countries) [![Dependency Status](https://gemnasium.com/hexorx/countries.svg)](https://gemnasium.com/hexorx/countries) [![Code Climate](https://codeclimate.com/github/hexorx/countries.svg)](https://codeclimate.com/github/hexorx/countries)[![Test Coverage](https://codeclimate.com/github/hexorx/countries/badges/coverage.svg)](https://codeclimate.com/github/hexorx/countries/coverage)
|
9
8
|
Installation
|
10
9
|
------------
|
11
10
|
|
11
|
+
``` bash
|
12
12
|
gem install countries
|
13
|
+
```
|
13
14
|
|
14
15
|
If you’re in Rails 2.3 or earlier, place this in your environment.rb:
|
15
16
|
|
17
|
+
``` ruby
|
16
18
|
config.gem 'countries'
|
19
|
+
```
|
17
20
|
|
18
21
|
Or you can install via bundler Gemfile if you are using Rails 3:
|
19
22
|
|
@@ -38,10 +41,12 @@ Basic Usage
|
|
38
41
|
|
39
42
|
Simply load a new country object using Country.new(*alpha2*) or the shortcut Country[*alpha2*]. An example works best.
|
40
43
|
|
41
|
-
|
44
|
+
``` ruby
|
45
|
+
c = ISO3166::Country.new('US')
|
42
46
|
|
43
|
-
|
44
|
-
|
47
|
+
# with global Country Helper
|
48
|
+
c = Country['US']
|
49
|
+
```
|
45
50
|
|
46
51
|
Configuration
|
47
52
|
|
@@ -51,27 +56,32 @@ By default we load I18n.available_locales if I18n is present, otherwise only [:e
|
|
51
56
|
|
52
57
|
You can add all the locales like this.
|
53
58
|
|
54
|
-
|
55
|
-
|
56
|
-
|
59
|
+
``` ruby
|
60
|
+
ISO3166.configure do |config|
|
61
|
+
config.locales = [:af, :am, :ar, :as, :az, :be, :bg, :bn, :br, :bs, :ca, :cs, :cy, :da, :de, :dz, :el, :en, :eo, :es, :et, :eu, :fa, :fi, :fo, :fr, :ga, :gl, :gu, :he, :hi, :hr, :hu, :hy, :ia, :id, :is, :it, :ja, :ka, :kk, :km, :kn, :ko, :ku, :lt, :lv, :mi, :mk, :ml, :mn, :mr, :ms, :mt, :nb, :ne, :nl, :nn, :oc, :or, :pa, :pl, :ps, :pt, :ro, :ru, :rw, :si, :sk, :sl, :so, :sq, :sr, :sv, :sw, :ta, :te, :th, :ti, :tk, :tl, :tr, :tt, :ug, :uk, :ve, :vi, :wa, :wo, :xh, :zh, :zu]
|
62
|
+
end
|
63
|
+
```
|
57
64
|
|
58
65
|
or something a bit more simple
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
66
|
+
``` ruby
|
67
|
+
ISO3166.configure do |config|
|
68
|
+
config.locales = [:en, :de, :fr, :es]
|
69
|
+
end
|
70
|
+
```
|
63
71
|
|
64
72
|
Attribute-Based Finder Methods
|
65
73
|
------------
|
66
74
|
|
67
75
|
You can lookup a country or an array of countries using any of the data attributes via the find\_country\_by_*attribute* dynamic methods:
|
68
76
|
|
69
|
-
|
70
|
-
|
71
|
-
|
77
|
+
``` ruby
|
78
|
+
c = ISO3166::Country.find_country_by_name('united states')
|
79
|
+
list = ISO3166::Country.find_all_countries_by_region('Americas')
|
80
|
+
c = ISO3166::Country.find_country_by_alpha3('can')
|
81
|
+
```
|
72
82
|
|
73
|
-
For a list of available attributes please see ISO3166::
|
74
|
-
Note: searches are *case insensitive*.
|
83
|
+
For a list of available attributes please see ISO3166::DEFAULT_COUNTRY_HASH.
|
84
|
+
Note: searches are *case insensitive and ignore accents*.
|
75
85
|
|
76
86
|
Country Info
|
77
87
|
------------
|
@@ -86,7 +96,7 @@ Country Info
|
|
86
96
|
Names & Translations
|
87
97
|
|
88
98
|
c.name #=> "United States"
|
89
|
-
c.
|
99
|
+
c.unofficial_names #=> ["United States of America", "Vereinigte Staaten von Amerika", "États-Unis", "Estados Unidos"]
|
90
100
|
|
91
101
|
# Get the names for a country translated to its local languages
|
92
102
|
c = Country[:BE]
|
@@ -104,64 +114,97 @@ Country Info
|
|
104
114
|
|
105
115
|
Subdivisions & States
|
106
116
|
|
107
|
-
|
108
|
-
|
109
|
-
|
117
|
+
``` ruby
|
118
|
+
c.subdivisions #=> {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
|
119
|
+
c.states #=> {"CO" => {"name" => "Colorado", "names" => "Colorado"}, ... }
|
120
|
+
```
|
110
121
|
Location
|
111
122
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
123
|
+
``` ruby
|
124
|
+
c.latitude #=> "38 00 N"
|
125
|
+
c.longitude #=> "97 00 W"
|
126
|
+
c.latitude_dec #=> 39.44325637817383
|
127
|
+
c.longitude_dec #=> -98.95733642578125
|
116
128
|
|
117
|
-
|
118
|
-
|
129
|
+
c.region #=> "Americas"
|
130
|
+
c.subregion #=> "Northern America"
|
131
|
+
```
|
119
132
|
|
120
|
-
|
133
|
+
Timezones **(optional)**
|
121
134
|
|
122
|
-
|
135
|
+
Add tzinfo to your gemfile, ensure it's required, Countries will not do this for you.
|
123
136
|
|
124
137
|
gem 'tzinfo', '~> 1.2', '>= 1.2.2'
|
125
138
|
|
126
|
-
|
127
|
-
|
139
|
+
``` ruby
|
140
|
+
c.timezones.zone_identifiers #=> ["America/New_York", "America/Detroit", "America/Kentucky/Louisville", ...]
|
141
|
+
c.timezones.zone_info # see [tzinfo docs]( http://www.rubydoc.info/gems/tzinfo/TZInfo/CountryInfo)
|
142
|
+
c.timezones # see [tzinfo docs]( http://www.rubydoc.info/gems/tzinfo/TZInfo/Country)
|
143
|
+
```
|
128
144
|
|
129
|
-
|
145
|
+
Telephone Routing (E164)
|
130
146
|
|
131
|
-
|
147
|
+
``` ruby
|
148
|
+
c.country_code #=> "1"
|
149
|
+
c.national_destination_code_lengths #=> 3
|
150
|
+
c.national_number_lengths #=> 10
|
151
|
+
c.international_prefix #=> "011"
|
152
|
+
c.national_prefix #=> "1"
|
153
|
+
```
|
132
154
|
|
133
|
-
|
134
|
-
c.national_destination_code_lengths #=> 3
|
135
|
-
c.national_number_lengths #=> 10
|
136
|
-
c.international_prefix #=> "011"
|
137
|
-
c.national_prefix #=> "1"
|
155
|
+
Boundry Boxes
|
138
156
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
157
|
+
``` ruby
|
158
|
+
c.min_longitude #=> '45'
|
159
|
+
c.min_latitude #=> '22.166667'
|
160
|
+
c.max_longitude #=> '58'
|
161
|
+
c.max_latitude #=> '26.133333'
|
162
|
+
```
|
145
163
|
|
146
164
|
European Union Membership
|
147
165
|
|
148
|
-
|
166
|
+
``` ruby
|
167
|
+
c.in_eu? #=> false
|
168
|
+
```
|
149
169
|
|
150
170
|
Currencies
|
151
171
|
----------
|
152
172
|
|
153
173
|
Countries now uses the [Money](https://github.com/RubyMoney/money) gem. What this means is you now get back a Money::Currency object that gives you access to all the currency information.
|
154
174
|
|
155
|
-
|
156
|
-
|
157
|
-
|
175
|
+
``` ruby
|
176
|
+
c.currency.iso_code #=> 'USD'
|
177
|
+
c.currency.name #=> 'Dollars'
|
178
|
+
c.currency.symbol #=> '$'
|
179
|
+
```
|
158
180
|
|
159
181
|
Address Formatting
|
160
182
|
------------------
|
161
183
|
|
162
184
|
A template for formatting addresses is available through the address_format method. These templates are compatible with the [Liquid][] template system.
|
163
185
|
|
164
|
-
|
186
|
+
``` ruby
|
187
|
+
c.address_format #=> "{{recipient}}\n{{street}}\n{{city}} {{region}} {{postalcode}}\n{{country}}"
|
188
|
+
```
|
189
|
+
|
190
|
+
Loading Custom Data
|
191
|
+
-------
|
192
|
+
As of 2.0 countries supports loading custom countries / overriding data in it's data set, though if you choose to do this please contribute back to the upstream repo!
|
193
|
+
|
194
|
+
Any country registered this way will have it's data available for searching etc... If you are overriding an existing country, for cultural reasons, our code uses a simple merge, not a deep merge so you will need to __bring in all data you wish to be available__. Bringing in an existing country will also remove it from the internal management of translations, __all registered countries will remain in memory__.
|
195
|
+
|
196
|
+
``` ruby
|
197
|
+
ISO3166::Data.register(
|
198
|
+
alpha2: "LOL",
|
199
|
+
name: 'Happy Country'
|
200
|
+
translations: {
|
201
|
+
'EN' => "Happy Country",
|
202
|
+
'DE' => "glückliches Land"
|
203
|
+
}
|
204
|
+
)
|
205
|
+
|
206
|
+
ISO3166::Country.new('LOL').name = 'Happy Country'
|
207
|
+
```
|
165
208
|
|
166
209
|
Mongoid
|
167
210
|
-------
|
@@ -176,41 +219,36 @@ Adds native support for searching/saving by a country object or alpha2 code.
|
|
176
219
|
|
177
220
|
Searching:
|
178
221
|
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
# By object
|
184
|
-
british_things = Things.where(country: Country.find_by_name('United Kingdom')[1])
|
185
|
-
british_things.first.country.name # => "United Kingdom"
|
222
|
+
```ruby
|
223
|
+
# By alpha2
|
224
|
+
british_things = Things.where(country: 'GB')
|
225
|
+
british_things.first.country.name # => "United Kingdom"
|
186
226
|
|
227
|
+
# By object
|
228
|
+
british_things = Things.where(country: Country.find_by_name('United Kingdom')[1])
|
229
|
+
british_things.first.country.name # => "United Kingdom"
|
230
|
+
```
|
187
231
|
Saving:
|
188
232
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
233
|
+
```ruby
|
234
|
+
# By alpha2
|
235
|
+
british_thing = Thing.new(country: 'GB')
|
236
|
+
british_thing.save!
|
237
|
+
british_thing.country.name # => "United Kingdom"
|
193
238
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
239
|
+
# By object
|
240
|
+
british_thing = Thing.new(country: Country.find_by_name('United Kingdom')[1])
|
241
|
+
british_thing.save!
|
242
|
+
british_thing.country.name # => "United Kingdom"
|
243
|
+
```
|
198
244
|
|
199
245
|
Note that the database stores only the alpha2 code and rebuilds the object when queried. To return the country name by default you can override the reader method in your model:
|
200
246
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
----
|
207
|
-
|
208
|
-
* State select
|
209
|
-
* Class methods for looking up information
|
210
|
-
* Default country
|
211
|
-
* Exclude countries
|
212
|
-
* Preferred countries
|
213
|
-
* Whitelist countries
|
247
|
+
``` ruby
|
248
|
+
def country
|
249
|
+
super.name
|
250
|
+
end
|
251
|
+
```
|
214
252
|
|
215
253
|
Note on Patches/Pull Requests
|
216
254
|
-----------------------------
|
@@ -235,7 +273,7 @@ the next ```rake update_cache```
|
|
235
273
|
Copyright
|
236
274
|
---------
|
237
275
|
|
238
|
-
Copyright (c)
|
276
|
+
Copyright (c) 2016 hexorx. See LICENSE for details.
|
239
277
|
|
240
278
|
|
241
279
|
[Teliax]: http://teliax.com
|
data/Rakefile
CHANGED
@@ -11,16 +11,37 @@ end
|
|
11
11
|
|
12
12
|
task default: [:spec]
|
13
13
|
|
14
|
-
|
15
|
-
task :clean_yaml do
|
14
|
+
task :update_yaml_structure do
|
16
15
|
require 'yaml'
|
17
16
|
|
18
|
-
|
17
|
+
require 'pry'
|
18
|
+
|
19
|
+
d = Dir['lib/countries/data/subdivisions/*.yaml']
|
19
20
|
d.each do |file|
|
20
|
-
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
puts "checking : #{file}"
|
23
|
+
data = YAML.load_file(file)
|
24
|
+
country_key = File.basename(file, ".yaml")
|
25
|
+
|
26
|
+
|
27
|
+
data = data.inject({}) do |a, (k,subd)|
|
28
|
+
a[k] ||= {}
|
29
|
+
a[k]["unofficial_names"] = subd.delete("names")
|
30
|
+
a[k]["translations"] = {'en' => subd['name']}
|
31
|
+
a[k]["geo"] = {
|
32
|
+
"latitude" => subd.delete("latitude"),
|
33
|
+
"longitude" => subd.delete("longitude"),
|
34
|
+
"min_latitude" => subd.delete("min_latitude"),
|
35
|
+
"min_longitude" => subd.delete("min_longitude"),
|
36
|
+
"max_latitude" => subd.delete("max_latitude"),
|
37
|
+
"max_longitude" => subd.delete("max_longitude")
|
38
|
+
}
|
39
|
+
|
40
|
+
a[k] = a[k].merge(subd)
|
41
|
+
a
|
42
|
+
end
|
23
43
|
File.open(file, 'w') { |f| f.write data.to_yaml }
|
44
|
+
begin
|
24
45
|
rescue
|
25
46
|
puts "failed to read #{file}: #{$ERROR_INFO}"
|
26
47
|
end
|
@@ -32,7 +53,7 @@ task :update_cache do
|
|
32
53
|
require 'yaml'
|
33
54
|
require 'i18n_data'
|
34
55
|
|
35
|
-
codes =
|
56
|
+
codes = Dir['lib/countries/data/countries/*.yaml'].map {|x| File.basename(x, File.extname(x))}.uniq
|
36
57
|
data = {}
|
37
58
|
empty_translations_hash = {}
|
38
59
|
corrections = YAML.load_file(File.join(File.dirname(__FILE__), 'lib', 'countries', 'data', 'translation_corrections.yaml')) || {}
|
@@ -52,14 +73,14 @@ task :update_cache do
|
|
52
73
|
end
|
53
74
|
end
|
54
75
|
|
55
|
-
File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'locales', locale), 'wb') { |f| f.write(
|
76
|
+
File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'locales', "#{locale}.json"), 'wb') { |f| f.write(local_names.to_json) }
|
56
77
|
end
|
57
78
|
|
58
79
|
codes.each do |alpha2|
|
59
80
|
data[alpha2] ||= YAML.load_file(File.join(File.dirname(__FILE__), 'lib', 'countries', 'data', 'countries', "#{alpha2}.yaml"))[alpha2]
|
60
81
|
end
|
61
82
|
|
62
|
-
File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'countries'), 'wb') { |f| f.write(
|
83
|
+
File.open(File.join(File.dirname(__FILE__), 'lib', 'countries', 'cache', 'countries.json'), 'wb') { |f| f.write(data.to_json) }
|
63
84
|
end
|
64
85
|
|
65
86
|
require 'geocoder'
|
@@ -97,16 +118,16 @@ task :fetch_subdivisions do
|
|
97
118
|
next unless (result = geocode(location))
|
98
119
|
geometry = result.geometry
|
99
120
|
if geometry['location']
|
100
|
-
state_data[code]['latitude'] = geometry['location']['lat']
|
101
|
-
state_data[code]['longitude'] = geometry['location']['lng']
|
121
|
+
state_data[code]['geo']['latitude'] = geometry['location']['lat']
|
122
|
+
state_data[code]['geo']['longitude'] = geometry['location']['lng']
|
102
123
|
end
|
103
124
|
next unless geometry['bounds']
|
104
|
-
state_data[code]['min_latitude'] = geometry['bounds']['southwest']['lat']
|
105
|
-
state_data[code]['min_longitude'] = geometry['bounds']['southwest']['lng']
|
106
|
-
state_data[code]['max_latitude'] = geometry['bounds']['northeast']['lat']
|
107
|
-
state_data[code]['max_longitude'] = geometry['bounds']['northeast']['lng']
|
125
|
+
state_data[code]['geo']['min_latitude'] = geometry['bounds']['southwest']['lat']
|
126
|
+
state_data[code]['geo']['min_longitude'] = geometry['bounds']['southwest']['lng']
|
127
|
+
state_data[code]['geo']['max_latitude'] = geometry['bounds']['northeast']['lat']
|
128
|
+
state_data[code]['geo']['max_longitude'] = geometry['bounds']['northeast']['lng']
|
108
129
|
end
|
109
130
|
# Write updated YAML for current country
|
110
|
-
File.open(File.join(File.dirname(__FILE__), 'lib', 'data', 'subdivisions', "#{c.alpha2}.yaml"), 'w+') { |f| f.write state_data.to_yaml }
|
131
|
+
File.open(File.join(File.dirname(__FILE__), 'lib','countries', 'data', 'subdivisions', "#{c.alpha2}.yaml"), 'w+') { |f| f.write state_data.to_yaml }
|
111
132
|
end
|
112
133
|
end
|
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "countries"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/countries.gemspec
CHANGED
@@ -17,7 +17,8 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.add_dependency('i18n_data', '~> 0.7.0')
|
19
19
|
gem.add_dependency('money', '~> 6.0')
|
20
|
+
gem.add_dependency('unicode_utils', '~> 1.4')
|
20
21
|
gem.add_development_dependency('rspec', '>= 3')
|
21
|
-
gem.add_development_dependency('
|
22
|
-
|
22
|
+
gem.add_development_dependency('activesupport', '>= 3')
|
23
|
+
|
23
24
|
end
|