countries 6.0.1 → 8.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/lib/countries/cache/countries.json +1 -1
- data/lib/countries/cache/locales/bg.json +1 -1
- data/lib/countries/cache/locales/es.json +1 -1
- data/lib/countries/cache/locales/pt-br.json +1 -1
- data/lib/countries/configuration.rb +14 -2
- data/lib/countries/country/class_methods.rb +42 -21
- data/lib/countries/country/country_subdivision_methods.rb +20 -25
- data/lib/countries/country/emoji.rb +1 -1
- data/lib/countries/country/finder_methods.rb +28 -17
- data/lib/countries/country.rb +40 -5
- data/lib/countries/data/countries/AD.yaml +2 -0
- data/lib/countries/data/countries/AE.yaml +3 -0
- data/lib/countries/data/countries/AF.yaml +2 -0
- data/lib/countries/data/countries/AG.yaml +2 -0
- data/lib/countries/data/countries/AI.yaml +2 -0
- data/lib/countries/data/countries/AL.yaml +2 -0
- data/lib/countries/data/countries/AM.yaml +2 -1
- data/lib/countries/data/countries/AO.yaml +2 -0
- data/lib/countries/data/countries/AQ.yaml +1 -0
- data/lib/countries/data/countries/AR.yaml +3 -0
- data/lib/countries/data/countries/AS.yaml +1 -0
- data/lib/countries/data/countries/AT.yaml +2 -0
- data/lib/countries/data/countries/AU.yaml +2 -0
- data/lib/countries/data/countries/AW.yaml +2 -0
- data/lib/countries/data/countries/AX.yaml +2 -0
- data/lib/countries/data/countries/AZ.yaml +2 -0
- data/lib/countries/data/countries/BA.yaml +2 -0
- data/lib/countries/data/countries/BB.yaml +2 -0
- data/lib/countries/data/countries/BD.yaml +2 -0
- data/lib/countries/data/countries/BE.yaml +2 -0
- data/lib/countries/data/countries/BF.yaml +2 -0
- data/lib/countries/data/countries/BG.yaml +3 -1
- data/lib/countries/data/countries/BH.yaml +2 -0
- data/lib/countries/data/countries/BI.yaml +2 -0
- data/lib/countries/data/countries/BJ.yaml +2 -0
- data/lib/countries/data/countries/BL.yaml +1 -0
- data/lib/countries/data/countries/BM.yaml +1 -0
- data/lib/countries/data/countries/BN.yaml +2 -0
- data/lib/countries/data/countries/BO.yaml +2 -0
- data/lib/countries/data/countries/BQ.yaml +1 -0
- data/lib/countries/data/countries/BR.yaml +2 -0
- data/lib/countries/data/countries/BS.yaml +4 -0
- data/lib/countries/data/countries/BT.yaml +2 -0
- data/lib/countries/data/countries/BV.yaml +1 -0
- data/lib/countries/data/countries/BW.yaml +2 -0
- data/lib/countries/data/countries/BY.yaml +2 -0
- data/lib/countries/data/countries/BZ.yaml +2 -0
- data/lib/countries/data/countries/CA.yaml +3 -1
- data/lib/countries/data/countries/CC.yaml +2 -0
- data/lib/countries/data/countries/CD.yaml +5 -1
- data/lib/countries/data/countries/CF.yaml +3 -0
- data/lib/countries/data/countries/CG.yaml +4 -0
- data/lib/countries/data/countries/CH.yaml +7 -3
- data/lib/countries/data/countries/CI.yaml +2 -0
- data/lib/countries/data/countries/CK.yaml +2 -0
- data/lib/countries/data/countries/CL.yaml +2 -0
- data/lib/countries/data/countries/CM.yaml +2 -0
- data/lib/countries/data/countries/CN.yaml +2 -0
- data/lib/countries/data/countries/CO.yaml +2 -0
- data/lib/countries/data/countries/CR.yaml +2 -0
- data/lib/countries/data/countries/CU.yaml +2 -0
- data/lib/countries/data/countries/CV.yaml +2 -0
- data/lib/countries/data/countries/CW.yaml +2 -1
- data/lib/countries/data/countries/CX.yaml +1 -0
- data/lib/countries/data/countries/CY.yaml +2 -0
- data/lib/countries/data/countries/CZ.yaml +2 -0
- data/lib/countries/data/countries/DE.yaml +3 -1
- data/lib/countries/data/countries/DJ.yaml +2 -0
- data/lib/countries/data/countries/DK.yaml +2 -1
- data/lib/countries/data/countries/DM.yaml +2 -0
- data/lib/countries/data/countries/DO.yaml +4 -0
- data/lib/countries/data/countries/DZ.yaml +2 -0
- data/lib/countries/data/countries/EC.yaml +2 -0
- data/lib/countries/data/countries/EE.yaml +4 -1
- data/lib/countries/data/countries/EG.yaml +2 -0
- data/lib/countries/data/countries/EH.yaml +2 -0
- data/lib/countries/data/countries/ER.yaml +3 -1
- data/lib/countries/data/countries/ES.yaml +10 -0
- data/lib/countries/data/countries/ET.yaml +2 -0
- data/lib/countries/data/countries/FI.yaml +3 -1
- data/lib/countries/data/countries/FJ.yaml +2 -1
- data/lib/countries/data/countries/FK.yaml +3 -0
- data/lib/countries/data/countries/FM.yaml +2 -0
- data/lib/countries/data/countries/FO.yaml +3 -0
- data/lib/countries/data/countries/FR.yaml +3 -1
- data/lib/countries/data/countries/GA.yaml +2 -0
- data/lib/countries/data/countries/GB.yaml +7 -3
- data/lib/countries/data/countries/GD.yaml +2 -0
- data/lib/countries/data/countries/GE.yaml +2 -0
- data/lib/countries/data/countries/GF.yaml +1 -0
- data/lib/countries/data/countries/GG.yaml +2 -0
- data/lib/countries/data/countries/GH.yaml +2 -0
- data/lib/countries/data/countries/GI.yaml +2 -0
- data/lib/countries/data/countries/GL.yaml +2 -0
- data/lib/countries/data/countries/GM.yaml +4 -0
- data/lib/countries/data/countries/GN.yaml +2 -0
- data/lib/countries/data/countries/GP.yaml +1 -0
- data/lib/countries/data/countries/GQ.yaml +2 -0
- data/lib/countries/data/countries/GR.yaml +2 -0
- data/lib/countries/data/countries/GS.yaml +1 -0
- data/lib/countries/data/countries/GT.yaml +2 -0
- data/lib/countries/data/countries/GU.yaml +1 -0
- data/lib/countries/data/countries/GW.yaml +2 -0
- data/lib/countries/data/countries/GY.yaml +2 -0
- data/lib/countries/data/countries/HK.yaml +2 -0
- data/lib/countries/data/countries/HM.yaml +1 -0
- data/lib/countries/data/countries/HN.yaml +2 -0
- data/lib/countries/data/countries/HR.yaml +2 -0
- data/lib/countries/data/countries/HT.yaml +2 -0
- data/lib/countries/data/countries/HU.yaml +2 -0
- data/lib/countries/data/countries/ID.yaml +2 -0
- data/lib/countries/data/countries/IE.yaml +2 -0
- data/lib/countries/data/countries/IL.yaml +6 -4
- data/lib/countries/data/countries/IM.yaml +2 -0
- data/lib/countries/data/countries/IN.yaml +2 -0
- data/lib/countries/data/countries/IO.yaml +2 -0
- data/lib/countries/data/countries/IQ.yaml +2 -0
- data/lib/countries/data/countries/IR.yaml +2 -0
- data/lib/countries/data/countries/IS.yaml +2 -0
- data/lib/countries/data/countries/IT.yaml +3 -1
- data/lib/countries/data/countries/JE.yaml +2 -0
- data/lib/countries/data/countries/JM.yaml +2 -0
- data/lib/countries/data/countries/JO.yaml +2 -0
- data/lib/countries/data/countries/JP.yaml +3 -1
- data/lib/countries/data/countries/KE.yaml +2 -0
- data/lib/countries/data/countries/KG.yaml +2 -0
- data/lib/countries/data/countries/KH.yaml +2 -0
- data/lib/countries/data/countries/KI.yaml +2 -0
- data/lib/countries/data/countries/KM.yaml +3 -0
- data/lib/countries/data/countries/KN.yaml +2 -0
- data/lib/countries/data/countries/KP.yaml +4 -0
- data/lib/countries/data/countries/KR.yaml +3 -0
- data/lib/countries/data/countries/KW.yaml +2 -0
- data/lib/countries/data/countries/KY.yaml +2 -0
- data/lib/countries/data/countries/KZ.yaml +2 -0
- data/lib/countries/data/countries/LA.yaml +3 -0
- data/lib/countries/data/countries/LB.yaml +2 -0
- data/lib/countries/data/countries/LC.yaml +2 -0
- data/lib/countries/data/countries/LI.yaml +2 -0
- data/lib/countries/data/countries/LK.yaml +2 -0
- data/lib/countries/data/countries/LR.yaml +2 -0
- data/lib/countries/data/countries/LS.yaml +2 -0
- data/lib/countries/data/countries/LT.yaml +2 -0
- data/lib/countries/data/countries/LU.yaml +2 -0
- data/lib/countries/data/countries/LV.yaml +2 -0
- data/lib/countries/data/countries/LY.yaml +2 -0
- data/lib/countries/data/countries/MA.yaml +2 -0
- data/lib/countries/data/countries/MC.yaml +2 -0
- data/lib/countries/data/countries/MD.yaml +4 -0
- data/lib/countries/data/countries/ME.yaml +2 -0
- data/lib/countries/data/countries/MF.yaml +1 -0
- data/lib/countries/data/countries/MG.yaml +2 -0
- data/lib/countries/data/countries/MH.yaml +3 -0
- data/lib/countries/data/countries/MK.yaml +2 -0
- data/lib/countries/data/countries/ML.yaml +2 -0
- data/lib/countries/data/countries/MM.yaml +3 -0
- data/lib/countries/data/countries/MN.yaml +2 -0
- data/lib/countries/data/countries/MO.yaml +1 -0
- data/lib/countries/data/countries/MP.yaml +3 -0
- data/lib/countries/data/countries/MQ.yaml +1 -0
- data/lib/countries/data/countries/MR.yaml +2 -0
- data/lib/countries/data/countries/MS.yaml +1 -0
- data/lib/countries/data/countries/MT.yaml +2 -0
- data/lib/countries/data/countries/MU.yaml +2 -0
- data/lib/countries/data/countries/MV.yaml +2 -0
- data/lib/countries/data/countries/MW.yaml +2 -0
- data/lib/countries/data/countries/MX.yaml +2 -0
- data/lib/countries/data/countries/MY.yaml +2 -0
- data/lib/countries/data/countries/MZ.yaml +2 -0
- data/lib/countries/data/countries/NA.yaml +2 -0
- data/lib/countries/data/countries/NC.yaml +2 -0
- data/lib/countries/data/countries/NE.yaml +3 -0
- data/lib/countries/data/countries/NF.yaml +1 -0
- data/lib/countries/data/countries/NG.yaml +2 -0
- data/lib/countries/data/countries/NI.yaml +2 -0
- data/lib/countries/data/countries/NL.yaml +3 -0
- data/lib/countries/data/countries/NO.yaml +2 -0
- data/lib/countries/data/countries/NP.yaml +2 -0
- data/lib/countries/data/countries/NR.yaml +2 -0
- data/lib/countries/data/countries/NU.yaml +1 -0
- data/lib/countries/data/countries/NZ.yaml +2 -0
- data/lib/countries/data/countries/OM.yaml +2 -0
- data/lib/countries/data/countries/PA.yaml +2 -0
- data/lib/countries/data/countries/PE.yaml +2 -0
- data/lib/countries/data/countries/PF.yaml +1 -0
- data/lib/countries/data/countries/PG.yaml +2 -0
- data/lib/countries/data/countries/PH.yaml +3 -0
- data/lib/countries/data/countries/PK.yaml +2 -0
- data/lib/countries/data/countries/PL.yaml +2 -0
- data/lib/countries/data/countries/PM.yaml +1 -0
- data/lib/countries/data/countries/PN.yaml +1 -0
- data/lib/countries/data/countries/PR.yaml +3 -0
- data/lib/countries/data/countries/PS.yaml +2 -0
- data/lib/countries/data/countries/PT.yaml +2 -0
- data/lib/countries/data/countries/PW.yaml +2 -0
- data/lib/countries/data/countries/PY.yaml +3 -1
- data/lib/countries/data/countries/QA.yaml +2 -0
- data/lib/countries/data/countries/RE.yaml +1 -0
- data/lib/countries/data/countries/RO.yaml +4 -3
- data/lib/countries/data/countries/RS.yaml +2 -0
- data/lib/countries/data/countries/RU.yaml +4 -0
- data/lib/countries/data/countries/RW.yaml +2 -0
- data/lib/countries/data/countries/SA.yaml +7 -5
- data/lib/countries/data/countries/SB.yaml +2 -0
- data/lib/countries/data/countries/SC.yaml +2 -0
- data/lib/countries/data/countries/SD.yaml +3 -0
- data/lib/countries/data/countries/SE.yaml +2 -0
- data/lib/countries/data/countries/SG.yaml +2 -0
- data/lib/countries/data/countries/SH.yaml +1 -0
- data/lib/countries/data/countries/SI.yaml +2 -0
- data/lib/countries/data/countries/SJ.yaml +1 -0
- data/lib/countries/data/countries/SK.yaml +5 -3
- data/lib/countries/data/countries/SL.yaml +3 -1
- data/lib/countries/data/countries/SM.yaml +2 -0
- data/lib/countries/data/countries/SN.yaml +2 -0
- data/lib/countries/data/countries/SO.yaml +2 -0
- data/lib/countries/data/countries/SR.yaml +2 -0
- data/lib/countries/data/countries/SS.yaml +2 -0
- data/lib/countries/data/countries/ST.yaml +3 -1
- data/lib/countries/data/countries/SV.yaml +2 -0
- data/lib/countries/data/countries/SX.yaml +2 -1
- data/lib/countries/data/countries/SY.yaml +2 -0
- data/lib/countries/data/countries/SZ.yaml +2 -0
- data/lib/countries/data/countries/TC.yaml +2 -0
- data/lib/countries/data/countries/TD.yaml +2 -0
- data/lib/countries/data/countries/TF.yaml +2 -0
- data/lib/countries/data/countries/TG.yaml +2 -0
- data/lib/countries/data/countries/TH.yaml +2 -0
- data/lib/countries/data/countries/TJ.yaml +2 -0
- data/lib/countries/data/countries/TK.yaml +1 -0
- data/lib/countries/data/countries/TL.yaml +2 -0
- data/lib/countries/data/countries/TM.yaml +2 -0
- data/lib/countries/data/countries/TN.yaml +2 -0
- data/lib/countries/data/countries/TO.yaml +2 -0
- data/lib/countries/data/countries/TR.yaml +2 -0
- data/lib/countries/data/countries/TT.yaml +2 -0
- data/lib/countries/data/countries/TV.yaml +2 -0
- data/lib/countries/data/countries/TW.yaml +18 -14
- data/lib/countries/data/countries/TZ.yaml +2 -0
- data/lib/countries/data/countries/UA.yaml +2 -0
- data/lib/countries/data/countries/UG.yaml +2 -0
- data/lib/countries/data/countries/UM.yaml +3 -0
- data/lib/countries/data/countries/US.yaml +5 -1
- data/lib/countries/data/countries/UY.yaml +2 -0
- data/lib/countries/data/countries/UZ.yaml +2 -1
- data/lib/countries/data/countries/VA.yaml +6 -1
- data/lib/countries/data/countries/VC.yaml +2 -0
- data/lib/countries/data/countries/VE.yaml +2 -0
- data/lib/countries/data/countries/VG.yaml +2 -0
- data/lib/countries/data/countries/VI.yaml +2 -0
- data/lib/countries/data/countries/VN.yaml +2 -0
- data/lib/countries/data/countries/VU.yaml +2 -0
- data/lib/countries/data/countries/WF.yaml +1 -0
- data/lib/countries/data/countries/WS.yaml +2 -0
- data/lib/countries/data/countries/YE.yaml +2 -0
- data/lib/countries/data/countries/YT.yaml +1 -0
- data/lib/countries/data/countries/ZA.yaml +2 -0
- data/lib/countries/data/countries/ZM.yaml +2 -0
- data/lib/countries/data/countries/ZW.yaml +2 -0
- data/lib/countries/data/locales_methods.rb +4 -2
- data/lib/countries/data/subdivision_methods.rb +5 -2
- data/lib/countries/data/subdivisions/AD.yaml +8 -11
- data/lib/countries/data/subdivisions/AE.yaml +9 -15
- data/lib/countries/data/subdivisions/AF.yaml +36 -85
- data/lib/countries/data/subdivisions/AG.yaml +22 -31
- data/lib/countries/data/subdivisions/AL.yaml +12 -38
- data/lib/countries/data/subdivisions/AM.yaml +25 -44
- data/lib/countries/data/subdivisions/AO.yaml +44 -49
- data/lib/countries/data/subdivisions/AR.yaml +70 -76
- data/lib/countries/data/subdivisions/AT.yaml +13 -22
- data/lib/countries/data/subdivisions/AU.yaml +24 -28
- data/lib/countries/data/subdivisions/AZ.yaml +224 -271
- data/lib/countries/data/subdivisions/BA.yaml +7 -20
- data/lib/countries/data/subdivisions/BB.yaml +33 -34
- data/lib/countries/data/subdivisions/BD.yaml +82 -267
- data/lib/countries/data/subdivisions/BE.yaml +13 -43
- data/lib/countries/data/subdivisions/BF.yaml +142 -267
- data/lib/countries/data/subdivisions/BG.yaml +84 -84
- data/lib/countries/data/subdivisions/BH.yaml +6 -13
- data/lib/countries/data/subdivisions/BI.yaml +42 -74
- data/lib/countries/data/subdivisions/BJ.yaml +32 -34
- data/lib/countries/data/subdivisions/BN.yaml +12 -16
- data/lib/countries/data/subdivisions/BO.yaml +27 -27
- data/lib/countries/data/subdivisions/BQ.yaml +9 -9
- data/lib/countries/data/subdivisions/BR.yaml +81 -89
- data/lib/countries/data/subdivisions/BS.yaml +49 -260
- data/lib/countries/data/subdivisions/BT.yaml +24 -44
- data/lib/countries/data/subdivisions/BW.yaml +32 -98
- data/lib/countries/data/subdivisions/BY.yaml +7 -44
- data/lib/countries/data/subdivisions/BZ.yaml +18 -19
- data/lib/countries/data/subdivisions/CA.yaml +13 -31
- data/lib/countries/data/subdivisions/CD.yaml +38 -211
- data/lib/countries/data/subdivisions/CF.yaml +37 -44
- data/lib/countries/data/subdivisions/CG.yaml +30 -41
- data/lib/countries/data/subdivisions/CH.yaml +34 -58
- data/lib/countries/data/subdivisions/CI.yaml +14 -140
- data/lib/countries/data/subdivisions/CL.yaml +33 -45
- data/lib/countries/data/subdivisions/CM.yaml +26 -28
- data/lib/countries/data/subdivisions/CN.yaml +52 -33
- data/lib/countries/data/subdivisions/CO.yaml +97 -105
- data/lib/countries/data/subdivisions/CR.yaml +24 -24
- data/lib/countries/data/subdivisions/CU.yaml +48 -52
- data/lib/countries/data/subdivisions/CV.yaml +56 -145
- data/lib/countries/data/subdivisions/CY.yaml +18 -18
- data/lib/countries/data/subdivisions/CZ.yaml +106 -106
- data/lib/countries/data/subdivisions/DE.yaml +24 -37
- data/lib/countries/data/subdivisions/DJ.yaml +8 -13
- data/lib/countries/data/subdivisions/DK.yaml +5 -13
- data/lib/countries/data/subdivisions/DM.yaml +30 -30
- data/lib/countries/data/subdivisions/DO.yaml +102 -210
- data/lib/countries/data/subdivisions/DZ.yaml +48 -103
- data/lib/countries/data/subdivisions/EC.yaml +72 -77
- data/lib/countries/data/subdivisions/EE.yaml +15 -30
- data/lib/countries/data/subdivisions/EG.yaml +27 -55
- data/lib/countries/data/subdivisions/ER.yaml +18 -20
- data/lib/countries/data/subdivisions/ES.yaml +69 -284
- data/lib/countries/data/subdivisions/ET.yaml +29 -33
- data/lib/countries/data/subdivisions/FI.yaml +33 -35
- data/lib/countries/data/subdivisions/FJ.yaml +29 -155
- data/lib/countries/data/subdivisions/FM.yaml +6 -13
- data/lib/countries/data/subdivisions/FR.yaml +321 -483
- data/lib/countries/data/subdivisions/GA.yaml +23 -25
- data/lib/countries/data/subdivisions/GB.yaml +562 -847
- data/lib/countries/data/subdivisions/GD.yaml +21 -23
- data/lib/countries/data/subdivisions/GE.yaml +20 -30
- data/lib/countries/data/subdivisions/GH.yaml +24 -40
- data/lib/countries/data/subdivisions/GL.yaml +3 -36
- data/lib/countries/data/subdivisions/GM.yaml +10 -19
- data/lib/countries/data/subdivisions/GN.yaml +107 -176
- data/lib/countries/data/subdivisions/GQ.yaml +27 -32
- data/lib/countries/data/subdivisions/GR.yaml +14 -123
- data/lib/countries/data/subdivisions/GT.yaml +64 -69
- data/lib/countries/data/subdivisions/GW.yaml +28 -60
- data/lib/countries/data/subdivisions/GY.yaml +30 -33
- data/lib/countries/data/subdivisions/HN.yaml +54 -56
- data/lib/countries/data/subdivisions/HR.yaml +21 -44
- data/lib/countries/data/subdivisions/HT.yaml +24 -35
- data/lib/countries/data/subdivisions/HU.yaml +129 -130
- data/lib/countries/data/subdivisions/ID.yaml +41 -143
- data/lib/countries/data/subdivisions/IE.yaml +30 -90
- data/lib/countries/data/subdivisions/IL.yaml +8 -17
- data/lib/countries/data/subdivisions/IN.yaml +88 -119
- data/lib/countries/data/subdivisions/IQ.yaml +20 -54
- data/lib/countries/data/subdivisions/IR.yaml +61 -93
- data/lib/countries/data/subdivisions/IS.yaml +27 -31
- data/lib/countries/data/subdivisions/IT.yaml +131 -332
- data/lib/countries/data/subdivisions/JM.yaml +42 -42
- data/lib/countries/data/subdivisions/JO.yaml +14 -61
- data/lib/countries/data/subdivisions/JP.yaml +95 -122
- data/lib/countries/data/subdivisions/KE.yaml +49 -467
- data/lib/countries/data/subdivisions/KG.yaml +15 -29
- data/lib/countries/data/subdivisions/KH.yaml +25 -85
- data/lib/countries/data/subdivisions/KI.yaml +7 -14
- data/lib/countries/data/subdivisions/KM.yaml +3 -6
- data/lib/countries/data/subdivisions/KN.yaml +44 -78
- data/lib/countries/data/subdivisions/KP.yaml +11 -116
- data/lib/countries/data/subdivisions/KR.yaml +21 -75
- data/lib/countries/data/subdivisions/KW.yaml +8 -13
- data/lib/countries/data/subdivisions/KZ.yaml +22 -38
- data/lib/countries/data/subdivisions/LA.yaml +24 -48
- data/lib/countries/data/subdivisions/LB.yaml +8 -55
- data/lib/countries/data/subdivisions/LC.yaml +10 -101
- data/lib/countries/data/subdivisions/LI.yaml +31 -72
- data/lib/countries/data/subdivisions/LK.yaml +52 -151
- data/lib/countries/data/subdivisions/LR.yaml +43 -63
- data/lib/countries/data/subdivisions/LS.yaml +30 -30
- data/lib/countries/data/subdivisions/LT.yaml +78 -632
- data/lib/countries/data/subdivisions/LU.yaml +12 -79
- data/lib/countries/data/subdivisions/LV.yaml +126 -347
- data/lib/countries/data/subdivisions/LY.yaml +48 -74
- data/lib/countries/data/subdivisions/MA.yaml +199 -288
- data/lib/countries/data/subdivisions/MC.yaml +17 -173
- data/lib/countries/data/subdivisions/MD.yaml +57 -318
- data/lib/countries/data/subdivisions/ME.yaml +65 -86
- data/lib/countries/data/subdivisions/MG.yaml +6 -12
- data/lib/countries/data/subdivisions/MH.yaml +50 -112
- data/lib/countries/data/subdivisions/MK.yaml +237 -241
- data/lib/countries/data/subdivisions/ML.yaml +27 -32
- data/lib/countries/data/subdivisions/MM.yaml +29 -45
- data/lib/countries/data/subdivisions/MN.yaml +36 -51
- data/lib/countries/data/subdivisions/MR.yaml +21 -62
- data/lib/countries/data/subdivisions/MT.yaml +190 -206
- data/lib/countries/data/subdivisions/MU.yaml +36 -44
- data/lib/countries/data/subdivisions/MV.yaml +21 -49
- data/lib/countries/data/subdivisions/MW.yaml +85 -121
- data/lib/countries/data/subdivisions/MX.yaml +96 -105
- data/lib/countries/data/subdivisions/MY.yaml +46 -47
- data/lib/countries/data/subdivisions/MZ.yaml +33 -33
- data/lib/countries/data/subdivisions/NA.yaml +40 -41
- data/lib/countries/data/subdivisions/NE.yaml +22 -23
- data/lib/countries/data/subdivisions/NG.yaml +105 -109
- data/lib/countries/data/subdivisions/NI.yaml +47 -52
- data/lib/countries/data/subdivisions/NL.yaml +38 -96
- data/lib/countries/data/subdivisions/NO.yaml +18 -80
- data/lib/countries/data/subdivisions/NP.yaml +117 -134
- data/lib/countries/data/subdivisions/NR.yaml +40 -41
- data/lib/countries/data/subdivisions/NZ.yaml +47 -50
- data/lib/countries/data/subdivisions/OM.yaml +15 -76
- data/lib/countries/data/subdivisions/PA.yaml +39 -65
- data/lib/countries/data/subdivisions/PE.yaml +70 -79
- data/lib/countries/data/subdivisions/PG.yaml +31 -76
- data/lib/countries/data/subdivisions/PH.yaml +252 -437
- data/lib/countries/data/subdivisions/PK.yaml +17 -35
- data/lib/countries/data/subdivisions/PL.yaml +16 -16
- data/lib/countries/data/subdivisions/PS.yaml +16 -163
- data/lib/countries/data/subdivisions/PT.yaml +60 -60
- data/lib/countries/data/subdivisions/PW.yaml +44 -50
- data/lib/countries/data/subdivisions/PY.yaml +50 -53
- data/lib/countries/data/subdivisions/QA.yaml +7 -26
- data/lib/countries/data/subdivisions/RO.yaml +80 -103
- data/lib/countries/data/subdivisions/RS.yaml +92 -133
- data/lib/countries/data/subdivisions/RU.yaml +89 -197
- data/lib/countries/data/subdivisions/RW.yaml +15 -15
- data/lib/countries/data/subdivisions/SA.yaml +15 -28
- data/lib/countries/data/subdivisions/SB.yaml +22 -27
- data/lib/countries/data/subdivisions/SC.yaml +71 -94
- data/lib/countries/data/subdivisions/SD.yaml +18 -67
- data/lib/countries/data/subdivisions/SE.yaml +57 -60
- data/lib/countries/data/subdivisions/SG.yaml +15 -22
- data/lib/countries/data/subdivisions/SH.yaml +7 -18
- data/lib/countries/data/subdivisions/SI.yaml +598 -803
- data/lib/countries/data/subdivisions/SK.yaml +24 -24
- data/lib/countries/data/subdivisions/SL.yaml +12 -15
- data/lib/countries/data/subdivisions/SM.yaml +23 -25
- data/lib/countries/data/subdivisions/SN.yaml +36 -63
- data/lib/countries/data/subdivisions/SO.yaml +54 -54
- data/lib/countries/data/subdivisions/SR.yaml +30 -30
- data/lib/countries/data/subdivisions/SS.yaml +10 -107
- data/lib/countries/data/subdivisions/ST.yaml +3 -3
- data/lib/countries/data/subdivisions/SV.yaml +42 -42
- data/lib/countries/data/subdivisions/SY.yaml +16 -41
- data/lib/countries/data/subdivisions/SZ.yaml +10 -11
- data/lib/countries/data/subdivisions/TD.yaml +57 -114
- data/lib/countries/data/subdivisions/TG.yaml +15 -15
- data/lib/countries/data/subdivisions/TH.yaml +222 -240
- data/lib/countries/data/subdivisions/TJ.yaml +5 -27
- data/lib/countries/data/subdivisions/TL.yaml +29 -34
- data/lib/countries/data/subdivisions/TM.yaml +10 -22
- data/lib/countries/data/subdivisions/TN.yaml +26 -49
- data/lib/countries/data/subdivisions/TO.yaml +13 -14
- data/lib/countries/data/subdivisions/TR.yaml +185 -214
- data/lib/countries/data/subdivisions/TT.yaml +41 -62
- data/lib/countries/data/subdivisions/TV.yaml +18 -34
- data/lib/countries/data/subdivisions/TW.yaml +50 -98
- data/lib/countries/data/subdivisions/TZ.yaml +72 -120
- data/lib/countries/data/subdivisions/UA.yaml +27 -55
- data/lib/countries/data/subdivisions/UG.yaml +277 -656
- data/lib/countries/data/subdivisions/UM.yaml +27 -35
- data/lib/countries/data/subdivisions/US.yaml +171 -193
- data/lib/countries/data/subdivisions/UY.yaml +55 -57
- data/lib/countries/data/subdivisions/UZ.yaml +16 -30
- data/lib/countries/data/subdivisions/VC.yaml +18 -22
- data/lib/countries/data/subdivisions/VE.yaml +75 -76
- data/lib/countries/data/subdivisions/VN.yaml +190 -193
- data/lib/countries/data/subdivisions/VU.yaml +8 -13
- data/lib/countries/data/subdivisions/WF.yaml +3 -30
- data/lib/countries/data/subdivisions/WS.yaml +33 -33
- data/lib/countries/data/subdivisions/YE.yaml +38 -82
- data/lib/countries/data/subdivisions/ZA.yaml +16 -28
- data/lib/countries/data/subdivisions/ZM.yaml +26 -35
- data/lib/countries/data/subdivisions/ZW.yaml +30 -35
- data/lib/countries/data/translations/countries-bg.yaml +5 -5
- data/lib/countries/data/translations/countries-es.yaml +1 -1
- data/lib/countries/data/translations/countries-pt_BR.yaml +1 -1
- data/lib/countries/data.rb +12 -7
- data/lib/countries/mongoid.rb +2 -0
- data/lib/countries/sources/cldr/downloader.rb +2 -2
- data/lib/countries/sources/cldr/subdivision_updater.rb +3 -3
- data/lib/countries/sources.rb +5 -5
- data/lib/countries/structure.rb +1 -0
- data/lib/countries/subdivision.rb +7 -2
- data/lib/countries/translations.rb +6 -1
- data/lib/countries/version.rb +1 -1
- metadata +10 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"AD":"Андора","AE":"Обединени арабски емирства","AF":"Афганистан","AG":"Антигуа и Барбуда","AI":"Ангила","AL":"Албания","AM":"Армения","AO":"Ангола","AQ":"Антарктика","AR":"Аржентина","AS":"Американска Самоа","AT":"Австрия","AU":"Австралия","AW":"Аруба","AX":"Аландски острови","AZ":"Азербайджан","BA":"Босна и Херцеговина","BB":"Барбадос","BD":"Бангладеш","BE":"Белгия","BF":"Буркина Фасо","BG":"България","BH":"Бахрейн","BI":"Бурунди","BJ":"Бенин","BL":"Свети Вартоломей","BM":"Бермуда","BN":"Бруней","BO":"Боливия","BQ":"О-ви Бонер, Св. Евстатий и Саба","BR":"Бразилия","BS":"Бахами","BT":"Бутан","BV":"Остров Буве","BW":"Ботсуана","BY":"Беларус","BZ":"Белиз","CA":"Канада","CC":"Кокосови острови","CD":"Конго, Демократична република","CF":"Централноафриканска Република","CG":"Конго","CH":"Швейцария","CI":"Кот д'Ивоар","CK":"Острови Кук","CL":"Чили","CM":"Камерун","CN":"Китай","CO":"Колумбия","CR":"Коста Рика","CU":"Куба","CV":"
|
|
1
|
+
{"AD":"Андора","AE":"Обединени арабски емирства","AF":"Афганистан","AG":"Антигуа и Барбуда","AI":"Ангила","AL":"Албания","AM":"Армения","AO":"Ангола","AQ":"Антарктика","AR":"Аржентина","AS":"Американска Самоа","AT":"Австрия","AU":"Австралия","AW":"Аруба","AX":"Аландски острови","AZ":"Азербайджан","BA":"Босна и Херцеговина","BB":"Барбадос","BD":"Бангладеш","BE":"Белгия","BF":"Буркина Фасо","BG":"България","BH":"Бахрейн","BI":"Бурунди","BJ":"Бенин","BL":"Свети Вартоломей","BM":"Бермуда","BN":"Бруней","BO":"Боливия","BQ":"О-ви Бонер, Св. Евстатий и Саба","BR":"Бразилия","BS":"Бахами","BT":"Бутан","BV":"Остров Буве","BW":"Ботсуана","BY":"Беларус","BZ":"Белиз","CA":"Канада","CC":"Кокосови острови","CD":"Конго, Демократична република","CF":"Централноафриканска Република","CG":"Конго","CH":"Швейцария","CI":"Кот д'Ивоар","CK":"Острови Кук","CL":"Чили","CM":"Камерун","CN":"Китай","CO":"Колумбия","CR":"Коста Рика","CU":"Куба","CV":"Кабо Верде","CW":"Кюрасао","CX":"Коледни острови","CY":"Кипър","CZ":"Чехия","DE":"Германия","DJ":"Джибути","DK":"Дания","DM":"Доминика","DO":"Доминиканска република","DZ":"Алжир","EC":"Еквадор","EE":"Естония","EG":"Египет","EH":"Западна Сахара","ER":"Еритрея","ES":"Испания","ET":"Етиопия","FI":"Финландия","FJ":"Фиджи","FK":"Фолклендски Острови (Малвини)","FM":"Микронезия, Обединени щати","FO":"Острови Фаро","FR":"Франция","GA":"Габон","GB":"Обединено кралство","GD":"Гренада","GE":"Грузия","GF":"Френска Гвиана","GG":"Гърнсей","GH":"Гана","GI":"Гибралтар","GL":"Гренландия","GM":"Гамбия","GN":"Гвинея","GP":"Гваделупа","GQ":"Екваториална Гвинея","GR":"Гърция","GS":"Южна Джорджия и Южни Сандвичеви острови","GT":"Гватемала","GU":"Гуам","GW":"Гвинея-Бисау","GY":"Гияна","HK":"Хонг Конг","HM":"Острови Хърд и МакДоналд","HN":"Хондурас","HR":"Хърватия","HT":"Хаити","HU":"Унгария","ID":"Индонезия","IE":"Ирландия","IL":"Израел","IM":"Айл ъф мен","IN":"Индия","IO":"Английски територии в индийския океан","IQ":"Ирак","IR":"Иран, Ислямска република","IS":"Исландия","IT":"Италия","JE":"Джърси","JM":"Ямайка","JO":"Йордания","JP":"Япония","KE":"Кения","KG":"Киргизстан","KH":"Камбоджа","KI":"Кирибати","KM":"Комори","KN":"Свети Китс и Невис","KP":"Корея, Демократична народна република","KR":"Корея, Република","KW":"Кувейт","KY":"Кайманови острови","KZ":"Казахстан","LA":"Лаос","LB":"Лебанон","LC":"Санта Лучия","LI":"Лихтенщайн","LK":"Шри Ланка","LR":"Либерия","LS":"Лесото","LT":"Литва","LU":"Люксембург","LV":"Латвия","LY":"Либия","MA":"Мароко","MC":"Монако","MD":"Молдова","ME":"Черна гора","MF":"Свети Мартин (френска част)","MG":"Мадагаскар","MH":"Маршалски острови","MK":"Северна Македония","ML":"Мали","MM":"Мянмар","MN":"Монголия","MO":"Макао","MP":"Северни марианови Острови","MQ":"Мартиника","MR":"Мавритания","MS":"Монсерат","MT":"Малта","MU":"Мавриций","MV":"Малдиви","MW":"Малави","MX":"Мексико","MY":"Малайзия","MZ":"Мозамбик","NA":"Намибия","NC":"Нова Каледония","NE":"Нигер","NF":"Остров Норфолк","NG":"Нигерия","NI":"Никарагуа","NL":"Холандия","NO":"Норвегия","NP":"Непал","NR":"Науру","NU":"Нию","NZ":"Нова Зеландия","OM":"Оман","PA":"Панама","PE":"Перу","PF":"Френска Полинезия","PG":"Папуа Нова Гвинея","PH":"Филипини","PK":"Пакистан","PL":"Полша","PM":"Свети Пиер и Микелон","PN":"Питкеърн","PR":"Пуерто Рико","PS":"Палестина, държава","PT":"Португалия","PW":"Палау","PY":"Парагвай","QA":"Катар","RE":"Риюниън","RO":"Румъния","RS":"Сърбия","RU":"Руска федерация","RW":"Руанда","SA":"Саудитска Арабия","SB":"Соломонови острови","SC":"Сейшели","SD":"Судан","SE":"Швеция","SG":"Сингапур","SH":"Света Елена, Възнесение и Тристан да Куня","SI":"Словения","SJ":"Свалбард и Ян Майен","SK":"Словакия","SL":"Сиера Леоне","SM":"Сан Марино","SN":"Сенегал","SO":"Сомалия","SR":"Суринам","SS":"Южен Судан","ST":"Сао Томе и Принсипи","SV":"Ел Салвадор","SX":"Синт Мартен (холандска част)","SY":"Сирийска арабска република","SZ":"Есватини","TC":"Острови Тюрк и Кайкос","TD":"Чад","TF":"Френски южни територии","TG":"Того","TH":"Тайланд","TJ":"Таджикистан","TK":"Токелау","TL":"Тимор-Лест","TM":"Туркменистан","TN":"Тунис","TO":"Тонга","TR":"Турция","TT":"Тринидад и Тобаго","TV":"Тувалу","TW":"Тайван","TZ":"Танзания","UA":"Украйна","UG":"Уганда","UM":"Обединени малки острови по крайбрежието на САЩ","US":"Съединени щати","UY":"Уругвай","UZ":"Узбекистан","VA":"Ватикана","VC":"Свети Винсент и Гренадин","VE":"Венецуела","VG":"Вирджински острови, Британски","VI":"Вирджински острови, САЩ","VN":"Виетнам","VU":"Вануату","WF":"Острови Уолис и Футуна","WS":"Самоа","YE":"Йемен","YT":"Майот","ZA":"Южна Африка","ZM":"Замбия","ZW":"Зимбабве"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"AD":"Andorra","AE":"Emiratos Árabes Unidos","AF":"Afganistán","AG":"Antigua y Barbuda","AI":"Anguila","AL":"Albania","AM":"Armenia","AO":"Angola","AQ":"Antártida","AR":"Argentina","AS":"Samoa Estadounidense","AT":"Austria","AU":"Australia","AW":"Aruba","AX":"Islas Äland","AZ":"Azerbaiyán","BA":"Bosnia y Herzegovina","BB":"Barbados","BD":"Bangladés","BE":"Bélgica","BF":"Burquina Faso","BG":"Bulgaria","BH":"Baréin","BI":"Burundi","BJ":"Benín","BL":"San Bartolomé","BM":"Islas Bermudas","BN":"Brunei Darussalam","BO":"Bolivia","BQ":"Islas BES (Caribe Neerlandés)","BR":"Brasil","BS":"Bahamas","BT":"Bután","BV":"Isla Bouvet","BW":"Botsuana","BY":"Bielorrusia","BZ":"Belice","CA":"Canadá","CC":"Islas Cocos (Keeling)","CD":"Congo, República Democrática del","CF":"República Centroafricana","CG":"Congo","CH":"Suiza","CI":"Costa de Marfíl","CK":"Islas Cook","CL":"Chile","CM":"Camerún","CN":"China","CO":"Colombia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curazao","CX":"Isla de Navidad","CY":"Chipre","CZ":"Chequia","DE":"Alemania","DJ":"Yibuti","DK":"Dinamarca","DM":"Dominica","DO":"República Dominicana","DZ":"
|
|
1
|
+
{"AD":"Andorra","AE":"Emiratos Árabes Unidos","AF":"Afganistán","AG":"Antigua y Barbuda","AI":"Anguila","AL":"Albania","AM":"Armenia","AO":"Angola","AQ":"Antártida","AR":"Argentina","AS":"Samoa Estadounidense","AT":"Austria","AU":"Australia","AW":"Aruba","AX":"Islas Äland","AZ":"Azerbaiyán","BA":"Bosnia y Herzegovina","BB":"Barbados","BD":"Bangladés","BE":"Bélgica","BF":"Burquina Faso","BG":"Bulgaria","BH":"Baréin","BI":"Burundi","BJ":"Benín","BL":"San Bartolomé","BM":"Islas Bermudas","BN":"Brunei Darussalam","BO":"Bolivia","BQ":"Islas BES (Caribe Neerlandés)","BR":"Brasil","BS":"Bahamas","BT":"Bután","BV":"Isla Bouvet","BW":"Botsuana","BY":"Bielorrusia","BZ":"Belice","CA":"Canadá","CC":"Islas Cocos (Keeling)","CD":"Congo, República Democrática del","CF":"República Centroafricana","CG":"Congo","CH":"Suiza","CI":"Costa de Marfíl","CK":"Islas Cook","CL":"Chile","CM":"Camerún","CN":"China","CO":"Colombia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curazao","CX":"Isla de Navidad","CY":"Chipre","CZ":"Chequia","DE":"Alemania","DJ":"Yibuti","DK":"Dinamarca","DM":"Dominica","DO":"República Dominicana","DZ":"Argelia","EC":"Ecuador","EE":"Estonia","EG":"Egipto","EH":"Sahara Occidental","ER":"Eritrea","ES":"España","ET":"Etiopía","FI":"Finlandia","FJ":"Fiyi","FK":"Islas Falkland (Malvinas)","FM":"Micronesia, Estados Federados de","FO":"Islas Feroe","FR":"Francia","GA":"Gabón","GB":"Reino Unido","GD":"Granada","GE":"Georgia","GF":"Guayana Francesa","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Groenlandia","GM":"Gambia","GN":"Guinea","GP":"Guadalupe","GQ":"Guinea Ecuatorial","GR":"Grecia","GS":"Islas Georgias del Sur y Sándwich del Sur","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bisáu","GY":"Guyana","HK":"Hong Kong","HM":"Islas Heard y McDonald","HN":"Honduras","HR":"Croacia","HT":"Haití","HU":"Hungría","ID":"Indonesia","IE":"Irlanda","IL":"Israel","IM":"Isla de Man","IN":"India","IO":"Territorio Británico del Océano Índico","IQ":"Irak","IR":"Irán, República islámica de","IS":"Islandia","IT":"Italia","JE":"Jersey","JM":"Jamaica","JO":"Jordania","JP":"Japón","KE":"Kenia","KG":"Kirguistán","KH":"Camboya","KI":"Kiribati","KM":"Comores, Islas","KN":"San Cristóbal y Nieves","KP":"Corea, República Democrática Popular de","KR":"Corea, República de","KW":"Kuwait","KY":"Islas Caimán","KZ":"Kazajistán","LA":"República Democrática Popular de Lao","LB":"Líbano","LC":"Santa Lucía","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Liberia","LS":"Lesoto","LT":"Lituania","LU":"Luxemburgo","LV":"Letonia","LY":"Libia","MA":"Marruecos","MC":"Mónaco","MD":"Moldavia","ME":"Montenegro","MF":"San Martín (zona francesa)","MG":"Madagascar","MH":"Islas Marshall","MK":"Macedonia del Norte","ML":"Malí","MM":"Birmania","MN":"Mongolia","MO":"Macao","MP":"Islas Marianas del Norte","MQ":"Martinica","MR":"Mauritania","MS":"Montserrat","MT":"Malta","MU":"Mauricio","MV":"Islas Maldivas","MW":"Malaui","MX":"México","MY":"Malasia","MZ":"Mozambique","NA":"Namibia","NC":"Nueva Caledonia","NE":"Niger","NF":"Isla Norfolk","NG":"Nigeria","NI":"Nicaragua","NL":"Países Bajos","NO":"Noruega","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"Nueva Zelanda","OM":"Omán","PA":"Panamá","PE":"Perú","PF":"Polinesia Francesa","PG":"Papúa Nueva Guinea","PH":"Filipinas","PK":"Pakistán","PL":"Polonia","PM":"San Pedro y Miquelon","PN":"Pitcairn","PR":"Puerto Rico","PS":"Palestina, Estado de","PT":"Portugal","PW":"Palaos","PY":"Paraguay","QA":"Catar","RE":"Reunión","RO":"Rumanía","RS":"Serbia","RU":"Federación Rusa","RW":"Ruanda","SA":"Arabia Saudí","SB":"Islas Salomón","SC":"Seychelles","SD":"Sudán","SE":"Suecia","SG":"Singapur","SH":"Santa Elena, Ascensión y Tristán de Acuña","SI":"Eslovenia","SJ":"Svalbard y Jan Mayen","SK":"Eslovaquia","SL":"Sierra Leona","SM":"San Marino","SN":"Senegal","SO":"Somalia","SR":"Surinám","SS":"Sudán del Sur","ST":"Santo Tomé y Príncipe","SV":"El Salvador","SX":"Isla de San Martín (zona holandsea)","SY":"República árabe de Siria","SZ":"Esuatini","TC":"Islas Turcas y Caicos","TD":"Chad","TF":"Territorios Franceses del Sur","TG":"Togo","TH":"Tailandia","TJ":"Tayikistán","TK":"Tokelau","TL":"Timor Oriental","TM":"Turkmenistán","TN":"Tunez","TO":"Tonga","TR":"Turquía","TT":"Trinidad y Tobago","TV":"Tuvalu","TW":"Taiwán","TZ":"Tanzania","UA":"Ucrania","UG":"Uganda","UM":"Islas Ultramarinas Menores de Estados Unidos","US":"Estados Unidos","UY":"Uruguay","UZ":"Uzbekistán","VA":"Santa Sede (Ciudad Estado del Vaticano)","VC":"San Vicente y las Granadinas","VE":"Venezuela","VG":"Islas Vírgenes, Británicas","VI":"Islas Vírgenes, de EEUU","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis y Futuna","WS":"Samoa","YE":"Yemen","YT":"Mayotte","ZA":"Sudáfrica","ZM":"Zambia","ZW":"Zimbabue"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"AD":"Andorra","AE":"Emirados Árabes Unidos","AF":"Afeganistão","AG":"Antígua e Barbuda","AI":"Anguila","AL":"Albânia","AM":"Armênia","AO":"Angola","AQ":"Antártida","AR":"Argentina","AS":"Samoa Americana","AT":"Áustria","AU":"Austrália","AW":"Aruba","AX":"Ilhas Åland","AZ":"Azerbaijão","BA":"Bósnia-Herzegóvina","BB":"Barbados","BD":"Bangladesh","BE":"Bélgica","BF":"Burquina","BG":"Bulgária","BH":"Barein","BI":"Burundi","BJ":"Benin","BL":"São Bartolomeu","BM":"Bermuda","BN":"Brunei","BO":"Bolívia","BQ":"Bonaire, Saba e Santo Eustáquio","BR":"Brasil","BS":"Bahamas","BT":"Butão","BV":"Ilha Bouvet","BW":"Botsuana","BY":"Bielo-Rússia","BZ":"Belize","CA":"Canadá","CC":"Ilhas Cocos","CD":"República Democrática do Congo","CF":"República Centro-Africana","CG":"Congo","CH":"Suíça","CI":"Costa do Marfim","CK":"Ilhas Cook","CL":"Chile","CM":"Camarões","CN":"China","CO":"Colômbia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curaçao","CX":"Ilha Christmas","CY":"Chipre","CZ":"Chéquia","DE":"Alemanha","DJ":"Djibuti","DK":"Dinamarca","DM":"Domínica","DO":"República Dominicana","DZ":"Argélia","EC":"Equador","EE":"Estônia","EG":"Egito","EH":"Saara Ocidental","ER":"Eritréia","ES":"Espanha","ET":"Etiópia","FI":"Finlândia","FJ":"Fiji","FK":"Ilhas Malvinas (Falkland)","FM":"Estados Federados da Micronésia","FO":"Ilhas Faroe","FR":"França","GA":"Gabão","GB":"Reino Unido","GD":"Granada","GE":"Geórgia","GF":"Guiana Francesa","GG":"Guernsey","GH":"Gana","GI":"Gibraltar","GL":"Groenlândia","GM":"Gâmbia","GN":"Guiné","GP":"Guadalupe","GQ":"Guiné Equatorial","GR":"Grécia","GS":"Geórgia do Sul e Ilhas Sandwich do Sul","GT":"Guatemala","GU":"Guam","GW":"Guiné-Bissau","GY":"Guiana","HK":"Hong Kong","HM":"Ilha Heard e Ilhas McDonald","HN":"Honduras","HR":"Croácia","HT":"Haiti","HU":"Hungria","ID":"Indonésia","IE":"Irlanda","IL":"Israel","IM":"Ilha de Man","IN":"Índia","IO":"Território Britânico do Oceano Índico","IQ":"Iraque","IR":"Irã","IS":"Islândia","IT":"Itália","JE":"Jersey","JM":"Jamaica","JO":"Jordânia","JP":"Japão","KE":"Quênia","KG":"Quirguistão","KH":"Camboja","KI":"Kiribati","KM":"Comores","KN":"São Cristóvão e Névis","KP":"Coreia do Norte","KR":"Coreia do Sul","KW":"Kuwait","KY":"Ilhas Cayman","KZ":"Cazaquistão","LA":"República Popular Democrática do Laos","LB":"Líbano","LC":"Santa Lúcia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Libéria","LS":"Lesoto","LT":"Lituânia","LU":"Luxemburgo","LV":"Letônia","LY":"Líbia","MA":"Marrocos","MC":"Mônaco","MD":"Moldávia","ME":"Montenegro","MF":"São Martim (parte francesa)","MG":"Madagascar","MH":"Ilhas Marshall","MK":"Macedônia do Norte","ML":"Mali","MM":"Myanmar","MN":"Mongólia","MO":"Macau","MP":"Ilhas Marianas do Norte","MQ":"Martinica","MR":"Mauritânia","MS":"Montserrat","MT":"Malta","MU":"Maurício","MV":"Maldivas","MW":"Malaui","MX":"México","MY":"Malásia","MZ":"Moçambique","NA":"Namíbia","NC":"Nova Caledônia","NE":"Níger","NF":"Ilha Norfolk","NG":"Nigéria","NI":"Nicarágua","NL":"Países Baixos","NO":"Noruega","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"Nova Zelândia","OM":"Omã","PA":"Panamá","PE":"Peru","PF":"Polinésia Francesa","PG":"Papua-Nova Guiné","PH":"Filipinas","PK":"Paquistão","PL":"Polônia","PM":"São Pedro e Miquelon","PN":"Pitcairn","PR":"Porto Rico","PS":"Palestina, Estado da","PT":"Portugal","PW":"Palau","PY":"Paraguai","QA":"Catar","RE":"Reunião","RO":"Romênia","RS":"Sérvia","RU":"Federação Russa","RW":"Ruanda","SA":"Arábia Saudita","SB":"Ilhas Salomão","SC":"Seychelles","SD":"Sudão","SE":"Suécia","SG":"
|
|
1
|
+
{"AD":"Andorra","AE":"Emirados Árabes Unidos","AF":"Afeganistão","AG":"Antígua e Barbuda","AI":"Anguila","AL":"Albânia","AM":"Armênia","AO":"Angola","AQ":"Antártida","AR":"Argentina","AS":"Samoa Americana","AT":"Áustria","AU":"Austrália","AW":"Aruba","AX":"Ilhas Åland","AZ":"Azerbaijão","BA":"Bósnia-Herzegóvina","BB":"Barbados","BD":"Bangladesh","BE":"Bélgica","BF":"Burquina","BG":"Bulgária","BH":"Barein","BI":"Burundi","BJ":"Benin","BL":"São Bartolomeu","BM":"Bermuda","BN":"Brunei","BO":"Bolívia","BQ":"Bonaire, Saba e Santo Eustáquio","BR":"Brasil","BS":"Bahamas","BT":"Butão","BV":"Ilha Bouvet","BW":"Botsuana","BY":"Bielo-Rússia","BZ":"Belize","CA":"Canadá","CC":"Ilhas Cocos","CD":"República Democrática do Congo","CF":"República Centro-Africana","CG":"Congo","CH":"Suíça","CI":"Costa do Marfim","CK":"Ilhas Cook","CL":"Chile","CM":"Camarões","CN":"China","CO":"Colômbia","CR":"Costa Rica","CU":"Cuba","CV":"Cabo Verde","CW":"Curaçao","CX":"Ilha Christmas","CY":"Chipre","CZ":"Chéquia","DE":"Alemanha","DJ":"Djibuti","DK":"Dinamarca","DM":"Domínica","DO":"República Dominicana","DZ":"Argélia","EC":"Equador","EE":"Estônia","EG":"Egito","EH":"Saara Ocidental","ER":"Eritréia","ES":"Espanha","ET":"Etiópia","FI":"Finlândia","FJ":"Fiji","FK":"Ilhas Malvinas (Falkland)","FM":"Estados Federados da Micronésia","FO":"Ilhas Faroe","FR":"França","GA":"Gabão","GB":"Reino Unido","GD":"Granada","GE":"Geórgia","GF":"Guiana Francesa","GG":"Guernsey","GH":"Gana","GI":"Gibraltar","GL":"Groenlândia","GM":"Gâmbia","GN":"Guiné","GP":"Guadalupe","GQ":"Guiné Equatorial","GR":"Grécia","GS":"Geórgia do Sul e Ilhas Sandwich do Sul","GT":"Guatemala","GU":"Guam","GW":"Guiné-Bissau","GY":"Guiana","HK":"Hong Kong","HM":"Ilha Heard e Ilhas McDonald","HN":"Honduras","HR":"Croácia","HT":"Haiti","HU":"Hungria","ID":"Indonésia","IE":"Irlanda","IL":"Israel","IM":"Ilha de Man","IN":"Índia","IO":"Território Britânico do Oceano Índico","IQ":"Iraque","IR":"Irã","IS":"Islândia","IT":"Itália","JE":"Jersey","JM":"Jamaica","JO":"Jordânia","JP":"Japão","KE":"Quênia","KG":"Quirguistão","KH":"Camboja","KI":"Kiribati","KM":"Comores","KN":"São Cristóvão e Névis","KP":"Coreia do Norte","KR":"Coreia do Sul","KW":"Kuwait","KY":"Ilhas Cayman","KZ":"Cazaquistão","LA":"República Popular Democrática do Laos","LB":"Líbano","LC":"Santa Lúcia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Libéria","LS":"Lesoto","LT":"Lituânia","LU":"Luxemburgo","LV":"Letônia","LY":"Líbia","MA":"Marrocos","MC":"Mônaco","MD":"Moldávia","ME":"Montenegro","MF":"São Martim (parte francesa)","MG":"Madagascar","MH":"Ilhas Marshall","MK":"Macedônia do Norte","ML":"Mali","MM":"Myanmar","MN":"Mongólia","MO":"Macau","MP":"Ilhas Marianas do Norte","MQ":"Martinica","MR":"Mauritânia","MS":"Montserrat","MT":"Malta","MU":"Maurício","MV":"Maldivas","MW":"Malaui","MX":"México","MY":"Malásia","MZ":"Moçambique","NA":"Namíbia","NC":"Nova Caledônia","NE":"Níger","NF":"Ilha Norfolk","NG":"Nigéria","NI":"Nicarágua","NL":"Países Baixos","NO":"Noruega","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"Nova Zelândia","OM":"Omã","PA":"Panamá","PE":"Peru","PF":"Polinésia Francesa","PG":"Papua-Nova Guiné","PH":"Filipinas","PK":"Paquistão","PL":"Polônia","PM":"São Pedro e Miquelon","PN":"Pitcairn","PR":"Porto Rico","PS":"Palestina, Estado da","PT":"Portugal","PW":"Palau","PY":"Paraguai","QA":"Catar","RE":"Reunião","RO":"Romênia","RS":"Sérvia","RU":"Federação Russa","RW":"Ruanda","SA":"Arábia Saudita","SB":"Ilhas Salomão","SC":"Seychelles","SD":"Sudão","SE":"Suécia","SG":"Singapura","SH":"Santa Helena, Ascensão e Tristão da Cunha","SI":"Eslovênia","SJ":"Svalbard e a Ilha de Jan Mayen","SK":"Eslováquia","SL":"Serra Leoa","SM":"São Marino","SN":"Senegal","SO":"Somália","SR":"Suriname","SS":"Sudão do Sul","ST":"São Tomé e Príncipe","SV":"El Salvador","SX":"São Martim (parte holandesa)","SY":"República Árabe da Síria","SZ":"Suazilândia","TC":"Ilhas Turks e Caicos","TD":"Chade","TF":"Territórios Franceses do Sul","TG":"Togo","TH":"Tailândia","TJ":"Tadjiquistão","TK":"Toquelau","TL":"Timor Leste","TM":"Turcomenistão","TN":"Tunísia","TO":"Tonga","TR":"Turquia","TT":"Trinidade e Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzânia","UA":"Ucrânia","UG":"Uganda","UM":"Ilhas Menores Distantes dos Estados Unidos","US":"Estados Unidos","UY":"Uruguai","UZ":"Uzbequistão","VA":"Santa Sé (Cidade-Estado do Vaticano)","VC":"São Vicente e Granadinas","VE":"Venezuela","VG":"Ilhas Virgens Britânicas","VI":"Ilhas Virgens dos Estados Unidos","VN":"Vietnã","VU":"Vanuatu","WF":"Wallis e Futuna","WS":"Samoa","YE":"Iêmen","YT":"Maiote","ZA":"África do Sul","ZM":"Zâmbia","ZW":"Zimbábue"}
|
|
@@ -19,13 +19,24 @@ module ISO3166
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
class Configuration
|
|
22
|
-
attr_accessor :
|
|
22
|
+
attr_accessor :loaded_locales
|
|
23
23
|
|
|
24
24
|
def initialize
|
|
25
|
-
@locales = default_locales
|
|
26
25
|
@loaded_locales = []
|
|
27
26
|
end
|
|
28
27
|
|
|
28
|
+
def locales
|
|
29
|
+
@locales ||= default_locales
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def locales=(value)
|
|
33
|
+
if value.is_a?(Array)
|
|
34
|
+
@locales = value.map(&:to_sym).uniq
|
|
35
|
+
else
|
|
36
|
+
raise ArgumentError, "Expected an Array of locales, got #{value.class}"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
29
40
|
# Enables the integration with the {Money}[https://github.com/RubyMoney/money] gem
|
|
30
41
|
#
|
|
31
42
|
# Please note that it requires you to add "money" gem to your gemfile.
|
|
@@ -46,6 +57,7 @@ module ISO3166
|
|
|
46
57
|
|
|
47
58
|
private
|
|
48
59
|
|
|
60
|
+
# :reek:UtilityFunction
|
|
49
61
|
def default_locales
|
|
50
62
|
locales = if Object.const_defined?('I18n') && I18n.respond_to?(:available_locales)
|
|
51
63
|
I18n.available_locales.dup
|
|
@@ -18,24 +18,32 @@ module ISO3166
|
|
|
18
18
|
|
|
19
19
|
module CountryClassMethods
|
|
20
20
|
def new(country_data)
|
|
21
|
-
super if country_data.is_a?(Hash)
|
|
21
|
+
return super if country_data.is_a?(Hash)
|
|
22
|
+
|
|
23
|
+
country_code = country_data.to_s
|
|
24
|
+
country_code = country_code.upcase if country_code.match?(/[a-z]/)
|
|
25
|
+
|
|
26
|
+
super if codes.include?(country_code)
|
|
22
27
|
end
|
|
23
28
|
|
|
29
|
+
# :reek:UtilityFunction
|
|
24
30
|
def codes
|
|
25
31
|
ISO3166::Data.codes
|
|
26
32
|
end
|
|
27
33
|
|
|
28
|
-
def all(&
|
|
29
|
-
|
|
30
|
-
ISO3166::Data.cache.map(&
|
|
34
|
+
def all(&block)
|
|
35
|
+
block ||= proc { |_alpha2, data| ISO3166::Country.new(data) }
|
|
36
|
+
ISO3166::Data.cache.map(&block)
|
|
31
37
|
end
|
|
32
38
|
|
|
33
39
|
alias countries all
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
# :reek:UtilityFunction
|
|
42
|
+
# :reek:ManualDispatch
|
|
43
|
+
def all_names_with_codes(locale = :en)
|
|
44
|
+
Country.all.map do |country|
|
|
45
|
+
lc = country.translation(locale) || country.iso_short_name
|
|
46
|
+
[lc.respond_to?('html_safe') ? lc.html_safe : lc, country.alpha2]
|
|
39
47
|
end.sort
|
|
40
48
|
end
|
|
41
49
|
|
|
@@ -43,23 +51,20 @@ module ISO3166
|
|
|
43
51
|
all.map { |country| country.data.fetch_values(*attributes.map(&:to_s)) }
|
|
44
52
|
end
|
|
45
53
|
|
|
46
|
-
def all_translated(locale =
|
|
54
|
+
def all_translated(locale = :en)
|
|
47
55
|
translations(locale).values
|
|
48
56
|
end
|
|
49
57
|
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
# :reek:UtilityFunction
|
|
59
|
+
# :reek:FeatureEnvy
|
|
60
|
+
def translations(locale = :en)
|
|
61
|
+
locale = locale.to_sym if locale.is_a?(String)
|
|
62
|
+
locale = locale.downcase if locale.match?(/[A-Z]/)
|
|
63
|
+
|
|
52
64
|
file_path = ISO3166::Data.datafile_path(%W[locales #{locale}.json])
|
|
53
65
|
translations = JSON.parse(File.read(file_path))
|
|
54
66
|
|
|
55
|
-
|
|
56
|
-
(ISO3166::Data.codes - ISO3166::Data.loaded_codes).each do |code|
|
|
57
|
-
country = ISO3166::Country[code]
|
|
58
|
-
translation = country.translations[locale] || country.iso_short_name
|
|
59
|
-
custom_countries[code] = translation
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
translations.merge(custom_countries)
|
|
67
|
+
translations.merge(custom_countries_translations(locale))
|
|
63
68
|
end
|
|
64
69
|
|
|
65
70
|
# @param query_val [String] A value to query using `query_method`
|
|
@@ -67,9 +72,9 @@ module ISO3166
|
|
|
67
72
|
# @param result_method [Symbol] An optional method of `Country` to apply to the result set.
|
|
68
73
|
# @return [Array] An array of countries matching the provided query, or the result of applying `result_method` to the array of `Country` objects
|
|
69
74
|
def collect_countries_with(query_val, query_method = :alpha2, result_method = :itself)
|
|
70
|
-
return nil unless [query_method, result_method].map { |
|
|
75
|
+
return nil unless [query_method, result_method].map { |method| method_defined? method }.all?
|
|
71
76
|
|
|
72
|
-
all.select { |country| country.send(query_method)
|
|
77
|
+
all.select { |country| country.send(query_method)&.include? query_val }
|
|
73
78
|
.map { |country| country.send(result_method) }
|
|
74
79
|
end
|
|
75
80
|
|
|
@@ -85,6 +90,7 @@ module ISO3166
|
|
|
85
90
|
|
|
86
91
|
protected
|
|
87
92
|
|
|
93
|
+
# :reek:UtilityFunction
|
|
88
94
|
def strip_accents(string)
|
|
89
95
|
if string.is_a?(Regexp)
|
|
90
96
|
Regexp.new(Unaccent.unaccent(string.source), 'i')
|
|
@@ -102,11 +108,26 @@ module ISO3166
|
|
|
102
108
|
# NB: We only want to use this cache for values coming from the JSON
|
|
103
109
|
# file or our own code, caching user-generated data could be dangerous
|
|
104
110
|
# since the cache would continually grow.
|
|
111
|
+
# :reek:DuplicateMethodCall
|
|
105
112
|
def cached(value)
|
|
106
113
|
@_parsed_values_cache ||= {}
|
|
107
114
|
return @_parsed_values_cache[value] if @_parsed_values_cache[value]
|
|
108
115
|
|
|
109
116
|
@_parsed_values_cache[value] = yield
|
|
110
117
|
end
|
|
118
|
+
|
|
119
|
+
private
|
|
120
|
+
|
|
121
|
+
# :reek:UtilityFunction
|
|
122
|
+
def custom_countries_translations(locale)
|
|
123
|
+
custom_countries = {}
|
|
124
|
+
(ISO3166::Data.codes - ISO3166::Data.loaded_codes).each do |code|
|
|
125
|
+
country = ISO3166::Country[code]
|
|
126
|
+
translation = country.translations[locale] || country.iso_short_name
|
|
127
|
+
custom_countries[code] = translation
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
custom_countries
|
|
131
|
+
end
|
|
111
132
|
end
|
|
112
133
|
end
|
|
@@ -5,14 +5,16 @@ module ISO3166
|
|
|
5
5
|
# @param subdivision_str [String] A subdivision name or code to search for. Search includes translated subdivision names.
|
|
6
6
|
# @return [Subdivision] The first subdivision matching the provided string
|
|
7
7
|
def find_subdivision_by_name(subdivision_str)
|
|
8
|
-
subdivisions.select do |
|
|
9
|
-
subdivision_str ==
|
|
10
|
-
end.values
|
|
8
|
+
matched_subdivisions = subdivisions.select do |key, value|
|
|
9
|
+
subdivision_str == key || value.match?(subdivision_str)
|
|
10
|
+
end.values
|
|
11
|
+
|
|
12
|
+
matched_subdivisions.min_by { |subdivision| subdivision_types.index(subdivision.type) }
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def subdivision_for_string?(subdivision_str)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
subdivisions.transform_values(&:translations)
|
|
17
|
+
.any? { |key, value| subdivision_str == key || value.values.include?(subdivision_str) }
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
# +true+ if this Country has any Subdivisions.
|
|
@@ -21,6 +23,7 @@ module ISO3166
|
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
# @return [Array<ISO3166::Subdivision>] the list of subdivisions for this Country.
|
|
26
|
+
# :reek:DuplicateMethodCall
|
|
24
27
|
def subdivisions
|
|
25
28
|
@subdivisions ||= if data['subdivisions']
|
|
26
29
|
ISO3166::Data.create_subdivisions(data['subdivisions'])
|
|
@@ -32,49 +35,41 @@ module ISO3166
|
|
|
32
35
|
# @param types [Array<String>] The locale to use for translations.
|
|
33
36
|
# @return [Array<ISO3166::Subdivision>] the list of subdivisions of the given type(s) for this Country.
|
|
34
37
|
def subdivisions_of_types(types)
|
|
35
|
-
subdivisions.select { |_k,
|
|
38
|
+
subdivisions.select { |_k, value| types.include?(value.type) }
|
|
36
39
|
end
|
|
37
40
|
|
|
38
41
|
# @return [Array<String>] the list of subdivision types for this country
|
|
39
42
|
def subdivision_types
|
|
40
|
-
subdivisions.map { |_k,
|
|
43
|
+
subdivisions.map { |_k, value| value['type'] }.uniq
|
|
41
44
|
end
|
|
42
45
|
|
|
43
46
|
# @return [Array<String>] the list of humanized subdivision types for this country. Uses ActiveSupport's `#humanize` if available
|
|
47
|
+
# :reek:DuplicateMethodCall
|
|
44
48
|
def humanized_subdivision_types
|
|
45
49
|
if String.instance_methods.include?(:humanize)
|
|
46
|
-
subdivisions.map { |_k,
|
|
50
|
+
subdivisions.map { |_k, value| value['type'].humanize.freeze }.uniq
|
|
47
51
|
else
|
|
48
|
-
subdivisions.map { |_k,
|
|
52
|
+
subdivisions.map { |_k, value| humanize_string(value['type']) }.uniq
|
|
49
53
|
end
|
|
50
54
|
end
|
|
51
55
|
|
|
52
56
|
# @param locale [String] The locale to use for translations.
|
|
53
57
|
# @return [Array<Array>] This Country's subdivision pairs of names and codes.
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
# :reek:FeatureEnvy
|
|
59
|
+
def subdivision_names_with_codes(locale = :en)
|
|
60
|
+
subdivisions.map { |key, value| [value.translations[locale] || value.name, key] }
|
|
56
61
|
end
|
|
57
62
|
|
|
58
63
|
# @param locale [String] The locale to use for translations.
|
|
59
64
|
# @return [Array<String>] A list of subdivision names for this country.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def states
|
|
65
|
-
if RUBY_VERSION =~ /^3\.\d\.\d/
|
|
66
|
-
warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
|
|
67
|
-
uplevel: 1, category: :deprecated
|
|
68
|
-
else
|
|
69
|
-
warn 'DEPRECATION WARNING: The Country#states method has been deprecated and will be removed in 6.0. Please use Country#subdivisions instead.',
|
|
70
|
-
uplevel: 1
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
subdivisions
|
|
65
|
+
# :reek:FeatureEnvy
|
|
66
|
+
def subdivision_names(locale = :en)
|
|
67
|
+
subdivisions.map { |_k, value| value.translations[locale] || value.name }
|
|
74
68
|
end
|
|
75
69
|
|
|
76
70
|
private
|
|
77
71
|
|
|
72
|
+
# :reek:UtilityFunction
|
|
78
73
|
def humanize_string(str)
|
|
79
74
|
(str[0].upcase + str.tr('_', ' ')[1..]).freeze
|
|
80
75
|
end
|
|
@@ -35,7 +35,7 @@ module ISO3166
|
|
|
35
35
|
#
|
|
36
36
|
# The emoji flag for this country, using Unicode Regional Indicator characters. e.g: "U+1F1FA U+1F1F8" for 🇺🇸
|
|
37
37
|
def emoji_flag
|
|
38
|
-
alpha2.downcase.chars.map { |
|
|
38
|
+
alpha2.downcase.chars.map { |char| CODE_POINTS[char] }.join.freeze
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -5,8 +5,12 @@ module ISO3166
|
|
|
5
5
|
FIND_BY_REGEX = /^find_(all_)?(country_|countries_)?by_(.+)/
|
|
6
6
|
SEARCH_TERM_FILTER_REGEX = /\(|\)|\[\]|,/
|
|
7
7
|
|
|
8
|
+
# :reek:FeatureEnvy
|
|
8
9
|
def search(query)
|
|
9
|
-
|
|
10
|
+
query = query.to_s if query.is_a?(Symbol)
|
|
11
|
+
query = query.upcase if query&.match?(/[a-z]/)
|
|
12
|
+
|
|
13
|
+
country = new(query)
|
|
10
14
|
country&.valid? ? country : nil
|
|
11
15
|
end
|
|
12
16
|
|
|
@@ -14,54 +18,62 @@ module ISO3166
|
|
|
14
18
|
search(query)
|
|
15
19
|
end
|
|
16
20
|
|
|
21
|
+
# :reek:NestedIterators
|
|
17
22
|
def find_all_by(attribute, val)
|
|
18
23
|
attributes, lookup_value = parse_attributes(attribute, val)
|
|
19
24
|
|
|
20
|
-
ISO3166::Data.cache.select do |
|
|
21
|
-
country = Country.new(
|
|
25
|
+
ISO3166::Data.cache.select do |_k, value|
|
|
26
|
+
country = Country.new(value)
|
|
22
27
|
attributes.any? do |attr|
|
|
23
|
-
Array(country.send(attr)).any? do |
|
|
24
|
-
lookup_value === cached(
|
|
28
|
+
Array(country.send(attr)).any? do |attr_value|
|
|
29
|
+
lookup_value === cached(attr_value) { parse_value(attr_value) }
|
|
25
30
|
end
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
end
|
|
29
34
|
|
|
35
|
+
# :reek:FeatureEnvy
|
|
30
36
|
def method_missing(method_name, *arguments)
|
|
31
37
|
matches = method_name.to_s.match(FIND_BY_REGEX)
|
|
32
|
-
return_all = matches[1]
|
|
33
38
|
super unless matches
|
|
39
|
+
return_all = matches[1]
|
|
40
|
+
method = matches[3]
|
|
34
41
|
|
|
35
|
-
countries = find_by(
|
|
42
|
+
countries = find_by(method, arguments[0], matches[2])
|
|
36
43
|
return_all ? countries : countries.last
|
|
37
44
|
end
|
|
38
45
|
|
|
46
|
+
# :reek:BooleanParameter
|
|
39
47
|
def respond_to_missing?(method_name, include_private = false)
|
|
40
48
|
matches = method_name.to_s.match(FIND_BY_REGEX)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
return super unless matches && matches[3]
|
|
50
|
+
|
|
51
|
+
method = matches[3]
|
|
52
|
+
|
|
53
|
+
instance_methods.include?(method.to_sym)
|
|
46
54
|
end
|
|
47
55
|
|
|
48
56
|
protected
|
|
49
57
|
|
|
58
|
+
# :reek:ControlParameter
|
|
50
59
|
def find_by(attribute, value, obj = nil)
|
|
51
60
|
find_all_by(attribute.downcase, value).map do |country|
|
|
52
|
-
obj
|
|
61
|
+
obj ? new(country.last) : country
|
|
53
62
|
end
|
|
54
63
|
end
|
|
55
64
|
|
|
56
65
|
def parse_attributes(attribute, val)
|
|
57
66
|
raise "Invalid attribute name '#{attribute}'" unless searchable_attribute?(attribute.to_sym)
|
|
58
67
|
|
|
59
|
-
|
|
60
|
-
attributes =
|
|
68
|
+
attribute = attribute.to_s
|
|
69
|
+
attributes = Array(attribute)
|
|
70
|
+
attributes = %w[iso_long_name iso_short_name unofficial_names translated_names] if attribute == 'any_name'
|
|
61
71
|
|
|
62
72
|
[attributes, parse_value(val)]
|
|
63
73
|
end
|
|
64
74
|
|
|
75
|
+
# :reek:ManualDispatch
|
|
76
|
+
# :reek:FeatureEnvy
|
|
65
77
|
def parse_value(value)
|
|
66
78
|
value = value.gsub(SEARCH_TERM_FILTER_REGEX, '').freeze if value.respond_to?(:gsub)
|
|
67
79
|
strip_accents(value)
|
|
@@ -72,8 +84,7 @@ module ISO3166
|
|
|
72
84
|
end
|
|
73
85
|
|
|
74
86
|
def searchable_attributes
|
|
75
|
-
|
|
76
|
-
instance_methods - UNSEARCHABLE_METHODS + %i[name names any_name]
|
|
87
|
+
instance_methods - UNSEARCHABLE_METHODS + %i[any_name]
|
|
77
88
|
end
|
|
78
89
|
end
|
|
79
90
|
end
|
data/lib/countries/country.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module ISO3166
|
|
4
|
+
# :reek:TooManyMethods
|
|
4
5
|
class Country
|
|
5
6
|
extend CountryClassMethods
|
|
6
7
|
extend ConversionMethods
|
|
@@ -9,13 +10,13 @@ module ISO3166
|
|
|
9
10
|
include CountrySubdivisionMethods
|
|
10
11
|
attr_reader :data
|
|
11
12
|
|
|
12
|
-
ISO3166::DEFAULT_COUNTRY_HASH.
|
|
13
|
+
ISO3166::DEFAULT_COUNTRY_HASH.each_key do |method_name|
|
|
13
14
|
define_method method_name do
|
|
14
15
|
data[method_name.to_s]
|
|
15
16
|
end
|
|
16
17
|
end
|
|
17
18
|
|
|
18
|
-
ISO3166::DEFAULT_COUNTRY_HASH['geo'].
|
|
19
|
+
ISO3166::DEFAULT_COUNTRY_HASH['geo'].each_key do |method_name|
|
|
19
20
|
define_method method_name do
|
|
20
21
|
data['geo'][method_name.to_s]
|
|
21
22
|
end
|
|
@@ -26,6 +27,7 @@ module ISO3166
|
|
|
26
27
|
reload
|
|
27
28
|
end
|
|
28
29
|
|
|
30
|
+
# :reek:NilCheck
|
|
29
31
|
def valid?
|
|
30
32
|
!(data.nil? || data.empty?)
|
|
31
33
|
end
|
|
@@ -36,6 +38,8 @@ module ISO3166
|
|
|
36
38
|
alias zip_format postal_code_format
|
|
37
39
|
alias languages languages_official
|
|
38
40
|
|
|
41
|
+
# :reek:FeatureEnvy
|
|
42
|
+
# :reek:ManualDispatch
|
|
39
43
|
def ==(other)
|
|
40
44
|
other.respond_to?(:alpha2) && other.alpha2 == alpha2
|
|
41
45
|
end
|
|
@@ -52,17 +56,27 @@ module ISO3166
|
|
|
52
56
|
to_s <=> other.to_s
|
|
53
57
|
end
|
|
54
58
|
|
|
59
|
+
# Access country data by key, symbol or string.
|
|
60
|
+
# :reek:ManualDispatch
|
|
61
|
+
def [](key)
|
|
62
|
+
key = key.to_s if key.is_a?(Symbol)
|
|
63
|
+
data[key] || send(key)
|
|
64
|
+
end
|
|
65
|
+
|
|
55
66
|
# +true+ if this country is a member of the European Union.
|
|
67
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
56
68
|
def in_eu?
|
|
57
69
|
data['eu_member'].nil? ? false : data['eu_member']
|
|
58
70
|
end
|
|
59
71
|
|
|
60
72
|
# +true+ if this country is a member of the G7.
|
|
73
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
61
74
|
def in_g7?
|
|
62
75
|
data['g7_member'].nil? ? false : data['g7_member']
|
|
63
76
|
end
|
|
64
77
|
|
|
65
78
|
# +true+ if this country is a member of the G20.
|
|
79
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
66
80
|
def in_g20?
|
|
67
81
|
data['g20_member'].nil? ? false : data['g20_member']
|
|
68
82
|
end
|
|
@@ -73,20 +87,34 @@ module ISO3166
|
|
|
73
87
|
end
|
|
74
88
|
|
|
75
89
|
# +true+ if this country is a member of the European Economic Area.
|
|
90
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
76
91
|
def in_eea?
|
|
77
92
|
data['eea_member'].nil? ? false : data['eea_member']
|
|
78
93
|
end
|
|
79
94
|
|
|
80
95
|
# +true+ if this country is a member of the European Single Market.
|
|
96
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
81
97
|
def in_esm?
|
|
82
98
|
data['esm_member'].nil? ? in_eea? : data['esm_member']
|
|
83
99
|
end
|
|
84
100
|
|
|
85
101
|
# +true+ if this country is a member of the EU VAT Area.
|
|
102
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
86
103
|
def in_eu_vat?
|
|
87
104
|
data['euvat_member'].nil? ? in_eu? : data['euvat_member']
|
|
88
105
|
end
|
|
89
106
|
|
|
107
|
+
# +true+ if this country is a member of the United Nations.
|
|
108
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
|
109
|
+
def in_un?
|
|
110
|
+
data['un_member'].nil? ? false : data['un_member']
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# @return [String] The ISO 3166-1 "Short name lower case" value for this Country.
|
|
114
|
+
def iso_short_name_lower_case
|
|
115
|
+
data['iso_short_name_lower_case'].nil? ? data['iso_short_name'] : data['iso_short_name_lower_case']
|
|
116
|
+
end
|
|
117
|
+
|
|
90
118
|
# @return [String] The regex for valid postal codes in this Country
|
|
91
119
|
def postal_code_format
|
|
92
120
|
"\\A#{data['postal_code_format']}\\Z" if postal_code
|
|
@@ -103,8 +131,12 @@ module ISO3166
|
|
|
103
131
|
|
|
104
132
|
# @param locale [String] The locale to use for translations.
|
|
105
133
|
# @return [String] the name of this Country in the selected locale.
|
|
106
|
-
|
|
107
|
-
|
|
134
|
+
# :reek:FeatureEnvy
|
|
135
|
+
def translation(locale = :en)
|
|
136
|
+
locale = locale.to_sym if locale.is_a?(String)
|
|
137
|
+
locale = locale.downcase if locale.match?(/[A-Z]/)
|
|
138
|
+
|
|
139
|
+
data['translations'][locale]
|
|
108
140
|
end
|
|
109
141
|
|
|
110
142
|
# @return [String] the “common name” of this Country in English.
|
|
@@ -113,7 +145,7 @@ module ISO3166
|
|
|
113
145
|
translation('en')
|
|
114
146
|
end
|
|
115
147
|
|
|
116
|
-
# @return [Array<String>]
|
|
148
|
+
# @return [Array<String>] The list of names for this Country, in this Country's locales.
|
|
117
149
|
def local_names
|
|
118
150
|
ISO3166.configuration.locales = (ISO3166.configuration.locales + languages.map(&:to_sym)).uniq
|
|
119
151
|
reload
|
|
@@ -207,6 +239,9 @@ module ISO3166
|
|
|
207
239
|
# @!attribute vat_rates
|
|
208
240
|
# @return [Hash] the hash of VAT Rates for this Country
|
|
209
241
|
#
|
|
242
|
+
# @!attribute vehicle_registration_code
|
|
243
|
+
# @return [String] The vehicle registration code for this Country
|
|
244
|
+
#
|
|
210
245
|
# @!attribute world_region
|
|
211
246
|
# @return [String] The "World Region" this country is in: +"AMER"+ , +"APAC"+ or +"EMEA"+
|
|
212
247
|
|