countries 5.0.2 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.markdown +13 -7
- data/Rakefile +15 -21
- data/UPGRADE.md +15 -2
- data/countries.gemspec +0 -1
- data/lib/countries/cache/locales/ab.json +1 -1
- data/lib/countries/cache/locales/af.json +1 -1
- data/lib/countries/cache/locales/ak.json +1 -1
- data/lib/countries/cache/locales/am.json +1 -1
- data/lib/countries/cache/locales/an.json +1 -1
- data/lib/countries/cache/locales/ar.json +1 -1
- data/lib/countries/cache/locales/as.json +1 -1
- data/lib/countries/cache/locales/ay.json +1 -1
- data/lib/countries/cache/locales/az.json +1 -1
- data/lib/countries/cache/locales/ba.json +1 -1
- data/lib/countries/cache/locales/be.json +1 -1
- data/lib/countries/cache/locales/bg.json +1 -1
- data/lib/countries/cache/locales/bi.json +1 -1
- data/lib/countries/cache/locales/bn-in.json +1 -1
- data/lib/countries/cache/locales/bn.json +1 -1
- data/lib/countries/cache/locales/br.json +1 -1
- data/lib/countries/cache/locales/bs.json +1 -1
- data/lib/countries/cache/locales/ca.json +1 -1
- data/lib/countries/cache/locales/ce.json +1 -1
- data/lib/countries/cache/locales/ch.json +1 -1
- data/lib/countries/cache/locales/cs.json +1 -1
- data/lib/countries/cache/locales/cv.json +1 -1
- data/lib/countries/cache/locales/cy.json +1 -1
- data/lib/countries/cache/locales/da.json +1 -1
- data/lib/countries/cache/locales/de.json +1 -1
- data/lib/countries/cache/locales/dv.json +1 -1
- data/lib/countries/cache/locales/dz.json +1 -1
- data/lib/countries/cache/locales/ee.json +1 -1
- data/lib/countries/cache/locales/el.json +1 -1
- data/lib/countries/cache/locales/en.json +1 -1
- data/lib/countries/cache/locales/eo.json +1 -1
- data/lib/countries/cache/locales/es.json +1 -1
- data/lib/countries/cache/locales/et.json +1 -1
- data/lib/countries/cache/locales/eu.json +1 -1
- data/lib/countries/cache/locales/fa.json +1 -1
- data/lib/countries/cache/locales/ff.json +1 -1
- data/lib/countries/cache/locales/fi.json +1 -1
- data/lib/countries/cache/locales/fo.json +1 -1
- data/lib/countries/cache/locales/fr.json +1 -1
- data/lib/countries/cache/locales/fy.json +1 -1
- data/lib/countries/cache/locales/ga.json +1 -1
- data/lib/countries/cache/locales/gl.json +1 -1
- data/lib/countries/cache/locales/gn.json +1 -1
- data/lib/countries/cache/locales/gu.json +1 -1
- data/lib/countries/cache/locales/gv.json +1 -1
- data/lib/countries/cache/locales/ha.json +1 -1
- data/lib/countries/cache/locales/he.json +1 -1
- data/lib/countries/cache/locales/hi.json +1 -1
- data/lib/countries/cache/locales/hr.json +1 -1
- data/lib/countries/cache/locales/ht.json +1 -1
- data/lib/countries/cache/locales/hu.json +1 -1
- data/lib/countries/cache/locales/hy.json +1 -1
- data/lib/countries/cache/locales/ia.json +1 -1
- data/lib/countries/cache/locales/id.json +1 -1
- data/lib/countries/cache/locales/io.json +1 -1
- data/lib/countries/cache/locales/is.json +1 -1
- data/lib/countries/cache/locales/it.json +1 -1
- data/lib/countries/cache/locales/iu.json +1 -1
- data/lib/countries/cache/locales/ja.json +1 -1
- data/lib/countries/cache/locales/ka.json +1 -1
- data/lib/countries/cache/locales/ki.json +1 -1
- data/lib/countries/cache/locales/kk.json +1 -1
- data/lib/countries/cache/locales/kl.json +1 -1
- data/lib/countries/cache/locales/km.json +1 -1
- data/lib/countries/cache/locales/kn.json +1 -1
- data/lib/countries/cache/locales/ko.json +1 -1
- data/lib/countries/cache/locales/kv.json +1 -1
- data/lib/countries/cache/locales/kw.json +1 -1
- data/lib/countries/cache/locales/ky.json +1 -1
- data/lib/countries/cache/locales/lo.json +1 -1
- data/lib/countries/cache/locales/lt.json +1 -1
- data/lib/countries/cache/locales/lv.json +1 -1
- data/lib/countries/cache/locales/mi.json +1 -1
- data/lib/countries/cache/locales/mk.json +1 -1
- data/lib/countries/cache/locales/ml.json +1 -1
- data/lib/countries/cache/locales/mn.json +1 -1
- data/lib/countries/cache/locales/mr.json +1 -1
- data/lib/countries/cache/locales/ms.json +1 -1
- data/lib/countries/cache/locales/mt.json +1 -1
- data/lib/countries/cache/locales/my.json +1 -1
- data/lib/countries/cache/locales/na.json +1 -1
- data/lib/countries/cache/locales/nb.json +1 -1
- data/lib/countries/cache/locales/ne.json +1 -1
- data/lib/countries/cache/locales/nl.json +1 -1
- data/lib/countries/cache/locales/nn.json +1 -1
- data/lib/countries/cache/locales/nv.json +1 -1
- data/lib/countries/cache/locales/oc.json +1 -1
- data/lib/countries/cache/locales/or.json +1 -1
- data/lib/countries/cache/locales/pa.json +1 -1
- data/lib/countries/cache/locales/pi.json +1 -1
- data/lib/countries/cache/locales/pl.json +1 -1
- data/lib/countries/cache/locales/ps.json +1 -1
- data/lib/countries/cache/locales/pt-br.json +1 -1
- data/lib/countries/cache/locales/pt.json +1 -1
- data/lib/countries/cache/locales/ro.json +1 -1
- data/lib/countries/cache/locales/ru.json +1 -1
- data/lib/countries/cache/locales/rw.json +1 -1
- data/lib/countries/cache/locales/sc.json +1 -1
- data/lib/countries/cache/locales/sd.json +1 -1
- data/lib/countries/cache/locales/si.json +1 -1
- data/lib/countries/cache/locales/sk.json +1 -1
- data/lib/countries/cache/locales/sl.json +1 -1
- data/lib/countries/cache/locales/so.json +1 -1
- data/lib/countries/cache/locales/sq.json +1 -1
- data/lib/countries/cache/locales/sr.json +1 -1
- data/lib/countries/cache/locales/sv.json +1 -1
- data/lib/countries/cache/locales/sw.json +1 -1
- data/lib/countries/cache/locales/ta.json +1 -1
- data/lib/countries/cache/locales/te.json +1 -1
- data/lib/countries/cache/locales/tg.json +1 -1
- data/lib/countries/cache/locales/th.json +1 -1
- data/lib/countries/cache/locales/ti.json +1 -1
- data/lib/countries/cache/locales/tk.json +1 -1
- data/lib/countries/cache/locales/tl.json +1 -1
- data/lib/countries/cache/locales/tr.json +1 -1
- data/lib/countries/cache/locales/tt.json +1 -1
- data/lib/countries/cache/locales/ug.json +1 -1
- data/lib/countries/cache/locales/uk.json +1 -1
- data/lib/countries/cache/locales/ur.json +1 -1
- data/lib/countries/cache/locales/uz.json +1 -1
- data/lib/countries/cache/locales/ve.json +1 -1
- data/lib/countries/cache/locales/vi.json +1 -1
- data/lib/countries/cache/locales/wa.json +1 -1
- data/lib/countries/cache/locales/wo.json +1 -1
- data/lib/countries/cache/locales/xh.json +1 -1
- data/lib/countries/cache/locales/yo.json +1 -1
- data/lib/countries/cache/locales/zh-cn.json +1 -1
- data/lib/countries/cache/locales/zh-hk.json +1 -1
- data/lib/countries/cache/locales/zh-tw.json +1 -1
- data/lib/countries/cache/locales/zu.json +1 -1
- data/lib/countries/country/class_methods.rb +9 -7
- data/lib/countries/country.rb +29 -3
- data/lib/countries/data/subdivisions/AD.yaml +14 -7
- data/lib/countries/data/subdivisions/AE.yaml +14 -7
- data/lib/countries/data/subdivisions/AF.yaml +196 -201
- data/lib/countries/data/subdivisions/AG.yaml +16 -22
- data/lib/countries/data/subdivisions/AL.yaml +24 -12
- data/lib/countries/data/subdivisions/AM.yaml +22 -11
- data/lib/countries/data/subdivisions/AO.yaml +36 -18
- data/lib/countries/data/subdivisions/AR.yaml +48 -24
- data/lib/countries/data/subdivisions/AT.yaml +18 -9
- data/lib/countries/data/subdivisions/AU.yaml +16 -8
- data/lib/countries/data/subdivisions/AZ.yaml +434 -412
- data/lib/countries/data/subdivisions/BA.yaml +75 -223
- data/lib/countries/data/subdivisions/BB.yaml +22 -11
- data/lib/countries/data/subdivisions/BD.yaml +188 -116
- data/lib/countries/data/subdivisions/BE.yaml +174 -161
- data/lib/countries/data/subdivisions/BF.yaml +2918 -2860
- data/lib/countries/data/subdivisions/BG.yaml +56 -28
- data/lib/countries/data/subdivisions/BH.yaml +8 -21
- data/lib/countries/data/subdivisions/BI.yaml +176 -157
- data/lib/countries/data/subdivisions/BJ.yaml +24 -12
- data/lib/countries/data/subdivisions/BN.yaml +8 -4
- data/lib/countries/data/subdivisions/BO.yaml +18 -9
- data/lib/countries/data/subdivisions/BQ.yaml +6 -3
- data/lib/countries/data/subdivisions/BR.yaml +54 -27
- data/lib/countries/data/subdivisions/BS.yaml +575 -697
- data/lib/countries/data/subdivisions/BT.yaml +40 -20
- data/lib/countries/data/subdivisions/BW.yaml +337 -321
- data/lib/countries/data/subdivisions/BY.yaml +106 -116
- data/lib/countries/data/subdivisions/BZ.yaml +12 -6
- data/lib/countries/data/subdivisions/CA.yaml +26 -13
- data/lib/countries/data/subdivisions/CD.yaml +488 -525
- data/lib/countries/data/subdivisions/CF.yaml +34 -17
- data/lib/countries/data/subdivisions/CG.yaml +40 -28
- data/lib/countries/data/subdivisions/CH.yaml +52 -26
- data/lib/countries/data/subdivisions/CI.yaml +244 -516
- data/lib/countries/data/subdivisions/CL.yaml +81 -65
- data/lib/countries/data/subdivisions/CM.yaml +20 -10
- data/lib/countries/data/subdivisions/CN.yaml +2152 -2084
- data/lib/countries/data/subdivisions/CO.yaml +66 -33
- data/lib/countries/data/subdivisions/CR.yaml +14 -7
- data/lib/countries/data/subdivisions/CU.yaml +32 -16
- data/lib/countries/data/subdivisions/CV.yaml +427 -401
- data/lib/countries/data/subdivisions/CY.yaml +12 -6
- data/lib/countries/data/subdivisions/CZ.yaml +1116 -85
- data/lib/countries/data/subdivisions/DE.yaml +32 -16
- data/lib/countries/data/subdivisions/DJ.yaml +12 -6
- data/lib/countries/data/subdivisions/DK.yaml +25 -17
- data/lib/countries/data/subdivisions/DM.yaml +20 -10
- data/lib/countries/data/subdivisions/DO.yaml +84 -42
- data/lib/countries/data/subdivisions/DZ.yaml +96 -48
- data/lib/countries/data/subdivisions/EC.yaml +158 -134
- data/lib/countries/data/subdivisions/EE.yaml +501 -334
- data/lib/countries/data/subdivisions/EG.yaml +54 -27
- data/lib/countries/data/subdivisions/ER.yaml +12 -6
- data/lib/countries/data/subdivisions/ES.yaml +1459 -1390
- data/lib/countries/data/subdivisions/ET.yaml +22 -11
- data/lib/countries/data/subdivisions/FI.yaml +185 -1
- data/lib/countries/data/subdivisions/FJ.yaml +443 -424
- data/lib/countries/data/subdivisions/FM.yaml +8 -4
- data/lib/countries/data/subdivisions/FR.yaml +438 -275
- data/lib/countries/data/subdivisions/GA.yaml +18 -9
- data/lib/countries/data/subdivisions/GB.yaml +1185 -1708
- data/lib/countries/data/subdivisions/GD.yaml +14 -7
- data/lib/countries/data/subdivisions/GE.yaml +24 -12
- data/lib/countries/data/subdivisions/GH.yaml +114 -155
- data/lib/countries/data/subdivisions/GL.yaml +24 -79
- data/lib/countries/data/subdivisions/GM.yaml +12 -6
- data/lib/countries/data/subdivisions/GN.yaml +444 -403
- data/lib/countries/data/subdivisions/GQ.yaml +24 -13
- data/lib/countries/data/subdivisions/GR.yaml +114 -73
- data/lib/countries/data/subdivisions/GT.yaml +44 -22
- data/lib/countries/data/subdivisions/GW.yaml +69 -57
- data/lib/countries/data/subdivisions/GY.yaml +20 -10
- data/lib/countries/data/subdivisions/HN.yaml +36 -18
- data/lib/countries/data/subdivisions/HR.yaml +42 -21
- data/lib/countries/data/subdivisions/HT.yaml +73 -63
- data/lib/countries/data/subdivisions/HU.yaml +106 -63
- data/lib/countries/data/subdivisions/ID.yaml +229 -188
- data/lib/countries/data/subdivisions/IE.yaml +128 -97
- data/lib/countries/data/subdivisions/IL.yaml +12 -6
- data/lib/countries/data/subdivisions/IN.yaml +245 -396
- data/lib/countries/data/subdivisions/IQ.yaml +111 -91
- data/lib/countries/data/subdivisions/IR.yaml +1463 -1451
- data/lib/countries/data/subdivisions/IS.yaml +160 -25
- data/lib/countries/data/subdivisions/IT.yaml +8740 -8292
- data/lib/countries/data/subdivisions/JM.yaml +28 -14
- data/lib/countries/data/subdivisions/JO.yaml +24 -12
- data/lib/countries/data/subdivisions/JP.yaml +94 -47
- data/lib/countries/data/subdivisions/KE.yaml +95 -48
- data/lib/countries/data/subdivisions/KG.yaml +95 -86
- data/lib/countries/data/subdivisions/KH.yaml +64 -39
- data/lib/countries/data/subdivisions/KI.yaml +6 -3
- data/lib/countries/data/subdivisions/KM.yaml +6 -3
- data/lib/countries/data/subdivisions/KN.yaml +32 -16
- data/lib/countries/data/subdivisions/KP.yaml +24 -227
- data/lib/countries/data/subdivisions/KR.yaml +34 -17
- data/lib/countries/data/subdivisions/KW.yaml +12 -6
- data/lib/countries/data/subdivisions/KZ.yaml +47 -102
- data/lib/countries/data/subdivisions/LA.yaml +36 -34
- data/lib/countries/data/subdivisions/LB.yaml +71 -63
- data/lib/countries/data/subdivisions/LC.yaml +116 -106
- data/lib/countries/data/subdivisions/LI.yaml +22 -11
- data/lib/countries/data/subdivisions/LK.yaml +445 -411
- data/lib/countries/data/subdivisions/LR.yaml +146 -129
- data/lib/countries/data/subdivisions/LS.yaml +20 -10
- data/lib/countries/data/subdivisions/LT.yaml +1706 -1636
- data/lib/countries/data/subdivisions/LU.yaml +24 -12
- data/lib/countries/data/subdivisions/LV.yaml +1623 -1577
- data/lib/countries/data/subdivisions/LY.yaml +44 -22
- data/lib/countries/data/subdivisions/MA.yaml +810 -1589
- data/lib/countries/data/subdivisions/MC.yaml +261 -244
- data/lib/countries/data/subdivisions/MD.yaml +74 -79
- data/lib/countries/data/subdivisions/ME.yaml +217 -195
- data/lib/countries/data/subdivisions/MG.yaml +12 -6
- data/lib/countries/data/subdivisions/MH.yaml +167 -140
- data/lib/countries/data/subdivisions/MK.yaml +160 -80
- data/lib/countries/data/subdivisions/ML.yaml +48 -37
- data/lib/countries/data/subdivisions/MM.yaml +30 -15
- data/lib/countries/data/subdivisions/MN.yaml +44 -22
- data/lib/countries/data/subdivisions/MR.yaml +30 -34
- data/lib/countries/data/subdivisions/MT.yaml +136 -68
- data/lib/countries/data/subdivisions/MU.yaml +24 -262
- data/lib/countries/data/subdivisions/MV.yaml +161 -254
- data/lib/countries/data/subdivisions/MW.yaml +250 -219
- data/lib/countries/data/subdivisions/MX.yaml +64 -32
- data/lib/countries/data/subdivisions/MY.yaml +32 -16
- data/lib/countries/data/subdivisions/MZ.yaml +22 -11
- data/lib/countries/data/subdivisions/NA.yaml +58 -44
- data/lib/countries/data/subdivisions/NE.yaml +16 -8
- data/lib/countries/data/subdivisions/NG.yaml +74 -37
- data/lib/countries/data/subdivisions/NI.yaml +34 -17
- data/lib/countries/data/subdivisions/NL.yaml +303 -285
- data/lib/countries/data/subdivisions/NO.yaml +39 -17
- data/lib/countries/data/subdivisions/NP.yaml +302 -276
- data/lib/countries/data/subdivisions/NR.yaml +28 -14
- data/lib/countries/data/subdivisions/NZ.yaml +34 -17
- data/lib/countries/data/subdivisions/OM.yaml +260 -311
- data/lib/countries/data/subdivisions/PA.yaml +57 -44
- data/lib/countries/data/subdivisions/PE.yaml +107 -81
- data/lib/countries/data/subdivisions/PG.yaml +163 -158
- data/lib/countries/data/subdivisions/PH.yaml +5062 -4992
- data/lib/countries/data/subdivisions/PK.yaml +145 -235
- data/lib/countries/data/subdivisions/PL.yaml +51 -3
- data/lib/countries/data/subdivisions/PS.yaml +32 -16
- data/lib/countries/data/subdivisions/PT.yaml +40 -20
- data/lib/countries/data/subdivisions/PW.yaml +32 -16
- data/lib/countries/data/subdivisions/PY.yaml +36 -18
- data/lib/countries/data/subdivisions/QA.yaml +27 -78
- data/lib/countries/data/subdivisions/RO.yaml +84 -42
- data/lib/countries/data/subdivisions/RS.yaml +104 -72
- data/lib/countries/data/subdivisions/RU.yaml +166 -83
- data/lib/countries/data/subdivisions/RW.yaml +10 -5
- data/lib/countries/data/subdivisions/SA.yaml +26 -13
- data/lib/countries/data/subdivisions/SB.yaml +20 -10
- data/lib/countries/data/subdivisions/SC.yaml +54 -25
- data/lib/countries/data/subdivisions/SD.yaml +798 -780
- data/lib/countries/data/subdivisions/SE.yaml +42 -21
- data/lib/countries/data/subdivisions/SG.yaml +15 -10
- data/lib/countries/data/subdivisions/SH.yaml +21 -32
- data/lib/countries/data/subdivisions/SI.yaml +475 -263
- data/lib/countries/data/subdivisions/SK.yaml +16 -8
- data/lib/countries/data/subdivisions/SL.yaml +23 -18
- data/lib/countries/data/subdivisions/SM.yaml +18 -9
- data/lib/countries/data/subdivisions/SN.yaml +188 -174
- data/lib/countries/data/subdivisions/SO.yaml +36 -18
- data/lib/countries/data/subdivisions/SR.yaml +20 -10
- data/lib/countries/data/subdivisions/SS.yaml +20 -10
- data/lib/countries/data/subdivisions/ST.yaml +38 -52
- data/lib/countries/data/subdivisions/SV.yaml +28 -14
- data/lib/countries/data/subdivisions/SY.yaml +28 -14
- data/lib/countries/data/subdivisions/SZ.yaml +8 -4
- data/lib/countries/data/subdivisions/TD.yaml +312 -303
- data/lib/countries/data/subdivisions/TG.yaml +10 -5
- data/lib/countries/data/subdivisions/TH.yaml +211 -133
- data/lib/countries/data/subdivisions/TJ.yaml +161 -156
- data/lib/countries/data/subdivisions/TL.yaml +26 -13
- data/lib/countries/data/subdivisions/TM.yaml +12 -6
- data/lib/countries/data/subdivisions/TN.yaml +48 -24
- data/lib/countries/data/subdivisions/TO.yaml +10 -5
- data/lib/countries/data/subdivisions/TR.yaml +162 -81
- data/lib/countries/data/subdivisions/TT.yaml +128 -160
- data/lib/countries/data/subdivisions/TV.yaml +57 -63
- data/lib/countries/data/subdivisions/TW.yaml +143 -183
- data/lib/countries/data/subdivisions/TZ.yaml +62 -31
- data/lib/countries/data/subdivisions/UA.yaml +55 -28
- data/lib/countries/data/subdivisions/UG.yaml +4806 -4660
- data/lib/countries/data/subdivisions/UM.yaml +18 -9
- data/lib/countries/data/subdivisions/US.yaml +114 -57
- data/lib/countries/data/subdivisions/UY.yaml +99 -80
- data/lib/countries/data/subdivisions/UZ.yaml +28 -14
- data/lib/countries/data/subdivisions/VC.yaml +12 -6
- data/lib/countries/data/subdivisions/VE.yaml +50 -25
- data/lib/countries/data/subdivisions/VN.yaml +3576 -3513
- data/lib/countries/data/subdivisions/VU.yaml +12 -6
- data/lib/countries/data/subdivisions/WF.yaml +6 -3
- data/lib/countries/data/subdivisions/WS.yaml +22 -11
- data/lib/countries/data/subdivisions/YE.yaml +222 -200
- data/lib/countries/data/subdivisions/ZA.yaml +86 -100
- data/lib/countries/data/subdivisions/ZM.yaml +20 -10
- data/lib/countries/data/subdivisions/ZW.yaml +20 -10
- data/lib/countries/data/translations/countries-ab.yaml +254 -0
- data/lib/countries/data/translations/countries-af.yaml +254 -0
- data/lib/countries/data/translations/countries-ak.yaml +254 -0
- data/lib/countries/data/translations/countries-am.yaml +254 -0
- data/lib/countries/data/translations/countries-an.yaml +254 -0
- data/lib/countries/data/translations/countries-ar.yaml +254 -0
- data/lib/countries/data/translations/countries-as.yaml +254 -0
- data/lib/countries/data/translations/countries-ay.yaml +254 -0
- data/lib/countries/data/translations/countries-az.yaml +254 -0
- data/lib/countries/data/translations/countries-ba.yaml +254 -0
- data/lib/countries/data/translations/countries-be.yaml +254 -0
- data/lib/countries/data/translations/countries-bg.yaml +254 -0
- data/lib/countries/data/translations/countries-bi.yaml +254 -0
- data/lib/countries/data/translations/countries-bn.yaml +254 -0
- data/lib/countries/data/translations/countries-bn_IN.yaml +254 -0
- data/lib/countries/data/translations/countries-br.yaml +254 -0
- data/lib/countries/data/translations/countries-bs.yaml +254 -0
- data/lib/countries/data/translations/countries-ca.yaml +254 -0
- data/lib/countries/data/translations/countries-ce.yaml +254 -0
- data/lib/countries/data/translations/countries-ch.yaml +254 -0
- data/lib/countries/data/translations/countries-cs.yaml +254 -0
- data/lib/countries/data/translations/countries-cv.yaml +254 -0
- data/lib/countries/data/translations/countries-cy.yaml +254 -0
- data/lib/countries/data/translations/countries-da.yaml +254 -0
- data/lib/countries/data/translations/countries-de.yaml +254 -0
- data/lib/countries/data/translations/countries-dv.yaml +254 -0
- data/lib/countries/data/translations/countries-dz.yaml +254 -0
- data/lib/countries/data/translations/countries-ee.yaml +254 -0
- data/lib/countries/data/translations/countries-el.yaml +254 -0
- data/lib/countries/data/translations/countries-en.yaml +254 -0
- data/lib/countries/data/translations/countries-eo.yaml +254 -0
- data/lib/countries/data/translations/countries-es.yaml +254 -0
- data/lib/countries/data/translations/countries-et.yaml +254 -0
- data/lib/countries/data/translations/countries-eu.yaml +254 -0
- data/lib/countries/data/translations/countries-fa.yaml +254 -0
- data/lib/countries/data/translations/countries-ff.yaml +254 -0
- data/lib/countries/data/translations/countries-fi.yaml +254 -0
- data/lib/countries/data/translations/countries-fo.yaml +254 -0
- data/lib/countries/data/translations/countries-fr.yaml +254 -0
- data/lib/countries/data/translations/countries-fy.yaml +254 -0
- data/lib/countries/data/translations/countries-ga.yaml +254 -0
- data/lib/countries/data/translations/countries-gl.yaml +254 -0
- data/lib/countries/data/translations/countries-gn.yaml +254 -0
- data/lib/countries/data/translations/countries-gu.yaml +254 -0
- data/lib/countries/data/translations/countries-gv.yaml +254 -0
- data/lib/countries/data/translations/countries-ha.yaml +254 -0
- data/lib/countries/data/translations/countries-he.yaml +254 -0
- data/lib/countries/data/translations/countries-hi.yaml +254 -0
- data/lib/countries/data/translations/countries-hr.yaml +254 -0
- data/lib/countries/data/translations/countries-ht.yaml +254 -0
- data/lib/countries/data/translations/countries-hu.yaml +254 -0
- data/lib/countries/data/translations/countries-hy.yaml +254 -0
- data/lib/countries/data/translations/countries-ia.yaml +254 -0
- data/lib/countries/data/translations/countries-id.yaml +254 -0
- data/lib/countries/data/translations/countries-io.yaml +254 -0
- data/lib/countries/data/translations/countries-is.yaml +254 -0
- data/lib/countries/data/translations/countries-it.yaml +254 -0
- data/lib/countries/data/translations/countries-iu.yaml +254 -0
- data/lib/countries/data/translations/countries-ja.yaml +254 -0
- data/lib/countries/data/translations/countries-ka.yaml +254 -0
- data/lib/countries/data/translations/countries-ki.yaml +254 -0
- data/lib/countries/data/translations/countries-kk.yaml +254 -0
- data/lib/countries/data/translations/countries-kl.yaml +254 -0
- data/lib/countries/data/translations/countries-km.yaml +254 -0
- data/lib/countries/data/translations/countries-kn.yaml +254 -0
- data/lib/countries/data/translations/countries-ko.yaml +254 -0
- data/lib/countries/data/translations/countries-ku.yaml +254 -0
- data/lib/countries/data/translations/countries-kv.yaml +254 -0
- data/lib/countries/data/translations/countries-kw.yaml +254 -0
- data/lib/countries/data/translations/countries-ky.yaml +254 -0
- data/lib/countries/data/translations/countries-lo.yaml +254 -0
- data/lib/countries/data/translations/countries-lt.yaml +254 -0
- data/lib/countries/data/translations/countries-lv.yaml +254 -0
- data/lib/countries/data/translations/countries-mi.yaml +254 -0
- data/lib/countries/data/translations/countries-mk.yaml +254 -0
- data/lib/countries/data/translations/countries-ml.yaml +254 -0
- data/lib/countries/data/translations/countries-mn.yaml +254 -0
- data/lib/countries/data/translations/countries-mr.yaml +254 -0
- data/lib/countries/data/translations/countries-ms.yaml +254 -0
- data/lib/countries/data/translations/countries-mt.yaml +254 -0
- data/lib/countries/data/translations/countries-my.yaml +254 -0
- data/lib/countries/data/translations/countries-na.yaml +254 -0
- data/lib/countries/data/translations/countries-nb.yaml +254 -0
- data/lib/countries/data/translations/countries-ne.yaml +254 -0
- data/lib/countries/data/translations/countries-nl.yaml +254 -0
- data/lib/countries/data/translations/countries-nn.yaml +254 -0
- data/lib/countries/data/translations/countries-nv.yaml +254 -0
- data/lib/countries/data/translations/countries-oc.yaml +254 -0
- data/lib/countries/data/translations/countries-or.yaml +254 -0
- data/lib/countries/data/translations/countries-pa.yaml +254 -0
- data/lib/countries/data/translations/countries-pi.yaml +254 -0
- data/lib/countries/data/translations/countries-pl.yaml +254 -0
- data/lib/countries/data/translations/countries-ps.yaml +254 -0
- data/lib/countries/data/translations/countries-pt.yaml +254 -0
- data/lib/countries/data/translations/countries-pt_BR.yaml +254 -0
- data/lib/countries/data/translations/countries-ro.yaml +254 -0
- data/lib/countries/data/translations/countries-ru.yaml +254 -0
- data/lib/countries/data/translations/countries-rw.yaml +254 -0
- data/lib/countries/data/translations/countries-sc.yaml +254 -0
- data/lib/countries/data/translations/countries-sd.yaml +254 -0
- data/lib/countries/data/translations/countries-si.yaml +254 -0
- data/lib/countries/data/translations/countries-sk.yaml +254 -0
- data/lib/countries/data/translations/countries-sl.yaml +254 -0
- data/lib/countries/data/translations/countries-so.yaml +254 -0
- data/lib/countries/data/translations/countries-sq.yaml +254 -0
- data/lib/countries/data/translations/countries-sr.yaml +254 -0
- data/lib/countries/data/translations/countries-sv.yaml +254 -0
- data/lib/countries/data/translations/countries-sw.yaml +254 -0
- data/lib/countries/data/translations/countries-ta.yaml +254 -0
- data/lib/countries/data/translations/countries-te.yaml +254 -0
- data/lib/countries/data/translations/countries-tg.yaml +254 -0
- data/lib/countries/data/translations/countries-th.yaml +254 -0
- data/lib/countries/data/translations/countries-ti.yaml +254 -0
- data/lib/countries/data/translations/countries-tk.yaml +254 -0
- data/lib/countries/data/translations/countries-tl.yaml +254 -0
- data/lib/countries/data/translations/countries-tr.yaml +254 -0
- data/lib/countries/data/translations/countries-tt.yaml +254 -0
- data/lib/countries/data/translations/countries-ug.yaml +254 -0
- data/lib/countries/data/translations/countries-uk.yaml +254 -0
- data/lib/countries/data/translations/countries-ur.yaml +254 -0
- data/lib/countries/data/translations/countries-uz.yaml +254 -0
- data/lib/countries/data/translations/countries-ve.yaml +254 -0
- data/lib/countries/data/translations/countries-vi.yaml +254 -0
- data/lib/countries/data/translations/countries-wa.yaml +254 -0
- data/lib/countries/data/translations/countries-wo.yaml +254 -0
- data/lib/countries/data/translations/countries-xh.yaml +254 -0
- data/lib/countries/data/translations/countries-yo.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_CN.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_HK.yaml +254 -0
- data/lib/countries/data/translations/countries-zh_TW.yaml +254 -0
- data/lib/countries/data/translations/countries-zu.yaml +254 -0
- data/lib/countries/data.rb +14 -8
- data/lib/countries/iso3166.rb +0 -1
- data/lib/countries/sources/cldr/subdivision_updater.rb +1 -1
- data/lib/countries/subdivision.rb +19 -8
- data/lib/countries/version.rb +1 -1
- data/spec/country_spec.rb +63 -19
- data/spec/data_spec.rb +63 -5
- metadata +133 -24
- data/lib/countries/cache/locales/zh.json +0 -1
- data/lib/countries/data/subdivisions/AI.yaml +0 -197
- data/lib/countries/data/subdivisions/BM.yaml +0 -155
- data/lib/countries/data/subdivisions/CK.yaml +0 -155
- data/lib/countries/data/subdivisions/EH.yaml +0 -80
- data/lib/countries/data/subdivisions/SJ.yaml +0 -29
- data/lib/countries/data/subdivisions/TK.yaml +0 -43
- data/lib/countries/data/translation_corrections.yaml +0 -53
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Country name translations for locale zu
|
|
2
|
+
#
|
|
3
|
+
# alpha2: localized_name
|
|
4
|
+
#
|
|
5
|
+
---
|
|
6
|
+
AD: I-Andora
|
|
7
|
+
AE: United Arab Emirates
|
|
8
|
+
AF: I-Afganistani
|
|
9
|
+
AG: Antigua no Barbuda
|
|
10
|
+
AI: Anguilla
|
|
11
|
+
AL: I-Albaniya
|
|
12
|
+
AM: Armenia
|
|
13
|
+
AO: I-Angola
|
|
14
|
+
AQ: Antarctica
|
|
15
|
+
AR: I-Argentina
|
|
16
|
+
AS: American Samoa
|
|
17
|
+
AT: I-Ostriya
|
|
18
|
+
AU: I-Ostreliya
|
|
19
|
+
AW: Aruba
|
|
20
|
+
AX: Åland Islands
|
|
21
|
+
AZ: I-Azerbayijani
|
|
22
|
+
BA: IBhosniya neHerzegovina
|
|
23
|
+
BB: I-Barbados
|
|
24
|
+
BD: Isi-Bhangladeshi
|
|
25
|
+
BE: Isi-Bhelijiyamu
|
|
26
|
+
BF: IBukhina Faso
|
|
27
|
+
BG: IBulgariya
|
|
28
|
+
BH: Bahrain
|
|
29
|
+
BI: IBurundi
|
|
30
|
+
BJ: IBenini
|
|
31
|
+
BL: Saint Barthélemy
|
|
32
|
+
BM: Bermuda
|
|
33
|
+
BN: Brunei Darussalam
|
|
34
|
+
BO: I Boliviya
|
|
35
|
+
BQ: Bonaire, Sint Eustatius and Saba
|
|
36
|
+
BR: IBrazili
|
|
37
|
+
BS: Bahamas
|
|
38
|
+
BT: Bhutan
|
|
39
|
+
BV: Bouvet Island
|
|
40
|
+
BW: IButswana
|
|
41
|
+
BY: IBelarusi
|
|
42
|
+
BZ: Belize
|
|
43
|
+
CA: I Khanada
|
|
44
|
+
CC: Cocos (Keeling) Islands
|
|
45
|
+
CD: Congo, The Democratic Republic of the
|
|
46
|
+
CF: Central African Republic
|
|
47
|
+
CG: Congo
|
|
48
|
+
CH: I-Switzerland
|
|
49
|
+
CI: Côte d'Ivoire
|
|
50
|
+
CK: Cook Islands
|
|
51
|
+
CL: I-Chile
|
|
52
|
+
CM: IKamerooni
|
|
53
|
+
CN: Isi-Shayina
|
|
54
|
+
CO: IKolombiya
|
|
55
|
+
CR: Costa Rica
|
|
56
|
+
CU: Cuba
|
|
57
|
+
CV: Cabo Verde
|
|
58
|
+
CW: Curaçao
|
|
59
|
+
CX: Christmas Island
|
|
60
|
+
CY: Cyprus
|
|
61
|
+
CZ: Czechia
|
|
62
|
+
DE: IJalimani
|
|
63
|
+
DJ: IJibuthi
|
|
64
|
+
DK: IDenimaki
|
|
65
|
+
DM: Dominica
|
|
66
|
+
DO: Ulawulo lokuziphatha kwe Dominikhani
|
|
67
|
+
DZ: IAljiriya
|
|
68
|
+
EC: Ecuador
|
|
69
|
+
EE: I-Estoniya
|
|
70
|
+
EG: IGibhithe
|
|
71
|
+
EH: Western Sahara
|
|
72
|
+
ER: I-Eritrea
|
|
73
|
+
ES: ISpeyini
|
|
74
|
+
ET: I-Ithiopia
|
|
75
|
+
FI: IFinlandi
|
|
76
|
+
FJ: IFiji
|
|
77
|
+
FK: Falkland Islands (Malvinas)
|
|
78
|
+
FM: Micronesia, Federated States of
|
|
79
|
+
FO: Faroe Islands
|
|
80
|
+
FR: IFulansi
|
|
81
|
+
GA: IGaboni
|
|
82
|
+
GB: Umbuso Ohlangeneyo
|
|
83
|
+
GD: I-Grenada
|
|
84
|
+
GE: Georgia
|
|
85
|
+
GF: French Guiana
|
|
86
|
+
GG: Guernsey
|
|
87
|
+
GH: IGana
|
|
88
|
+
GI: Gibraltar
|
|
89
|
+
GL: Greenland
|
|
90
|
+
GM: Gambia
|
|
91
|
+
GN: IGini
|
|
92
|
+
GP: Guadeloupe
|
|
93
|
+
GQ: IGini Enkabazwe
|
|
94
|
+
GR: IGreki
|
|
95
|
+
GS: South Georgia and the South Sandwich Islands
|
|
96
|
+
GT: I-Guwathemala
|
|
97
|
+
GU: Guam
|
|
98
|
+
GW: IGini Bisawu
|
|
99
|
+
GY: Guyana
|
|
100
|
+
HK: Hong Kong
|
|
101
|
+
HM: Heard Island and McDonald Islands
|
|
102
|
+
HN: I-Hondurasi
|
|
103
|
+
HR: IKrowati
|
|
104
|
+
HT: Haiti
|
|
105
|
+
HU: I-Hungariya
|
|
106
|
+
ID: I-Indonesia
|
|
107
|
+
IE: I-Ayilendi
|
|
108
|
+
IL: Isreyili
|
|
109
|
+
IM: Isle of Man
|
|
110
|
+
IN: India
|
|
111
|
+
IO: British Indian Ocean Territory
|
|
112
|
+
IQ: I-Iraki
|
|
113
|
+
IR: Iran, Islamic Republic of
|
|
114
|
+
IS: I-Ayisilandi
|
|
115
|
+
IT: ITaliya
|
|
116
|
+
JE: Jersey
|
|
117
|
+
JM: Jamaica
|
|
118
|
+
JO: Jordan
|
|
119
|
+
JP: IJaphani
|
|
120
|
+
KE: IKenya
|
|
121
|
+
KG: Kyrgyzstan
|
|
122
|
+
KH: Cambodia
|
|
123
|
+
KI: Kiribati
|
|
124
|
+
KM: IsiKhomorosi
|
|
125
|
+
KN: Saint Kitts and Nevis
|
|
126
|
+
KP: North Korea
|
|
127
|
+
KR: South Korea
|
|
128
|
+
KW: Kuwait
|
|
129
|
+
KY: Cayman Islands
|
|
130
|
+
KZ: Kazakhstan
|
|
131
|
+
LA: Lao People's Democratic Republic
|
|
132
|
+
LB: Lebanon
|
|
133
|
+
LC: Saint Lucia
|
|
134
|
+
LI: Liechtenstein
|
|
135
|
+
LK: Sri Lanka
|
|
136
|
+
LR: ILiberia
|
|
137
|
+
LS: OSotho
|
|
138
|
+
LT: ILithuwaniya
|
|
139
|
+
LU: I-Luxembourg
|
|
140
|
+
LV: ILatviya
|
|
141
|
+
LY: ILibiya
|
|
142
|
+
MA: IMorokho
|
|
143
|
+
MC: Monaco
|
|
144
|
+
MD: Moldova
|
|
145
|
+
ME: IMontenegro
|
|
146
|
+
MF: Saint Martin (French part)
|
|
147
|
+
MG: IMadagasika
|
|
148
|
+
MH: Marshall Islands
|
|
149
|
+
MK: North Macedonia
|
|
150
|
+
ML: IMali
|
|
151
|
+
MM: Myanmar
|
|
152
|
+
MN: Mongolia
|
|
153
|
+
MO: Macao
|
|
154
|
+
MP: Northern Mariana Islands
|
|
155
|
+
MQ: Martinique
|
|
156
|
+
MR: IMoritaniya
|
|
157
|
+
MS: Montserrat
|
|
158
|
+
MT: IMalta
|
|
159
|
+
MU: IMorishisi
|
|
160
|
+
MV: Maldives
|
|
161
|
+
MW: IMalawi
|
|
162
|
+
MX: IMekisiko
|
|
163
|
+
MY: Malaysia
|
|
164
|
+
MZ: IMozambiki
|
|
165
|
+
NA: INamibhiya
|
|
166
|
+
NC: New Caledonia
|
|
167
|
+
NE: INayighe
|
|
168
|
+
NF: Norfolk Island
|
|
169
|
+
NG: INigeria
|
|
170
|
+
NI: Nicaragua
|
|
171
|
+
NL: I-Netherlands
|
|
172
|
+
'NO': INoki
|
|
173
|
+
NP: Nepal
|
|
174
|
+
NR: Nauru
|
|
175
|
+
NU: Niue
|
|
176
|
+
NZ: INyuzilandi
|
|
177
|
+
OM: Oman
|
|
178
|
+
PA: Panama
|
|
179
|
+
PE: I-Peru
|
|
180
|
+
PF: French Polynesia
|
|
181
|
+
PG: Papua New Guinea
|
|
182
|
+
PH: Philippines
|
|
183
|
+
PK: IPakistani
|
|
184
|
+
PL: IPolandi
|
|
185
|
+
PM: Saint Pierre and Miquelon
|
|
186
|
+
PN: Pitcairn
|
|
187
|
+
PR: Puerto Rico
|
|
188
|
+
PS: Palestine, State of
|
|
189
|
+
PT: IPhothugali
|
|
190
|
+
PW: Palau
|
|
191
|
+
PY: I-Paraguwayi
|
|
192
|
+
QA: Qatar
|
|
193
|
+
RE: IRiyunion
|
|
194
|
+
RO: I-Romaniya
|
|
195
|
+
RS: ISerbiya
|
|
196
|
+
RU: Russian Federation
|
|
197
|
+
RW: IRuwanda
|
|
198
|
+
SA: Saudi Arabia
|
|
199
|
+
SB: Solomon Islands
|
|
200
|
+
SC: IsiSeyisheli
|
|
201
|
+
SD: ISudan
|
|
202
|
+
SE: ISwidi
|
|
203
|
+
SG: Singapore
|
|
204
|
+
SH: Saint Helena, Ascension and Tristan da Cunha
|
|
205
|
+
SI: ISloveniya
|
|
206
|
+
SJ: Svalbard and Jan Mayen
|
|
207
|
+
SK: ISlovaki
|
|
208
|
+
SL: ISiera Liyoni
|
|
209
|
+
SM: USanti Marino
|
|
210
|
+
SN: ISenegal
|
|
211
|
+
SO: ISomalia
|
|
212
|
+
SR: Suriname
|
|
213
|
+
SS: ISudan yaseNingizimu
|
|
214
|
+
ST: ISawu Tome noPhrinitshipeyi
|
|
215
|
+
SV: El Salvador
|
|
216
|
+
SX: Sint Maarten (Dutch part)
|
|
217
|
+
SY: Syrian Arab Republic
|
|
218
|
+
SZ: Eswatini
|
|
219
|
+
TC: Turks and Caicos Islands
|
|
220
|
+
TD: ITshedi
|
|
221
|
+
TF: French Southern Territories
|
|
222
|
+
TG: ITogo
|
|
223
|
+
TH: I-Thayilandi
|
|
224
|
+
TJ: Tajikistan
|
|
225
|
+
TK: Tokelau
|
|
226
|
+
TL: Timor-Leste
|
|
227
|
+
TM: Turkmenistan
|
|
228
|
+
TN: ITunisia
|
|
229
|
+
TO: Tonga
|
|
230
|
+
TR: ITheki
|
|
231
|
+
TT: I-Trinidad ne Tobago
|
|
232
|
+
TV: Tuvalu
|
|
233
|
+
TW: I-Tayiwani
|
|
234
|
+
TZ: ITanzania
|
|
235
|
+
UA: I-Yukreyini
|
|
236
|
+
UG: IYuganda
|
|
237
|
+
UM: United States Minor Outlying Islands
|
|
238
|
+
US: United States
|
|
239
|
+
UY: I-Uruguwayi
|
|
240
|
+
UZ: Uzbekistan
|
|
241
|
+
VA: Holy See (Vatican City State)
|
|
242
|
+
VC: Saint Vincent and the Grenadines
|
|
243
|
+
VE: I-Venezuwela
|
|
244
|
+
VG: Virgin Islands, British
|
|
245
|
+
VI: Virgin Islands, U.S.
|
|
246
|
+
VN: IViyetnami
|
|
247
|
+
VU: Vanuatu
|
|
248
|
+
WF: Wallis and Futuna
|
|
249
|
+
WS: Samoa
|
|
250
|
+
YE: IYemen
|
|
251
|
+
YT: IMayotte
|
|
252
|
+
ZA: IRiphabliki yaseNingizimu Afrika
|
|
253
|
+
ZM: IZambiya
|
|
254
|
+
ZW: IZimbabwe
|
data/lib/countries/data.rb
CHANGED
|
@@ -5,6 +5,7 @@ module ISO3166
|
|
|
5
5
|
class Data
|
|
6
6
|
@cache_dir = [File.dirname(__FILE__), 'cache']
|
|
7
7
|
@cache = {}
|
|
8
|
+
@loaded_country_codes = []
|
|
8
9
|
@registered_data = {}
|
|
9
10
|
@mutex = Mutex.new
|
|
10
11
|
|
|
@@ -49,7 +50,7 @@ module ISO3166
|
|
|
49
50
|
|
|
50
51
|
def codes
|
|
51
52
|
load_data!
|
|
52
|
-
|
|
53
|
+
cached_codes
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
def update_cache
|
|
@@ -58,6 +59,15 @@ module ISO3166
|
|
|
58
59
|
@cache
|
|
59
60
|
end
|
|
60
61
|
|
|
62
|
+
def loaded_codes
|
|
63
|
+
load_data!
|
|
64
|
+
@loaded_country_codes
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def datafile_path(file_array)
|
|
68
|
+
File.join([@cache_dir] + file_array)
|
|
69
|
+
end
|
|
70
|
+
|
|
61
71
|
private
|
|
62
72
|
|
|
63
73
|
def load_data!
|
|
@@ -65,7 +75,7 @@ module ISO3166
|
|
|
65
75
|
|
|
66
76
|
synchronized do
|
|
67
77
|
@cache = load_cache %w[countries.json]
|
|
68
|
-
@
|
|
78
|
+
@loaded_country_codes = @cache.keys
|
|
69
79
|
@cache = @cache.merge(@registered_data)
|
|
70
80
|
@cache
|
|
71
81
|
end
|
|
@@ -102,13 +112,13 @@ module ISO3166
|
|
|
102
112
|
end
|
|
103
113
|
end
|
|
104
114
|
|
|
105
|
-
def
|
|
115
|
+
def cached_codes
|
|
106
116
|
@cache.keys
|
|
107
117
|
end
|
|
108
118
|
|
|
109
119
|
# Codes that we have translations for in dataset
|
|
110
120
|
def internal_codes
|
|
111
|
-
@
|
|
121
|
+
@loaded_country_codes - @registered_data.keys
|
|
112
122
|
end
|
|
113
123
|
|
|
114
124
|
def cache_flush_required?
|
|
@@ -158,10 +168,6 @@ module ISO3166
|
|
|
158
168
|
File.exist?(file_path) ? JSON.parse(File.binread(file_path)) : {}
|
|
159
169
|
end
|
|
160
170
|
|
|
161
|
-
def datafile_path(file_array)
|
|
162
|
-
File.join([@cache_dir] + file_array)
|
|
163
|
-
end
|
|
164
|
-
|
|
165
171
|
def deep_stringify_keys(data)
|
|
166
172
|
data.transform_keys!(&:to_s)
|
|
167
173
|
data.transform_values! do |v|
|
data/lib/countries/iso3166.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Sources
|
|
|
19
19
|
language_data = Nokogiri::XML(File.read(file_path))
|
|
20
20
|
language_code = File.basename(file_path, '.*')
|
|
21
21
|
subdivisions = language_data.css('subdivision')
|
|
22
|
-
|
|
22
|
+
return if subdivisions.empty?
|
|
23
23
|
|
|
24
24
|
last_country_code_seen = nil
|
|
25
25
|
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module ISO3166
|
|
4
|
-
Subdivision
|
|
5
|
-
:name,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
class Subdivision
|
|
5
|
+
attr_accessor :name,
|
|
6
|
+
:code,
|
|
7
|
+
:unofficial_names,
|
|
8
|
+
:geo,
|
|
9
|
+
:translations,
|
|
10
|
+
:comments,
|
|
11
|
+
:type
|
|
12
|
+
|
|
13
|
+
def initialize(attrs)
|
|
14
|
+
attrs.each_pair do |k, v|
|
|
15
|
+
send "#{k}=", v
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def [](attr_name)
|
|
20
|
+
send attr_name
|
|
21
|
+
end
|
|
22
|
+
end
|
|
12
23
|
end
|
data/lib/countries/version.rb
CHANGED
data/spec/country_spec.rb
CHANGED
|
@@ -221,7 +221,7 @@ describe ISO3166::Country do
|
|
|
221
221
|
end
|
|
222
222
|
|
|
223
223
|
describe 'subdivisions' do
|
|
224
|
-
let(:virginia) { country.
|
|
224
|
+
let(:virginia) { country.subdivisions['VA'] }
|
|
225
225
|
it 'should return an empty hash for a country with no ISO3166-2' do
|
|
226
226
|
expect(ISO3166::Country.search('VA').subdivisions.size).to eq(0)
|
|
227
227
|
end
|
|
@@ -230,8 +230,8 @@ describe ISO3166::Country do
|
|
|
230
230
|
expect(country.subdivisions.size).to eq(57)
|
|
231
231
|
end
|
|
232
232
|
|
|
233
|
-
it 'should be
|
|
234
|
-
expect
|
|
233
|
+
it '#states should be deprecated' do
|
|
234
|
+
expect {country.states}.to output.to_stderr
|
|
235
235
|
end
|
|
236
236
|
|
|
237
237
|
it 'should be a subdivision object' do
|
|
@@ -251,6 +251,60 @@ describe ISO3166::Country do
|
|
|
251
251
|
end
|
|
252
252
|
end
|
|
253
253
|
|
|
254
|
+
describe 'subdivision_types' do
|
|
255
|
+
it "should return an array of subdivision types" do
|
|
256
|
+
expect(country.subdivision_types).to contain_exactly('district', 'state', 'outlying_area')
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
it "should return an array of subdivision types even if there is only a single type" do
|
|
260
|
+
expect(ISO3166::Country['LI'].subdivision_types).to contain_exactly('commune')
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
it "should return an empty array if country has no subdivisions" do
|
|
264
|
+
expect(ISO3166::Country['AS'].subdivisions?).to be_falsey
|
|
265
|
+
expect(ISO3166::Country['AS'].subdivision_types).to eq([])
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
describe 'subdivisions_of_types' do
|
|
270
|
+
it "given a single type, should return an array of subdivisions that match the type" do
|
|
271
|
+
us_states = country.subdivisions_of_types(%w[state])
|
|
272
|
+
expect(us_states.size).to eq(50)
|
|
273
|
+
dc = country.subdivisions_of_types(%w[district])
|
|
274
|
+
expect(dc.size).to eq(1)
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
it "given multiple types, should return an array of subdivisions matching the types" do
|
|
278
|
+
us_states_plus_dc = country.subdivisions_of_types(%w[state district])
|
|
279
|
+
expect(us_states_plus_dc.size).to eq(51)
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
it "given multiple types where at least one does not exist for that country, should work without issue" do
|
|
283
|
+
us_states_plus_dc = country.subdivisions_of_types(%w[state district governorate])
|
|
284
|
+
expect(us_states_plus_dc.size).to eq(51)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
it "given only types that do not exist for that country, should return an empty collection" do
|
|
288
|
+
should_be_empty = ISO3166::Country['PT'].subdivisions_of_types(%w[state county])
|
|
289
|
+
expect(should_be_empty).to be_empty
|
|
290
|
+
end
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
describe 'humanized_subdivision_types' do
|
|
294
|
+
it "should return an array of humanized subdivision types" do
|
|
295
|
+
expect(country.humanized_subdivision_types).to contain_exactly('District', 'State', 'Outlying area')
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
it "should return an array of subdivision types even if there is only a single type" do
|
|
299
|
+
expect(ISO3166::Country['LI'].humanized_subdivision_types).to contain_exactly('Commune')
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
it "should return an empty array if country has no subdivisions" do
|
|
303
|
+
expect(ISO3166::Country['AS'].subdivisions?).to be_falsey
|
|
304
|
+
expect(ISO3166::Country['AS'].humanized_subdivision_types).to eq([])
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
|
|
254
308
|
describe 'subdivision_names_with_codes' do
|
|
255
309
|
it 'should return an alphabetized list of all subdivisions names with codes' do
|
|
256
310
|
subdivisions = ISO3166::Country.search('EG').subdivision_names_with_codes
|
|
@@ -330,7 +384,7 @@ describe ISO3166::Country do
|
|
|
330
384
|
countries = ISO3166::Country.all_translated('fr')
|
|
331
385
|
expect(countries).to be_an(Array)
|
|
332
386
|
expect(countries.first).to be_a(String)
|
|
333
|
-
expect(countries.first).to eq('
|
|
387
|
+
expect(countries.first).to eq('Andorre')
|
|
334
388
|
# countries missing the desired locale will not be added to the list
|
|
335
389
|
# so all 250 countries may not be returned, 'fr' returns 249, for example
|
|
336
390
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
@@ -340,7 +394,7 @@ describe ISO3166::Country do
|
|
|
340
394
|
countries = ISO3166::Country.all_translated
|
|
341
395
|
expect(countries).to be_an(Array)
|
|
342
396
|
expect(countries.first).to be_a(String)
|
|
343
|
-
expect(countries.first).to eq('
|
|
397
|
+
expect(countries.first).to eq('Andorra')
|
|
344
398
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
345
399
|
end
|
|
346
400
|
|
|
@@ -448,8 +502,8 @@ describe ISO3166::Country do
|
|
|
448
502
|
it 'should return an hash of all country names translated to the selected locale' do
|
|
449
503
|
countries = ISO3166::Country.translations('fr')
|
|
450
504
|
expect(countries).to be_an(Hash)
|
|
451
|
-
expect(countries.first[0]).to eq('
|
|
452
|
-
expect(countries.first).to eq(%w[
|
|
505
|
+
expect(countries.first[0]).to eq('AD')
|
|
506
|
+
expect(countries.first).to eq(%w[AD Andorre])
|
|
453
507
|
# countries missing the desired locale will not be added to the list
|
|
454
508
|
# so all 250 countries may not be returned, 'fr' returns 249, for example
|
|
455
509
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
@@ -458,8 +512,8 @@ describe ISO3166::Country do
|
|
|
458
512
|
it 'should return an hash of all country names in English if no locale is passed' do
|
|
459
513
|
countries = ISO3166::Country.translations
|
|
460
514
|
expect(countries).to be_an(Hash)
|
|
461
|
-
expect(countries.first[0]).to eq('
|
|
462
|
-
expect(countries.first).to eq(%w[
|
|
515
|
+
expect(countries.first[0]).to eq('AD')
|
|
516
|
+
expect(countries.first).to eq(%w[AD Andorra])
|
|
463
517
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
464
518
|
end
|
|
465
519
|
end
|
|
@@ -896,16 +950,6 @@ describe ISO3166::Country do
|
|
|
896
950
|
end
|
|
897
951
|
end
|
|
898
952
|
|
|
899
|
-
describe 'names in Data' do
|
|
900
|
-
it 'should be unique (to allow .find_by_any_name work properly)' do
|
|
901
|
-
names = ISO3166::Data.cache.map do |_k, v|
|
|
902
|
-
[v['iso_short_name'], v['unofficial_names']].flatten.uniq
|
|
903
|
-
end.flatten
|
|
904
|
-
|
|
905
|
-
expect(names.size).to eq(names.uniq.size)
|
|
906
|
-
end
|
|
907
|
-
end
|
|
908
|
-
|
|
909
953
|
describe 'Norway' do
|
|
910
954
|
let(:norway) { ISO3166::Country.search('NO') }
|
|
911
955
|
|
data/spec/data_spec.rb
CHANGED
|
@@ -122,8 +122,12 @@ describe ISO3166::Data do
|
|
|
122
122
|
expect(subject.iso_short_name).to eq 'NEW Taiwan'
|
|
123
123
|
expect(subject.translations).to eq('en' => 'NEW Taiwan',
|
|
124
124
|
'de' => 'NEW Taiwan')
|
|
125
|
-
expect(subject.subdivisions).to eq(
|
|
126
|
-
|
|
125
|
+
expect(subject.subdivisions.keys).to eq(%w[CHA CYI])
|
|
126
|
+
expect(subject.subdivisions.values.map(&:name)).to eq(['New Changhua', 'New Municipality'])
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
after do
|
|
130
|
+
ISO3166.reset
|
|
127
131
|
end
|
|
128
132
|
end
|
|
129
133
|
|
|
@@ -149,8 +153,8 @@ describe ISO3166::Data do
|
|
|
149
153
|
data = ISO3166::Data.new('LOL').call
|
|
150
154
|
expect(data['iso_short_name']).to eq 'Happy Country'
|
|
151
155
|
expect(subject.iso_short_name).to eq 'Happy Country'
|
|
152
|
-
expect(subject.subdivisions).to eq(
|
|
153
|
-
|
|
156
|
+
expect(subject.subdivisions.keys).to eq(%w[LOL1 LOL2])
|
|
157
|
+
expect(subject.subdivisions.values.map(&:name)).to eq(['Happy sub1', 'Happy sub2'])
|
|
154
158
|
end
|
|
155
159
|
|
|
156
160
|
it 'detect a stale cache' do
|
|
@@ -181,7 +185,61 @@ describe ISO3166::Data do
|
|
|
181
185
|
end
|
|
182
186
|
|
|
183
187
|
after do
|
|
184
|
-
ISO3166
|
|
188
|
+
ISO3166.reset
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
describe 'data checks' do
|
|
193
|
+
context 'subdivision YAML files' do
|
|
194
|
+
it 'has a non-blank code for all subdivisions' do
|
|
195
|
+
Dir['lib/countries/data/subdivisions/*.yaml'].each do |file|
|
|
196
|
+
data = YAML.load_file(file)
|
|
197
|
+
expect(data.values.none?{|s| s['code'].nil? }).to be_truthy, "empty subdivision code in #{file}"
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
it 'has a non-blank, lowercase and snake_case type for all subdivisions' do
|
|
202
|
+
Dir['lib/countries/data/subdivisions/*.yaml'].each do |file|
|
|
203
|
+
data = YAML.load_file(file)
|
|
204
|
+
no_type = data.select{|k,v| v['type'].nil? }
|
|
205
|
+
expect(no_type).to be_empty, "empty subdivision type in #{file} - #{no_type.keys}"
|
|
206
|
+
uppercase = data.select{|k,v| v['type'] =~ /[A-Z]/ }
|
|
207
|
+
expect(uppercase).to be_empty, "uppercase characters in subdivision type in #{file} - #{uppercase.keys}"
|
|
208
|
+
spaces = data.select{|k,v| v['type'] =~ /\s/ }
|
|
209
|
+
expect(spaces).to be_empty, "whitespace characters in subdivision type in #{file} - #{spaces.keys}"
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
it 'has a non-blank name for all subdivisions' do
|
|
214
|
+
Dir['lib/countries/data/subdivisions/*.yaml'].each do |file|
|
|
215
|
+
data = YAML.load_file(file)
|
|
216
|
+
expect(data.values.none?{|s| s['name'].nil? }).to be_truthy, "empty subdivision name in #{file}"
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
context 'cached country subdivision data' do
|
|
222
|
+
it 'has a non-blank code for all subdivisions' do
|
|
223
|
+
ISO3166::Country.all.each do |country|
|
|
224
|
+
expect(country.subdivisions.values.none?{|s| s['code'].nil? }).to be_truthy, "empty subdivision code in #{country}"
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
it 'has a non-blank name for all subdivisions' do
|
|
229
|
+
ISO3166::Country.all.each do |country|
|
|
230
|
+
expect(country.subdivisions.values.none?{|s| s['name'].nil? }).to be_truthy, "empty subdivision name in #{country}"
|
|
231
|
+
end
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
context 'names in Data' do
|
|
236
|
+
it 'should be unique (to allow .find_by_any_name work properly)' do
|
|
237
|
+
names = ISO3166::Data.cache.map do |_k, v|
|
|
238
|
+
[v['iso_short_name'], v['unofficial_names']].flatten.uniq
|
|
239
|
+
end.flatten
|
|
240
|
+
|
|
241
|
+
expect(names.size).to eq(names.uniq.size)
|
|
242
|
+
end
|
|
185
243
|
end
|
|
186
244
|
end
|
|
187
245
|
end
|