countries 3.1.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +37 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +71 -1
- data/Gemfile +5 -0
- data/README.markdown +50 -35
- data/Rakefile +5 -3
- data/countries.gemspec +10 -5
- data/lib/countries/cache/countries.json +1 -1
- data/lib/countries/cache/locales/an.json +1 -1
- data/lib/countries/cache/locales/be.json +1 -1
- data/lib/countries/cache/locales/cv.json +1 -1
- data/lib/countries/cache/locales/he.json +1 -1
- data/lib/countries/cache/locales/hr.json +1 -1
- data/lib/countries/cache/locales/mk.json +1 -1
- data/lib/countries/cache/locales/ru.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/tr.json +1 -1
- data/lib/countries/country/class_methods.rb +19 -5
- data/lib/countries/country.rb +4 -0
- data/lib/countries/data/countries/AL.yaml +2 -2
- data/lib/countries/data/countries/AM.yaml +2 -2
- data/lib/countries/data/countries/AO.yaml +10 -10
- data/lib/countries/data/countries/AQ.yaml +2 -2
- data/lib/countries/data/countries/AS.yaml +2 -2
- data/lib/countries/data/countries/AT.yaml +3 -3
- data/lib/countries/data/countries/BA.yaml +4 -4
- data/lib/countries/data/countries/BD.yaml +2 -2
- data/lib/countries/data/countries/BE.yaml +1 -1
- data/lib/countries/data/countries/BF.yaml +8 -8
- data/lib/countries/data/countries/BG.yaml +4 -4
- data/lib/countries/data/countries/BH.yaml +4 -4
- data/lib/countries/data/countries/BI.yaml +6 -6
- data/lib/countries/data/countries/BJ.yaml +2 -2
- data/lib/countries/data/countries/BR.yaml +4 -4
- data/lib/countries/data/countries/BT.yaml +6 -6
- data/lib/countries/data/countries/BV.yaml +10 -10
- data/lib/countries/data/countries/BW.yaml +4 -4
- data/lib/countries/data/countries/CC.yaml +2 -2
- data/lib/countries/data/countries/CF.yaml +2 -2
- data/lib/countries/data/countries/CG.yaml +2 -2
- data/lib/countries/data/countries/CH.yaml +3 -3
- data/lib/countries/data/countries/CI.yaml +2 -2
- data/lib/countries/data/countries/CL.yaml +2 -2
- data/lib/countries/data/countries/CN.yaml +4 -4
- data/lib/countries/data/countries/CO.yaml +4 -4
- data/lib/countries/data/countries/CR.yaml +2 -2
- data/lib/countries/data/countries/CV.yaml +2 -2
- data/lib/countries/data/countries/CY.yaml +2 -2
- data/lib/countries/data/countries/CZ.yaml +3 -3
- data/lib/countries/data/countries/DE.yaml +2 -2
- data/lib/countries/data/countries/DJ.yaml +6 -6
- data/lib/countries/data/countries/DK.yaml +2 -2
- data/lib/countries/data/countries/DZ.yaml +6 -6
- data/lib/countries/data/countries/EC.yaml +4 -4
- data/lib/countries/data/countries/EE.yaml +3 -3
- data/lib/countries/data/countries/ES.yaml +1 -1
- data/lib/countries/data/countries/FI.yaml +5 -5
- data/lib/countries/data/countries/FK.yaml +2 -2
- data/lib/countries/data/countries/FM.yaml +2 -2
- data/lib/countries/data/countries/FO.yaml +5 -5
- data/lib/countries/data/countries/FR.yaml +3 -3
- data/lib/countries/data/countries/GE.yaml +4 -4
- data/lib/countries/data/countries/GG.yaml +10 -10
- data/lib/countries/data/countries/GH.yaml +4 -4
- data/lib/countries/data/countries/GI.yaml +2 -2
- data/lib/countries/data/countries/GL.yaml +6 -6
- data/lib/countries/data/countries/GM.yaml +4 -4
- data/lib/countries/data/countries/GN.yaml +2 -2
- data/lib/countries/data/countries/GR.yaml +2 -2
- data/lib/countries/data/countries/GS.yaml +2 -2
- data/lib/countries/data/countries/GT.yaml +2 -2
- data/lib/countries/data/countries/HK.yaml +4 -4
- data/lib/countries/data/countries/HN.yaml +2 -2
- data/lib/countries/data/countries/HR.yaml +3 -3
- data/lib/countries/data/countries/HU.yaml +7 -7
- data/lib/countries/data/countries/IE.yaml +10 -10
- data/lib/countries/data/countries/IM.yaml +8 -8
- data/lib/countries/data/countries/IN.yaml +2 -2
- data/lib/countries/data/countries/IO.yaml +2 -2
- data/lib/countries/data/countries/IQ.yaml +2 -2
- data/lib/countries/data/countries/IS.yaml +4 -4
- data/lib/countries/data/countries/IT.yaml +1 -1
- data/lib/countries/data/countries/JO.yaml +2 -2
- data/lib/countries/data/countries/KE.yaml +2 -2
- data/lib/countries/data/countries/KG.yaml +2 -2
- data/lib/countries/data/countries/KI.yaml +6 -6
- data/lib/countries/data/countries/KP.yaml +3 -2
- data/lib/countries/data/countries/KZ.yaml +2 -2
- data/lib/countries/data/countries/LA.yaml +6 -6
- data/lib/countries/data/countries/LT.yaml +6 -6
- data/lib/countries/data/countries/LV.yaml +4 -4
- data/lib/countries/data/countries/MA.yaml +4 -4
- data/lib/countries/data/countries/MD.yaml +8 -8
- data/lib/countries/data/countries/ME.yaml +2 -2
- data/lib/countries/data/countries/MH.yaml +2 -2
- data/lib/countries/data/countries/MK.yaml +2 -2
- data/lib/countries/data/countries/ML.yaml +4 -4
- data/lib/countries/data/countries/MN.yaml +8 -8
- data/lib/countries/data/countries/MR.yaml +2 -2
- data/lib/countries/data/countries/MT.yaml +2 -2
- data/lib/countries/data/countries/MV.yaml +2 -2
- data/lib/countries/data/countries/MW.yaml +2 -2
- data/lib/countries/data/countries/MX.yaml +2 -2
- data/lib/countries/data/countries/MY.yaml +2 -2
- data/lib/countries/data/countries/NA.yaml +4 -4
- data/lib/countries/data/countries/NE.yaml +4 -4
- data/lib/countries/data/countries/NI.yaml +2 -2
- data/lib/countries/data/countries/NL.yaml +3 -3
- data/lib/countries/data/countries/NO.yaml +4 -4
- data/lib/countries/data/countries/NP.yaml +6 -6
- data/lib/countries/data/countries/OM.yaml +2 -2
- data/lib/countries/data/countries/PA.yaml +2 -2
- data/lib/countries/data/countries/PE.yaml +4 -4
- data/lib/countries/data/countries/PF.yaml +4 -4
- data/lib/countries/data/countries/PH.yaml +2 -2
- data/lib/countries/data/countries/PK.yaml +4 -4
- data/lib/countries/data/countries/PL.yaml +4 -4
- data/lib/countries/data/countries/PR.yaml +8 -8
- data/lib/countries/data/countries/PT.yaml +5 -5
- data/lib/countries/data/countries/PY.yaml +2 -2
- data/lib/countries/data/countries/QA.yaml +2 -2
- data/lib/countries/data/countries/RO.yaml +6 -6
- data/lib/countries/data/countries/RU.yaml +2 -2
- data/lib/countries/data/countries/RW.yaml +2 -2
- data/lib/countries/data/countries/SA.yaml +2 -2
- data/lib/countries/data/countries/SC.yaml +2 -2
- data/lib/countries/data/countries/SD.yaml +2 -2
- data/lib/countries/data/countries/SE.yaml +4 -4
- data/lib/countries/data/countries/SH.yaml +4 -4
- data/lib/countries/data/countries/SI.yaml +4 -4
- data/lib/countries/data/countries/SJ.yaml +5 -5
- data/lib/countries/data/countries/SK.yaml +6 -6
- data/lib/countries/data/countries/SL.yaml +2 -2
- data/lib/countries/data/countries/SN.yaml +4 -4
- data/lib/countries/data/countries/TF.yaml +5 -5
- data/lib/countries/data/countries/TG.yaml +6 -6
- data/lib/countries/data/countries/TV.yaml +2 -2
- data/lib/countries/data/countries/TZ.yaml +2 -2
- data/lib/countries/data/countries/UA.yaml +5 -5
- data/lib/countries/data/countries/UG.yaml +4 -4
- data/lib/countries/data/countries/UY.yaml +2 -2
- data/lib/countries/data/countries/VC.yaml +2 -2
- data/lib/countries/data/countries/VE.yaml +2 -2
- data/lib/countries/data/countries/VN.yaml +4 -4
- data/lib/countries/data/countries/WS.yaml +2 -2
- data/lib/countries/data/countries/ZA.yaml +2 -2
- data/lib/countries/data/countries/ZM.yaml +4 -4
- data/lib/countries/data/countries/ZW.yaml +4 -4
- data/lib/countries/data/subdivisions/AD.yaml +35 -28
- data/lib/countries/data/subdivisions/AE.yaml +154 -63
- data/lib/countries/data/subdivisions/AF.yaml +605 -300
- data/lib/countries/data/subdivisions/AG.yaml +149 -67
- data/lib/countries/data/subdivisions/AI.yaml +139 -125
- data/lib/countries/data/subdivisions/AL.yaml +472 -144
- data/lib/countries/data/subdivisions/AM.yaml +236 -88
- data/lib/countries/data/subdivisions/AO.yaml +344 -144
- data/lib/countries/data/subdivisions/AR.yaml +450 -187
- data/lib/countries/data/subdivisions/AS.yaml +34 -15
- data/lib/countries/data/subdivisions/AT.yaml +202 -72
- data/lib/countries/data/subdivisions/AU.yaml +212 -64
- data/lib/countries/data/subdivisions/AW.yaml +9 -0
- data/lib/countries/data/subdivisions/AX.yaml +20 -9
- data/lib/countries/data/subdivisions/AZ.yaml +1550 -592
- data/lib/countries/data/subdivisions/BA.yaml +189 -16
- data/lib/countries/data/subdivisions/BB.yaml +190 -88
- data/lib/countries/data/subdivisions/BD.yaml +1192 -519
- data/lib/countries/data/subdivisions/BE.yaml +278 -88
- data/lib/countries/data/subdivisions/BF.yaml +993 -366
- data/lib/countries/data/subdivisions/BG.yaml +600 -219
- data/lib/countries/data/subdivisions/BH.yaml +72 -35
- data/lib/countries/data/subdivisions/BI.yaml +298 -123
- data/lib/countries/data/subdivisions/BJ.yaml +226 -96
- data/lib/countries/data/subdivisions/BL.yaml +11 -0
- data/lib/countries/data/subdivisions/BM.yaml +110 -99
- data/lib/countries/data/subdivisions/BN.yaml +63 -32
- data/lib/countries/data/subdivisions/BO.yaml +157 -72
- data/lib/countries/data/subdivisions/BQ.yaml +63 -24
- data/lib/countries/data/subdivisions/BR.yaml +689 -216
- data/lib/countries/data/subdivisions/BS.yaml +625 -108
- data/lib/countries/data/subdivisions/BT.yaml +346 -160
- data/lib/countries/data/subdivisions/BW.yaml +294 -72
- data/lib/countries/data/subdivisions/BY.yaml +140 -51
- data/lib/countries/data/subdivisions/BZ.yaml +97 -48
- data/lib/countries/data/subdivisions/CA.yaml +358 -105
- data/lib/countries/data/subdivisions/CD.yaml +451 -68
- data/lib/countries/data/subdivisions/CF.yaml +291 -136
- data/lib/countries/data/subdivisions/CG.yaml +217 -88
- data/lib/countries/data/subdivisions/CH.yaml +593 -208
- data/lib/countries/data/subdivisions/CI.yaml +431 -66
- data/lib/countries/data/subdivisions/CK.yaml +110 -99
- data/lib/countries/data/subdivisions/CL.yaml +262 -132
- data/lib/countries/data/subdivisions/CM.yaml +190 -80
- data/lib/countries/data/subdivisions/CN.yaml +691 -12
- data/lib/countries/data/subdivisions/CO.yaml +643 -264
- data/lib/countries/data/subdivisions/CP.yaml +4 -0
- data/lib/countries/data/subdivisions/CR.yaml +119 -56
- data/lib/countries/data/subdivisions/CU.yaml +268 -128
- data/lib/countries/data/subdivisions/CV.yaml +414 -126
- data/lib/countries/data/subdivisions/CW.yaml +9 -0
- data/lib/countries/data/subdivisions/CY.yaml +102 -48
- data/lib/countries/data/subdivisions/CZ.yaml +2430 -53
- data/lib/countries/data/subdivisions/DE.yaml +468 -128
- data/lib/countries/data/subdivisions/DJ.yaml +110 -48
- data/lib/countries/data/subdivisions/DK.yaml +186 -96
- data/lib/countries/data/subdivisions/DM.yaml +159 -80
- data/lib/countries/data/subdivisions/DO.yaml +660 -248
- data/lib/countries/data/subdivisions/DZ.yaml +809 -384
- data/lib/countries/data/subdivisions/EC.yaml +391 -192
- data/lib/countries/data/subdivisions/EE.yaml +543 -120
- data/lib/countries/data/subdivisions/EG.yaml +472 -216
- data/lib/countries/data/subdivisions/EH.yaml +24 -16
- data/lib/countries/data/subdivisions/ER.yaml +109 -48
- data/lib/countries/data/subdivisions/ES.yaml +1805 -550
- data/lib/countries/data/subdivisions/ET.yaml +207 -88
- data/lib/countries/data/subdivisions/FI.yaml +421 -37
- data/lib/countries/data/subdivisions/FJ.yaml +314 -40
- data/lib/countries/data/subdivisions/FM.yaml +63 -32
- data/lib/countries/data/subdivisions/FO.yaml +60 -54
- data/lib/countries/data/subdivisions/FR.yaml +2861 -922
- data/lib/countries/data/subdivisions/GA.yaml +159 -72
- data/lib/countries/data/subdivisions/GB.yaml +4960 -1755
- data/lib/countries/data/subdivisions/GD.yaml +114 -56
- data/lib/countries/data/subdivisions/GE.yaml +238 -96
- data/lib/countries/data/subdivisions/GF.yaml +11 -0
- data/lib/countries/data/subdivisions/GG.yaml +110 -99
- data/lib/countries/data/subdivisions/GH.yaml +266 -79
- data/lib/countries/data/subdivisions/GL.yaml +89 -0
- data/lib/countries/data/subdivisions/GM.yaml +124 -48
- data/lib/countries/data/subdivisions/GN.yaml +711 -274
- data/lib/countries/data/subdivisions/GP.yaml +11 -0
- data/lib/countries/data/subdivisions/GQ.yaml +143 -72
- data/lib/countries/data/subdivisions/GR.yaml +594 -165
- data/lib/countries/data/subdivisions/GT.yaml +351 -176
- data/lib/countries/data/subdivisions/GU.yaml +85 -58
- data/lib/countries/data/subdivisions/GW.yaml +192 -72
- data/lib/countries/data/subdivisions/GY.yaml +163 -80
- data/lib/countries/data/subdivisions/HK.yaml +86 -54
- data/lib/countries/data/subdivisions/HN.yaml +274 -144
- data/lib/countries/data/subdivisions/HR.yaml +429 -168
- data/lib/countries/data/subdivisions/HT.yaml +179 -72
- data/lib/countries/data/subdivisions/HU.yaml +791 -339
- data/lib/countries/data/subdivisions/IC.yaml +4 -0
- data/lib/countries/data/subdivisions/ID.yaml +2376 -1858
- data/lib/countries/data/subdivisions/IE.yaml +650 -259
- data/lib/countries/data/subdivisions/IL.yaml +114 -48
- data/lib/countries/data/subdivisions/IM.yaml +240 -216
- data/lib/countries/data/subdivisions/IN.yaml +1005 -298
- data/lib/countries/data/subdivisions/IQ.yaml +316 -139
- data/lib/countries/data/subdivisions/IR.yaml +596 -239
- data/lib/countries/data/subdivisions/IS.yaml +373 -67
- data/lib/countries/data/subdivisions/IT.yaml +2693 -880
- data/lib/countries/data/subdivisions/JE.yaml +120 -108
- data/lib/countries/data/subdivisions/JM.yaml +243 -112
- data/lib/countries/data/subdivisions/JO.yaml +193 -96
- data/lib/countries/data/subdivisions/JP.yaml +950 -376
- data/lib/countries/data/subdivisions/KE.yaml +807 -40
- data/lib/countries/data/subdivisions/KG.yaml +188 -64
- data/lib/countries/data/subdivisions/KH.yaml +437 -192
- data/lib/countries/data/subdivisions/KI.yaml +57 -24
- data/lib/countries/data/subdivisions/KM.yaml +49 -24
- data/lib/countries/data/subdivisions/KN.yaml +308 -112
- data/lib/countries/data/subdivisions/KP.yaml +365 -57
- data/lib/countries/data/subdivisions/KR.yaml +393 -128
- data/lib/countries/data/subdivisions/KW.yaml +87 -48
- data/lib/countries/data/subdivisions/KY.yaml +36 -24
- data/lib/countries/data/subdivisions/KZ.yaml +362 -135
- data/lib/countries/data/subdivisions/LA.yaml +300 -145
- data/lib/countries/data/subdivisions/LB.yaml +134 -48
- data/lib/countries/data/subdivisions/LC.yaml +166 -0
- data/lib/countries/data/subdivisions/LI.yaml +186 -88
- data/lib/countries/data/subdivisions/LK.yaml +544 -200
- data/lib/countries/data/subdivisions/LR.yaml +252 -110
- data/lib/countries/data/subdivisions/LS.yaml +149 -80
- data/lib/countries/data/subdivisions/LT.yaml +1042 -80
- data/lib/countries/data/subdivisions/LU.yaml +200 -17
- data/lib/countries/data/subdivisions/LV.yaml +2399 -223
- data/lib/countries/data/subdivisions/LY.yaml +339 -162
- data/lib/countries/data/subdivisions/MA.yaml +1443 -484
- data/lib/countries/data/subdivisions/MC.yaml +250 -0
- data/lib/countries/data/subdivisions/MD.yaml +638 -93
- data/lib/countries/data/subdivisions/ME.yaml +425 -168
- data/lib/countries/data/subdivisions/MF.yaml +9 -0
- data/lib/countries/data/subdivisions/MG.yaml +93 -48
- data/lib/countries/data/subdivisions/MH.yaml +422 -199
- data/lib/countries/data/subdivisions/MK.yaml +2972 -255
- data/lib/countries/data/subdivisions/ML.yaml +187 -71
- data/lib/countries/data/subdivisions/MM.yaml +287 -112
- data/lib/countries/data/subdivisions/MN.yaml +421 -176
- data/lib/countries/data/subdivisions/MO.yaml +9 -0
- data/lib/countries/data/subdivisions/MP.yaml +30 -12
- data/lib/countries/data/subdivisions/MQ.yaml +11 -0
- data/lib/countries/data/subdivisions/MR.yaml +245 -99
- data/lib/countries/data/subdivisions/MS.yaml +30 -27
- data/lib/countries/data/subdivisions/MT.yaml +1059 -544
- data/lib/countries/data/subdivisions/MU.yaml +317 -131
- data/lib/countries/data/subdivisions/MV.yaml +457 -163
- data/lib/countries/data/subdivisions/MW.yaml +537 -216
- data/lib/countries/data/subdivisions/MX.yaml +709 -256
- data/lib/countries/data/subdivisions/MY.yaml +336 -128
- data/lib/countries/data/subdivisions/MZ.yaml +191 -83
- data/lib/countries/data/subdivisions/NA.yaml +220 -107
- data/lib/countries/data/subdivisions/NC.yaml +26 -9
- data/lib/countries/data/subdivisions/NE.yaml +170 -64
- data/lib/countries/data/subdivisions/NG.yaml +870 -296
- data/lib/countries/data/subdivisions/NI.yaml +260 -136
- data/lib/countries/data/subdivisions/NL.yaml +381 -96
- data/lib/countries/data/subdivisions/NO.yaml +633 -1096
- data/lib/countries/data/subdivisions/NP.yaml +383 -112
- data/lib/countries/data/subdivisions/NR.yaml +260 -112
- data/lib/countries/data/subdivisions/NZ.yaml +318 -131
- data/lib/countries/data/subdivisions/OM.yaml +202 -52
- data/lib/countries/data/subdivisions/PA.yaml +203 -99
- data/lib/countries/data/subdivisions/PE.yaml +418 -208
- data/lib/countries/data/subdivisions/PF.yaml +30 -15
- data/lib/countries/data/subdivisions/PG.yaml +381 -155
- data/lib/countries/data/subdivisions/PH.yaml +1855 -662
- data/lib/countries/data/subdivisions/PK.yaml +185 -54
- data/lib/countries/data/subdivisions/PL.yaml +1176 -127
- data/lib/countries/data/subdivisions/PM.yaml +18 -6
- data/lib/countries/data/subdivisions/PR.yaml +1107 -0
- data/lib/countries/data/subdivisions/PS.yaml +257 -0
- data/lib/countries/data/subdivisions/PT.yaml +342 -160
- data/lib/countries/data/subdivisions/PW.yaml +269 -128
- data/lib/countries/data/subdivisions/PY.yaml +321 -144
- data/lib/countries/data/subdivisions/QA.yaml +168 -65
- data/lib/countries/data/subdivisions/RE.yaml +11 -0
- data/lib/countries/data/subdivisions/RO.yaml +729 -336
- data/lib/countries/data/subdivisions/RS.yaml +589 -240
- data/lib/countries/data/subdivisions/RU.yaml +1875 -665
- data/lib/countries/data/subdivisions/RW.yaml +102 -40
- data/lib/countries/data/subdivisions/SA.yaml +234 -104
- data/lib/countries/data/subdivisions/SB.yaml +169 -80
- data/lib/countries/data/subdivisions/SC.yaml +462 -184
- data/lib/countries/data/subdivisions/SD.yaml +163 -22
- data/lib/countries/data/subdivisions/SE.yaml +435 -237
- data/lib/countries/data/subdivisions/SG.yaml +111 -19
- data/lib/countries/data/subdivisions/SH.yaml +67 -14
- data/lib/countries/data/subdivisions/SI.yaml +3570 -1549
- data/lib/countries/data/subdivisions/SJ.yaml +20 -18
- data/lib/countries/data/subdivisions/SK.yaml +129 -64
- data/lib/countries/data/subdivisions/SL.yaml +80 -31
- data/lib/countries/data/subdivisions/SM.yaml +159 -72
- data/lib/countries/data/subdivisions/SN.yaml +233 -88
- data/lib/countries/data/subdivisions/SO.yaml +311 -144
- data/lib/countries/data/subdivisions/SR.yaml +158 -80
- data/lib/countries/data/subdivisions/SS.yaml +196 -0
- data/lib/countries/data/subdivisions/ST.yaml +49 -16
- data/lib/countries/data/subdivisions/SV.yaml +231 -112
- data/lib/countries/data/subdivisions/SX.yaml +9 -0
- data/lib/countries/data/subdivisions/SY.yaml +220 -112
- data/lib/countries/data/subdivisions/SZ.yaml +65 -32
- data/lib/countries/data/subdivisions/TA.yaml +4 -0
- data/lib/countries/data/subdivisions/TD.yaml +409 -139
- data/lib/countries/data/subdivisions/TF.yaml +38 -20
- data/lib/countries/data/subdivisions/TG.yaml +75 -40
- data/lib/countries/data/subdivisions/TH.yaml +1451 -616
- data/lib/countries/data/subdivisions/TJ.yaml +100 -24
- data/lib/countries/data/subdivisions/TK.yaml +30 -27
- data/lib/countries/data/subdivisions/TL.yaml +209 -104
- data/lib/countries/data/subdivisions/TM.yaml +116 -40
- data/lib/countries/data/subdivisions/TN.yaml +412 -192
- data/lib/countries/data/subdivisions/TO.yaml +75 -40
- data/lib/countries/data/subdivisions/TR.yaml +1817 -648
- data/lib/countries/data/subdivisions/TT.yaml +296 -113
- data/lib/countries/data/subdivisions/TV.yaml +133 -59
- data/lib/countries/data/subdivisions/TW.yaml +481 -164
- data/lib/countries/data/subdivisions/TZ.yaml +661 -208
- data/lib/countries/data/subdivisions/UA.yaml +505 -216
- data/lib/countries/data/subdivisions/UG.yaml +2262 -640
- data/lib/countries/data/subdivisions/UM.yaml +216 -71
- data/lib/countries/data/subdivisions/US.yaml +1658 -464
- data/lib/countries/data/subdivisions/UY.yaml +367 -152
- data/lib/countries/data/subdivisions/UZ.yaml +289 -113
- data/lib/countries/data/subdivisions/VC.yaml +101 -48
- data/lib/countries/data/subdivisions/VE.yaml +456 -200
- data/lib/countries/data/subdivisions/VI.yaml +26 -9
- data/lib/countries/data/subdivisions/VN.yaml +3664 -2996
- data/lib/countries/data/subdivisions/VU.yaml +98 -48
- data/lib/countries/data/subdivisions/WF.yaml +73 -0
- data/lib/countries/data/subdivisions/WS.yaml +200 -88
- data/lib/countries/data/subdivisions/YE.yaml +375 -152
- data/lib/countries/data/subdivisions/YT.yaml +76 -51
- data/lib/countries/data/subdivisions/ZA.yaml +238 -72
- data/lib/countries/data/subdivisions/ZM.yaml +157 -72
- data/lib/countries/data/subdivisions/ZW.yaml +152 -73
- data/lib/countries/data/translation_corrections.yaml +6 -1
- data/lib/countries/data.rb +48 -22
- data/lib/countries/sources/cldr/downloader.rb +12 -13
- data/lib/countries/tasks/geocoding.rake +9 -16
- data/lib/countries/translations.rb +1 -1
- data/lib/countries/version.rb +1 -1
- data/lib/countries.rb +0 -1
- data/spec/country_spec.rb +100 -0
- data/spec/data_spec.rb +4 -4
- data/spec/thread_safety_spec.rb +46 -0
- metadata +31 -23
- data/.travis.yml +0 -15
data/lib/countries/data.rb
CHANGED
|
@@ -5,7 +5,7 @@ module ISO3166
|
|
|
5
5
|
@@cache_dir = [File.dirname(__FILE__), 'cache']
|
|
6
6
|
@@cache = {}
|
|
7
7
|
@@registered_data = {}
|
|
8
|
-
@@
|
|
8
|
+
@@mutex = Mutex.new
|
|
9
9
|
|
|
10
10
|
def initialize(alpha2)
|
|
11
11
|
@alpha2 = alpha2.to_s.upcase
|
|
@@ -26,10 +26,9 @@ module ISO3166
|
|
|
26
26
|
|
|
27
27
|
def register(data)
|
|
28
28
|
alpha2 = data[:alpha2].upcase
|
|
29
|
-
@@registered_data[alpha2] =
|
|
30
|
-
data.each_with_object({}) { |(k, v), a| a[k.to_s] = v }
|
|
29
|
+
@@registered_data[alpha2] = deep_stringify_keys(data)
|
|
31
30
|
@@registered_data[alpha2]['translations'] = \
|
|
32
|
-
Translations.new.merge(data[
|
|
31
|
+
Translations.new.merge(data['translations'] || {})
|
|
33
32
|
@@cache = cache.merge(@@registered_data)
|
|
34
33
|
end
|
|
35
34
|
|
|
@@ -40,9 +39,7 @@ module ISO3166
|
|
|
40
39
|
end
|
|
41
40
|
|
|
42
41
|
def cache
|
|
43
|
-
|
|
44
|
-
update_cache
|
|
45
|
-
end
|
|
42
|
+
update_cache
|
|
46
43
|
end
|
|
47
44
|
|
|
48
45
|
def reset
|
|
@@ -64,10 +61,12 @@ module ISO3166
|
|
|
64
61
|
|
|
65
62
|
def load_data!
|
|
66
63
|
return @@cache unless load_required?
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
64
|
+
synchronized do
|
|
65
|
+
@@cache = load_cache %w(countries.json)
|
|
66
|
+
@@_country_codes = @@cache.keys
|
|
67
|
+
@@cache = @@cache.merge(@@registered_data)
|
|
68
|
+
@@cache
|
|
69
|
+
end
|
|
71
70
|
end
|
|
72
71
|
|
|
73
72
|
def sync_translations!
|
|
@@ -84,8 +83,23 @@ module ISO3166
|
|
|
84
83
|
|
|
85
84
|
private
|
|
86
85
|
|
|
86
|
+
def synchronized(&block)
|
|
87
|
+
if use_mutex?
|
|
88
|
+
@@mutex.synchronize(&block)
|
|
89
|
+
else
|
|
90
|
+
block.call
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def use_mutex?
|
|
95
|
+
# Stubbed in testing
|
|
96
|
+
true
|
|
97
|
+
end
|
|
98
|
+
|
|
87
99
|
def load_required?
|
|
88
|
-
|
|
100
|
+
synchronized do
|
|
101
|
+
@@cache.empty?
|
|
102
|
+
end
|
|
89
103
|
end
|
|
90
104
|
|
|
91
105
|
def loaded_codes
|
|
@@ -118,21 +132,25 @@ module ISO3166
|
|
|
118
132
|
end
|
|
119
133
|
|
|
120
134
|
def load_translations(locale)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
135
|
+
synchronized do
|
|
136
|
+
locale_names = load_cache(['locales', "#{locale}.json"])
|
|
137
|
+
internal_codes.each do |alpha2|
|
|
138
|
+
@@cache[alpha2]['translations'] ||= Translations.new
|
|
139
|
+
@@cache[alpha2]['translations'][locale] = locale_names[alpha2].freeze
|
|
140
|
+
@@cache[alpha2]['translated_names'] = @@cache[alpha2]['translations'].values.freeze
|
|
141
|
+
end
|
|
142
|
+
ISO3166.configuration.loaded_locales << locale
|
|
126
143
|
end
|
|
127
|
-
ISO3166.configuration.loaded_locales << locale
|
|
128
144
|
end
|
|
129
145
|
|
|
130
146
|
def unload_translations(locale)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
147
|
+
synchronized do
|
|
148
|
+
internal_codes.each do |alpha2|
|
|
149
|
+
@@cache[alpha2]['translations'].delete(locale)
|
|
150
|
+
@@cache[alpha2]['translated_names'] = @@cache[alpha2]['translations'].values.freeze
|
|
151
|
+
end
|
|
152
|
+
ISO3166.configuration.loaded_locales.delete(locale)
|
|
134
153
|
end
|
|
135
|
-
ISO3166.configuration.loaded_locales.delete(locale)
|
|
136
154
|
end
|
|
137
155
|
|
|
138
156
|
def load_cache(file_array)
|
|
@@ -143,6 +161,14 @@ module ISO3166
|
|
|
143
161
|
def datafile_path(file_array)
|
|
144
162
|
File.join([@@cache_dir] + file_array)
|
|
145
163
|
end
|
|
164
|
+
|
|
165
|
+
def deep_stringify_keys(data)
|
|
166
|
+
data.transform_keys!(&:to_s)
|
|
167
|
+
data.transform_values! do |v|
|
|
168
|
+
v.is_a?(Hash) ? deep_stringify_keys(v) : v
|
|
169
|
+
end
|
|
170
|
+
return data
|
|
171
|
+
end
|
|
146
172
|
end
|
|
147
173
|
end
|
|
148
174
|
end
|
|
@@ -2,6 +2,8 @@ require 'uri'
|
|
|
2
2
|
require 'net/http'
|
|
3
3
|
require 'nokogiri'
|
|
4
4
|
require 'fileutils'
|
|
5
|
+
require 'json'
|
|
6
|
+
|
|
5
7
|
module Sources
|
|
6
8
|
module CLDR
|
|
7
9
|
module Downloader
|
|
@@ -14,22 +16,19 @@ module Sources
|
|
|
14
16
|
def download_folder(type)
|
|
15
17
|
folder = File.join(ISO3166_ROOT_PATH, 'tmp', 'cldr', 'trunk', 'common', type)
|
|
16
18
|
FileUtils.mkdir_p(folder)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
url = URI.parse("https://api.github.com/repos/unicode-org/cldr/contents/common/" + type)
|
|
20
|
+
path_listing = JSON.parse(Net::HTTP.get_response(url).body)
|
|
21
|
+
path_listing.each do |path|
|
|
22
|
+
if path['name'] =~ /\.xml$/
|
|
23
|
+
File.open(File.join(folder, path['name']), 'w') do |f|
|
|
24
|
+
raw_url = URI.parse(path['download_url'])
|
|
25
|
+
f.write(Net::HTTP.get_response(raw_url).body)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
21
28
|
end
|
|
22
29
|
end
|
|
23
30
|
|
|
24
|
-
def get(path)
|
|
25
|
-
url = URI("http://www.unicode.org/repos/cldr/trunk/common/#{path}")
|
|
26
|
-
|
|
27
|
-
http = Net::HTTP.new(url.host, url.port)
|
|
28
|
-
|
|
29
|
-
request = Net::HTTP::Get.new(url)
|
|
30
|
-
response = http.request(request)
|
|
31
|
-
response.read_body
|
|
32
|
-
end
|
|
33
31
|
end
|
|
34
32
|
end
|
|
35
33
|
end
|
|
34
|
+
|
|
@@ -2,7 +2,9 @@ require 'geocoder'
|
|
|
2
2
|
require 'retryable'
|
|
3
3
|
|
|
4
4
|
Geocoder.configure(
|
|
5
|
-
|
|
5
|
+
lookup: :google,
|
|
6
|
+
timeout: 10,
|
|
7
|
+
api_key: GOOGLE_API_KEY
|
|
6
8
|
)
|
|
7
9
|
|
|
8
10
|
# raise on geocoding errors such as query limit exceeded
|
|
@@ -10,9 +12,9 @@ Geocoder.configure(always_raise: :all)
|
|
|
10
12
|
# Try to geocode a given query, on exceptions it retries up to 3 times then gives up.
|
|
11
13
|
# @param [String] query string to geocode
|
|
12
14
|
# @return [Hash] first valid result or nil
|
|
13
|
-
def geocode(query)
|
|
15
|
+
def geocode(query, params)
|
|
14
16
|
Retryable.retryable(tries: 3, sleep: ->(n) { 2**n }) do
|
|
15
|
-
Geocoder.search(query).first
|
|
17
|
+
Geocoder.search(query, params: params).first
|
|
16
18
|
end
|
|
17
19
|
rescue => e
|
|
18
20
|
warn "Attempts exceeded for query #{query}, last error was #{e.message}"
|
|
@@ -41,12 +43,8 @@ namespace :geocode do
|
|
|
41
43
|
# Load unmutated yaml file.
|
|
42
44
|
data = load_country_yaml(country.alpha2)
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
lookup = country.name if country.alpha2 == 'LU'
|
|
47
|
-
|
|
48
|
-
next unless (result = geocode(lookup))
|
|
49
|
-
puts 'WARNING:: Geocoder returned something that was not a country' unless result.types.include?('country')
|
|
46
|
+
next unless (result = geocode(country.name, {region: country.alpha2}))
|
|
47
|
+
puts "WARNING:: Geocoder returned something that was not a country for #{country.alpha2}" unless result.types.include?('country')
|
|
50
48
|
geometry = result.geometry
|
|
51
49
|
|
|
52
50
|
# Extract center point data
|
|
@@ -76,15 +74,10 @@ namespace :geocode do
|
|
|
76
74
|
# Iterate subdivisions
|
|
77
75
|
state_data = c.subdivisions.dup
|
|
78
76
|
state_data.reject { |_, data| data['geo'] }.each do |code, data|
|
|
79
|
-
location = "#{
|
|
77
|
+
location = "#{c.alpha2}-#{code}"
|
|
80
78
|
|
|
81
|
-
|
|
82
|
-
# cities, instead of the states.
|
|
83
|
-
if c.alpha2 == 'US' && %w(NY WA OK).include?(code)
|
|
84
|
-
location = "#{data['name']} State, United States"
|
|
85
|
-
end
|
|
79
|
+
next unless (result = geocode(location, {region: c.alpha2}))
|
|
86
80
|
|
|
87
|
-
next unless (result = geocode(location))
|
|
88
81
|
geometry = result.geometry
|
|
89
82
|
if geometry['location']
|
|
90
83
|
state_data[code]['geo'] ||= {}
|
data/lib/countries/version.rb
CHANGED
data/lib/countries.rb
CHANGED
data/spec/country_spec.rb
CHANGED
|
@@ -248,6 +248,10 @@ describe ISO3166::Country do
|
|
|
248
248
|
expect(virginia.name).to eq('Virginia')
|
|
249
249
|
end
|
|
250
250
|
|
|
251
|
+
it 'should have a code' do
|
|
252
|
+
expect(virginia.code).to eq('VA')
|
|
253
|
+
end
|
|
254
|
+
|
|
251
255
|
it 'should behave like a hash' do
|
|
252
256
|
expect(virginia['name']).to eq('Virginia')
|
|
253
257
|
end
|
|
@@ -345,6 +349,26 @@ describe ISO3166::Country do
|
|
|
345
349
|
expect(countries.first).to eq('Aruba')
|
|
346
350
|
expect(countries.size).to eq(NUM_OF_COUNTRIES)
|
|
347
351
|
end
|
|
352
|
+
|
|
353
|
+
context 'with custom countries' do
|
|
354
|
+
before do
|
|
355
|
+
ISO3166::Data.register(
|
|
356
|
+
alpha2: 'XX',
|
|
357
|
+
name: 'Custom Country',
|
|
358
|
+
translations: { 'en' => 'Custom Country' }
|
|
359
|
+
)
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
it 'should include custom registered countries' do
|
|
363
|
+
custom_country = ISO3166::Country.find_by_alpha2('XX')[1]
|
|
364
|
+
countries = ISO3166::Country.all_translated
|
|
365
|
+
expect(countries).to include(custom_country['name'])
|
|
366
|
+
end
|
|
367
|
+
|
|
368
|
+
after do
|
|
369
|
+
ISO3166::Data.unregister('XX')
|
|
370
|
+
end
|
|
371
|
+
end
|
|
348
372
|
end
|
|
349
373
|
|
|
350
374
|
describe 'all_names_with_codes' do
|
|
@@ -780,6 +804,45 @@ describe ISO3166::Country do
|
|
|
780
804
|
end
|
|
781
805
|
end
|
|
782
806
|
|
|
807
|
+
describe 'finder methods respond_to_missing?' do
|
|
808
|
+
subject { ISO3166::Country.respond_to?(method_name) }
|
|
809
|
+
describe 'find_all_by' do
|
|
810
|
+
context 'find by a valid Country attribute' do
|
|
811
|
+
let(:method_name) { :find_all_by_currency }
|
|
812
|
+
it { is_expected.to be true }
|
|
813
|
+
end
|
|
814
|
+
|
|
815
|
+
context 'find by an invalid attribute' do
|
|
816
|
+
let(:method_name) { :find_all_by_invalid }
|
|
817
|
+
it { is_expected.to be false }
|
|
818
|
+
end
|
|
819
|
+
end
|
|
820
|
+
|
|
821
|
+
describe 'hash finder methods' do
|
|
822
|
+
context 'find by a valid Country attribute' do
|
|
823
|
+
let(:method_name) { :find_by_name }
|
|
824
|
+
it { is_expected.to be true }
|
|
825
|
+
end
|
|
826
|
+
|
|
827
|
+
context 'find by an invalid attribute' do
|
|
828
|
+
let(:method_name) { :find_by_invalid }
|
|
829
|
+
it { is_expected.to be false }
|
|
830
|
+
end
|
|
831
|
+
end
|
|
832
|
+
|
|
833
|
+
describe 'country finder methods' do
|
|
834
|
+
context 'find country by a valid Country attribute' do
|
|
835
|
+
let(:method_name) { :find_country_by_alpha3 }
|
|
836
|
+
it { is_expected.to be true }
|
|
837
|
+
end
|
|
838
|
+
|
|
839
|
+
context 'find by an invalid attribute' do
|
|
840
|
+
let(:method_name) { :find_country_by_invalid }
|
|
841
|
+
it { is_expected.to be false }
|
|
842
|
+
end
|
|
843
|
+
end
|
|
844
|
+
end
|
|
845
|
+
|
|
783
846
|
describe 'names in Data' do
|
|
784
847
|
it 'should be unique (to allow .find_by_name work properly)' do
|
|
785
848
|
names = ISO3166::Data.cache.map do |_k, v|
|
|
@@ -838,6 +901,23 @@ describe ISO3166::Country do
|
|
|
838
901
|
end
|
|
839
902
|
end
|
|
840
903
|
|
|
904
|
+
describe 'in_esm?' do
|
|
905
|
+
let(:netherlands) { ISO3166::Country.search('NL') }
|
|
906
|
+
let(:switzerland) { ISO3166::Country.search('CH') }
|
|
907
|
+
|
|
908
|
+
it 'should return false for countries without esm_member or eea_member flag' do
|
|
909
|
+
expect(country.in_esm?).to be_falsey
|
|
910
|
+
end
|
|
911
|
+
|
|
912
|
+
it 'should return true for countries with eea_member flag set to true' do
|
|
913
|
+
expect(netherlands.in_esm?).to be_truthy
|
|
914
|
+
end
|
|
915
|
+
|
|
916
|
+
it 'should return true for countries with esm_member flag set to true' do
|
|
917
|
+
expect(switzerland.in_esm?).to be_truthy
|
|
918
|
+
end
|
|
919
|
+
end
|
|
920
|
+
|
|
841
921
|
describe 'gec' do
|
|
842
922
|
it 'should return the country\'s GEC code' do
|
|
843
923
|
expect(ISO3166::Country.new('NA').gec).to eql 'WA'
|
|
@@ -931,4 +1011,24 @@ describe ISO3166::Country do
|
|
|
931
1011
|
expect(countries.all? { |country| country.un_locode.length == 2 }).to be
|
|
932
1012
|
end
|
|
933
1013
|
end
|
|
1014
|
+
|
|
1015
|
+
describe '.pluck' do
|
|
1016
|
+
let(:args) { [] }
|
|
1017
|
+
|
|
1018
|
+
subject { ISO3166::Country.pluck(*args) }
|
|
1019
|
+
|
|
1020
|
+
it "returns empty arrays" do
|
|
1021
|
+
expect(subject.first).to be_empty
|
|
1022
|
+
expect(subject.last).to be_empty
|
|
1023
|
+
end
|
|
1024
|
+
|
|
1025
|
+
context "when asking for alpha2, alpha3 and name" do
|
|
1026
|
+
let(:args) { [:alpha2, :alpha3, :name] }
|
|
1027
|
+
|
|
1028
|
+
it "returns the correct values" do
|
|
1029
|
+
expect(subject.first).to eq(["AD", "AND", "Andorra"])
|
|
1030
|
+
expect(subject.last).to eq(["ZW", "ZWE", "Zimbabwe"])
|
|
1031
|
+
end
|
|
1032
|
+
end
|
|
1033
|
+
end
|
|
934
1034
|
end
|
data/spec/data_spec.rb
CHANGED
|
@@ -116,8 +116,8 @@ describe ISO3166::Data do
|
|
|
116
116
|
expect(subject.name).to eq 'NEW Taiwan'
|
|
117
117
|
expect(subject.translations).to eq('en' => 'NEW Taiwan',
|
|
118
118
|
'de' => 'NEW Taiwan')
|
|
119
|
-
expect(subject.subdivisions).to eq(CHA
|
|
120
|
-
CYI
|
|
119
|
+
expect(subject.subdivisions).to eq('CHA' => ISO3166::Subdivision.new({name: 'New Changhua', code: 'CHA'}),
|
|
120
|
+
'CYI' => ISO3166::Subdivision.new({name: 'New Municipality', code: 'CYI'}))
|
|
121
121
|
end
|
|
122
122
|
end
|
|
123
123
|
|
|
@@ -143,8 +143,8 @@ describe ISO3166::Data do
|
|
|
143
143
|
data = ISO3166::Data.new('LOL').call
|
|
144
144
|
expect(data['name']).to eq 'Happy Country'
|
|
145
145
|
expect(subject.name).to eq 'Happy Country'
|
|
146
|
-
expect(subject.subdivisions).to eq(LOL1
|
|
147
|
-
LOL2
|
|
146
|
+
expect(subject.subdivisions).to eq('LOL1' => ISO3166::Subdivision.new({name: 'Happy sub1', code: 'LOL1'}),
|
|
147
|
+
'LOL2' => ISO3166::Subdivision.new({name: 'Happy sub2', code: 'LOL2'}))
|
|
148
148
|
end
|
|
149
149
|
|
|
150
150
|
it 'detect a stale cache' do
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
describe 'Accessing ISO3166::Country instances data in multiple threads' do
|
|
2
|
+
before do
|
|
3
|
+
if Thread.respond_to?(:report_on_exception)
|
|
4
|
+
@report_on_exception_value = Thread.report_on_exception
|
|
5
|
+
Thread.report_on_exception = false
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
ISO3166::Data.reset
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create_countries_threaded
|
|
12
|
+
nthreads = 100
|
|
13
|
+
threads = []
|
|
14
|
+
|
|
15
|
+
alpha2_codes = ['us', 'es', 'nl', 'ca', 'de', 'fr', 'mx', 'ru', 'ch', 'jp']
|
|
16
|
+
|
|
17
|
+
nthreads.times do
|
|
18
|
+
threads << Thread.new do
|
|
19
|
+
alpha2_codes.each do |a2|
|
|
20
|
+
country = ISO3166::Country[a2]
|
|
21
|
+
# This will fail if data['translations'] has been
|
|
22
|
+
# left nil due to a race condition
|
|
23
|
+
country.translation
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
threads.map(&:join)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "doesn't raise any exceptions when using a mutex" do
|
|
31
|
+
expect { create_countries_threaded }.to_not raise_error
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "raises NoMethodError when not using a mutex" do
|
|
35
|
+
allow(ISO3166::Data).to receive(:use_mutex?).and_return(false)
|
|
36
|
+
|
|
37
|
+
expect { create_countries_threaded }.to raise_error(NoMethodError)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
after do
|
|
41
|
+
if Thread.respond_to?(:report_on_exception)
|
|
42
|
+
Thread.report_on_exception = @report_on_exception_value
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
metadata
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: countries
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Robinson
|
|
8
8
|
- Joe Corcoran
|
|
9
9
|
- Russell Osborne
|
|
10
|
+
- Pedro Moreira
|
|
10
11
|
autorequire:
|
|
11
12
|
bindir: bin
|
|
12
13
|
cert_chain: []
|
|
13
|
-
date: 2021-
|
|
14
|
+
date: 2021-12-06 00:00:00.000000000 Z
|
|
14
15
|
dependencies:
|
|
15
16
|
- !ruby/object:Gem::Dependency
|
|
16
17
|
name: i18n_data
|
|
@@ -18,28 +19,14 @@ dependencies:
|
|
|
18
19
|
requirements:
|
|
19
20
|
- - "~>"
|
|
20
21
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.
|
|
22
|
+
version: 0.13.1
|
|
22
23
|
type: :runtime
|
|
23
24
|
prerelease: false
|
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
26
|
requirements:
|
|
26
27
|
- - "~>"
|
|
27
28
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 0.
|
|
29
|
-
- !ruby/object:Gem::Dependency
|
|
30
|
-
name: unicode_utils
|
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
|
32
|
-
requirements:
|
|
33
|
-
- - "~>"
|
|
34
|
-
- !ruby/object:Gem::Version
|
|
35
|
-
version: '1.4'
|
|
36
|
-
type: :runtime
|
|
37
|
-
prerelease: false
|
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
39
|
-
requirements:
|
|
40
|
-
- - "~>"
|
|
41
|
-
- !ruby/object:Gem::Version
|
|
42
|
-
version: '1.4'
|
|
29
|
+
version: 0.13.1
|
|
43
30
|
- !ruby/object:Gem::Dependency
|
|
44
31
|
name: sixarm_ruby_unaccent
|
|
45
32
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -101,15 +88,16 @@ description: All sorts of useful information about every country packaged as pre
|
|
|
101
88
|
email:
|
|
102
89
|
- hexorx@gmail.com
|
|
103
90
|
- russell@burningpony.com
|
|
91
|
+
- pedro@codecreations.tech
|
|
104
92
|
executables: []
|
|
105
93
|
extensions: []
|
|
106
94
|
extra_rdoc_files: []
|
|
107
95
|
files:
|
|
96
|
+
- ".github/workflows/tests.yml"
|
|
108
97
|
- ".gitignore"
|
|
109
98
|
- ".rspec"
|
|
110
99
|
- ".rubocop.yml"
|
|
111
100
|
- ".rubocop_todo.yml"
|
|
112
|
-
- ".travis.yml"
|
|
113
101
|
- CHANGELOG.md
|
|
114
102
|
- Gemfile
|
|
115
103
|
- LICENSE
|
|
@@ -518,6 +506,7 @@ files:
|
|
|
518
506
|
- lib/countries/data/subdivisions/AS.yaml
|
|
519
507
|
- lib/countries/data/subdivisions/AT.yaml
|
|
520
508
|
- lib/countries/data/subdivisions/AU.yaml
|
|
509
|
+
- lib/countries/data/subdivisions/AW.yaml
|
|
521
510
|
- lib/countries/data/subdivisions/AX.yaml
|
|
522
511
|
- lib/countries/data/subdivisions/AZ.yaml
|
|
523
512
|
- lib/countries/data/subdivisions/BA.yaml
|
|
@@ -529,6 +518,7 @@ files:
|
|
|
529
518
|
- lib/countries/data/subdivisions/BH.yaml
|
|
530
519
|
- lib/countries/data/subdivisions/BI.yaml
|
|
531
520
|
- lib/countries/data/subdivisions/BJ.yaml
|
|
521
|
+
- lib/countries/data/subdivisions/BL.yaml
|
|
532
522
|
- lib/countries/data/subdivisions/BM.yaml
|
|
533
523
|
- lib/countries/data/subdivisions/BN.yaml
|
|
534
524
|
- lib/countries/data/subdivisions/BO.yaml
|
|
@@ -550,9 +540,11 @@ files:
|
|
|
550
540
|
- lib/countries/data/subdivisions/CM.yaml
|
|
551
541
|
- lib/countries/data/subdivisions/CN.yaml
|
|
552
542
|
- lib/countries/data/subdivisions/CO.yaml
|
|
543
|
+
- lib/countries/data/subdivisions/CP.yaml
|
|
553
544
|
- lib/countries/data/subdivisions/CR.yaml
|
|
554
545
|
- lib/countries/data/subdivisions/CU.yaml
|
|
555
546
|
- lib/countries/data/subdivisions/CV.yaml
|
|
547
|
+
- lib/countries/data/subdivisions/CW.yaml
|
|
556
548
|
- lib/countries/data/subdivisions/CY.yaml
|
|
557
549
|
- lib/countries/data/subdivisions/CZ.yaml
|
|
558
550
|
- lib/countries/data/subdivisions/DE.yaml
|
|
@@ -577,11 +569,13 @@ files:
|
|
|
577
569
|
- lib/countries/data/subdivisions/GB.yaml
|
|
578
570
|
- lib/countries/data/subdivisions/GD.yaml
|
|
579
571
|
- lib/countries/data/subdivisions/GE.yaml
|
|
572
|
+
- lib/countries/data/subdivisions/GF.yaml
|
|
580
573
|
- lib/countries/data/subdivisions/GG.yaml
|
|
581
574
|
- lib/countries/data/subdivisions/GH.yaml
|
|
582
575
|
- lib/countries/data/subdivisions/GL.yaml
|
|
583
576
|
- lib/countries/data/subdivisions/GM.yaml
|
|
584
577
|
- lib/countries/data/subdivisions/GN.yaml
|
|
578
|
+
- lib/countries/data/subdivisions/GP.yaml
|
|
585
579
|
- lib/countries/data/subdivisions/GQ.yaml
|
|
586
580
|
- lib/countries/data/subdivisions/GR.yaml
|
|
587
581
|
- lib/countries/data/subdivisions/GT.yaml
|
|
@@ -593,6 +587,7 @@ files:
|
|
|
593
587
|
- lib/countries/data/subdivisions/HR.yaml
|
|
594
588
|
- lib/countries/data/subdivisions/HT.yaml
|
|
595
589
|
- lib/countries/data/subdivisions/HU.yaml
|
|
590
|
+
- lib/countries/data/subdivisions/IC.yaml
|
|
596
591
|
- lib/countries/data/subdivisions/ID.yaml
|
|
597
592
|
- lib/countries/data/subdivisions/IE.yaml
|
|
598
593
|
- lib/countries/data/subdivisions/IL.yaml
|
|
@@ -632,13 +627,16 @@ files:
|
|
|
632
627
|
- lib/countries/data/subdivisions/MC.yaml
|
|
633
628
|
- lib/countries/data/subdivisions/MD.yaml
|
|
634
629
|
- lib/countries/data/subdivisions/ME.yaml
|
|
630
|
+
- lib/countries/data/subdivisions/MF.yaml
|
|
635
631
|
- lib/countries/data/subdivisions/MG.yaml
|
|
636
632
|
- lib/countries/data/subdivisions/MH.yaml
|
|
637
633
|
- lib/countries/data/subdivisions/MK.yaml
|
|
638
634
|
- lib/countries/data/subdivisions/ML.yaml
|
|
639
635
|
- lib/countries/data/subdivisions/MM.yaml
|
|
640
636
|
- lib/countries/data/subdivisions/MN.yaml
|
|
637
|
+
- lib/countries/data/subdivisions/MO.yaml
|
|
641
638
|
- lib/countries/data/subdivisions/MP.yaml
|
|
639
|
+
- lib/countries/data/subdivisions/MQ.yaml
|
|
642
640
|
- lib/countries/data/subdivisions/MR.yaml
|
|
643
641
|
- lib/countries/data/subdivisions/MS.yaml
|
|
644
642
|
- lib/countries/data/subdivisions/MT.yaml
|
|
@@ -667,11 +665,13 @@ files:
|
|
|
667
665
|
- lib/countries/data/subdivisions/PK.yaml
|
|
668
666
|
- lib/countries/data/subdivisions/PL.yaml
|
|
669
667
|
- lib/countries/data/subdivisions/PM.yaml
|
|
668
|
+
- lib/countries/data/subdivisions/PR.yaml
|
|
670
669
|
- lib/countries/data/subdivisions/PS.yaml
|
|
671
670
|
- lib/countries/data/subdivisions/PT.yaml
|
|
672
671
|
- lib/countries/data/subdivisions/PW.yaml
|
|
673
672
|
- lib/countries/data/subdivisions/PY.yaml
|
|
674
673
|
- lib/countries/data/subdivisions/QA.yaml
|
|
674
|
+
- lib/countries/data/subdivisions/RE.yaml
|
|
675
675
|
- lib/countries/data/subdivisions/RO.yaml
|
|
676
676
|
- lib/countries/data/subdivisions/RS.yaml
|
|
677
677
|
- lib/countries/data/subdivisions/RU.yaml
|
|
@@ -694,8 +694,10 @@ files:
|
|
|
694
694
|
- lib/countries/data/subdivisions/SS.yaml
|
|
695
695
|
- lib/countries/data/subdivisions/ST.yaml
|
|
696
696
|
- lib/countries/data/subdivisions/SV.yaml
|
|
697
|
+
- lib/countries/data/subdivisions/SX.yaml
|
|
697
698
|
- lib/countries/data/subdivisions/SY.yaml
|
|
698
699
|
- lib/countries/data/subdivisions/SZ.yaml
|
|
700
|
+
- lib/countries/data/subdivisions/TA.yaml
|
|
699
701
|
- lib/countries/data/subdivisions/TD.yaml
|
|
700
702
|
- lib/countries/data/subdivisions/TF.yaml
|
|
701
703
|
- lib/countries/data/subdivisions/TG.yaml
|
|
@@ -756,11 +758,16 @@ files:
|
|
|
756
758
|
- spec/perf_spec.rb
|
|
757
759
|
- spec/spec_helper.rb
|
|
758
760
|
- spec/subdivision_spec.rb
|
|
761
|
+
- spec/thread_safety_spec.rb
|
|
759
762
|
- spec/timezone_spec.rb
|
|
760
|
-
homepage: http://github.com/
|
|
763
|
+
homepage: http://github.com/countries/countries
|
|
761
764
|
licenses:
|
|
762
765
|
- MIT
|
|
763
|
-
metadata:
|
|
766
|
+
metadata:
|
|
767
|
+
bug_tracker_uri: http://github.com/countries/countries/issues
|
|
768
|
+
changelog_uri: https://github.com/countries/countries/blob/master/CHANGELOG.md
|
|
769
|
+
source_code_uri: https://github.com/countries/countries
|
|
770
|
+
wiki_uri: https://github.com/countries/countries/wiki
|
|
764
771
|
post_install_message:
|
|
765
772
|
rdoc_options: []
|
|
766
773
|
require_paths:
|
|
@@ -769,14 +776,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
769
776
|
requirements:
|
|
770
777
|
- - ">="
|
|
771
778
|
- !ruby/object:Gem::Version
|
|
772
|
-
version: '
|
|
779
|
+
version: '2.5'
|
|
773
780
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
774
781
|
requirements:
|
|
775
782
|
- - ">="
|
|
776
783
|
- !ruby/object:Gem::Version
|
|
777
784
|
version: '0'
|
|
778
785
|
requirements: []
|
|
779
|
-
rubygems_version: 3.
|
|
786
|
+
rubygems_version: 3.2.32
|
|
780
787
|
signing_key:
|
|
781
788
|
specification_version: 4
|
|
782
789
|
summary: Gives you a country object full of all sorts of useful information.
|
|
@@ -789,4 +796,5 @@ test_files:
|
|
|
789
796
|
- spec/perf_spec.rb
|
|
790
797
|
- spec/spec_helper.rb
|
|
791
798
|
- spec/subdivision_spec.rb
|
|
799
|
+
- spec/thread_safety_spec.rb
|
|
792
800
|
- spec/timezone_spec.rb
|
data/.travis.yml
DELETED