countries 7.1.1 → 8.0.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/es.json +1 -1
- data/lib/countries/cache/locales/pt-br.json +1 -1
- data/lib/countries/configuration.rb +1 -0
- data/lib/countries/country/class_methods.rb +41 -20
- data/lib/countries/country/country_subdivision_methods.rb +19 -12
- data/lib/countries/country/emoji.rb +1 -1
- data/lib/countries/country/finder_methods.rb +24 -11
- data/lib/countries/country.rb +17 -2
- data/lib/countries/data/countries/AE.yaml +0 -3
- data/lib/countries/data/countries/AI.yaml +0 -1
- data/lib/countries/data/countries/AQ.yaml +0 -10
- data/lib/countries/data/countries/AT.yaml +0 -1
- data/lib/countries/data/countries/AU.yaml +0 -3
- data/lib/countries/data/countries/AX.yaml +0 -6
- data/lib/countries/data/countries/BE.yaml +0 -1
- data/lib/countries/data/countries/BG.yaml +0 -2
- data/lib/countries/data/countries/BL.yaml +0 -5
- data/lib/countries/data/countries/BR.yaml +0 -2
- data/lib/countries/data/countries/BV.yaml +0 -10
- data/lib/countries/data/countries/CC.yaml +0 -1
- data/lib/countries/data/countries/CH.yaml +0 -2
- data/lib/countries/data/countries/CL.yaml +0 -3
- data/lib/countries/data/countries/CW.yaml +1 -2
- data/lib/countries/data/countries/CX.yaml +0 -3
- data/lib/countries/data/countries/CY.yaml +0 -2
- data/lib/countries/data/countries/CZ.yaml +0 -2
- data/lib/countries/data/countries/DE.yaml +0 -2
- data/lib/countries/data/countries/DK.yaml +0 -4
- data/lib/countries/data/countries/EE.yaml +0 -2
- data/lib/countries/data/countries/EH.yaml +0 -5
- data/lib/countries/data/countries/ES.yaml +0 -1
- data/lib/countries/data/countries/FI.yaml +0 -2
- data/lib/countries/data/countries/FK.yaml +0 -1
- data/lib/countries/data/countries/FR.yaml +0 -1
- data/lib/countries/data/countries/GB.yaml +1 -4
- data/lib/countries/data/countries/GF.yaml +0 -1
- data/lib/countries/data/countries/GG.yaml +0 -5
- data/lib/countries/data/countries/GI.yaml +0 -1
- data/lib/countries/data/countries/GL.yaml +0 -1
- data/lib/countries/data/countries/GP.yaml +0 -1
- data/lib/countries/data/countries/GR.yaml +0 -2
- data/lib/countries/data/countries/GS.yaml +0 -5
- data/lib/countries/data/countries/HM.yaml +0 -7
- data/lib/countries/data/countries/HR.yaml +0 -2
- data/lib/countries/data/countries/HU.yaml +0 -2
- data/lib/countries/data/countries/IL.yaml +0 -3
- data/lib/countries/data/countries/IM.yaml +0 -5
- data/lib/countries/data/countries/IO.yaml +0 -5
- data/lib/countries/data/countries/IS.yaml +0 -2
- data/lib/countries/data/countries/IT.yaml +0 -1
- data/lib/countries/data/countries/JE.yaml +0 -5
- data/lib/countries/data/countries/LT.yaml +0 -2
- data/lib/countries/data/countries/LV.yaml +0 -2
- data/lib/countries/data/countries/MF.yaml +0 -5
- data/lib/countries/data/countries/MO.yaml +0 -1
- data/lib/countries/data/countries/MP.yaml +0 -1
- data/lib/countries/data/countries/MQ.yaml +0 -1
- data/lib/countries/data/countries/MS.yaml +0 -1
- data/lib/countries/data/countries/MT.yaml +0 -2
- data/lib/countries/data/countries/MX.yaml +0 -3
- data/lib/countries/data/countries/NC.yaml +0 -1
- data/lib/countries/data/countries/NF.yaml +0 -1
- data/lib/countries/data/countries/NG.yaml +0 -3
- data/lib/countries/data/countries/NL.yaml +0 -2
- data/lib/countries/data/countries/NO.yaml +0 -3
- data/lib/countries/data/countries/NU.yaml +0 -1
- data/lib/countries/data/countries/NZ.yaml +0 -2
- data/lib/countries/data/countries/PF.yaml +0 -1
- data/lib/countries/data/countries/PH.yaml +0 -3
- data/lib/countries/data/countries/PL.yaml +0 -2
- data/lib/countries/data/countries/PM.yaml +0 -1
- data/lib/countries/data/countries/PN.yaml +0 -2
- data/lib/countries/data/countries/PT.yaml +0 -1
- data/lib/countries/data/countries/RE.yaml +0 -1
- data/lib/countries/data/countries/RO.yaml +0 -2
- data/lib/countries/data/countries/SA.yaml +0 -3
- data/lib/countries/data/countries/SE.yaml +0 -2
- data/lib/countries/data/countries/SH.yaml +0 -1
- data/lib/countries/data/countries/SI.yaml +0 -2
- data/lib/countries/data/countries/SJ.yaml +0 -1
- data/lib/countries/data/countries/SK.yaml +1 -3
- data/lib/countries/data/countries/SL.yaml +1 -1
- data/lib/countries/data/countries/SS.yaml +0 -1
- data/lib/countries/data/countries/ST.yaml +1 -1
- data/lib/countries/data/countries/SX.yaml +1 -2
- data/lib/countries/data/countries/TC.yaml +0 -1
- data/lib/countries/data/countries/TF.yaml +0 -5
- data/lib/countries/data/countries/TH.yaml +0 -2
- data/lib/countries/data/countries/TK.yaml +0 -1
- data/lib/countries/data/countries/TW.yaml +5 -5
- data/lib/countries/data/countries/UA.yaml +0 -2
- data/lib/countries/data/countries/UM.yaml +0 -6
- data/lib/countries/data/countries/VA.yaml +0 -1
- data/lib/countries/data/countries/WF.yaml +0 -1
- data/lib/countries/data/countries/YT.yaml +0 -1
- 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 +320 -482
- data/lib/countries/data/subdivisions/GA.yaml +23 -25
- data/lib/countries/data/subdivisions/GB.yaml +561 -846
- 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 +61 -115
- 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-es.yaml +1 -1
- data/lib/countries/data/translations/countries-pt_BR.yaml +1 -1
- data/lib/countries/data.rb +9 -4
- data/lib/countries/mongoid.rb +2 -0
- data/lib/countries/sources/cldr/downloader.rb +2 -2
- data/lib/countries/sources/cldr/subdivision_updater.rb +2 -2
- data/lib/countries/subdivision.rb +7 -2
- data/lib/countries/translations.rb +6 -1
- data/lib/countries/version.rb +1 -1
- metadata +10 -4
@@ -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"}
|
@@ -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,7 +72,7 @@ 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
77
|
all.select { |country| country.send(query_method).include? query_val }
|
73
78
|
.map { |country| country.send(result_method) }
|
@@ -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
16
|
subdivisions.transform_values(&:translations)
|
15
|
-
.any? { |
|
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,37 +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
|
-
|
65
|
+
# :reek:FeatureEnvy
|
66
|
+
def subdivision_names(locale = :en)
|
67
|
+
subdivisions.map { |_k, value| value.translations[locale] || value.name }
|
62
68
|
end
|
63
69
|
|
64
70
|
private
|
65
71
|
|
72
|
+
# :reek:UtilityFunction
|
66
73
|
def humanize_string(str)
|
67
74
|
(str[0].upcase + str.tr('_', ' ')[1..]).freeze
|
68
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,32 +18,37 @@ 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
38
|
super unless matches
|
33
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
|
-
|
49
|
+
method = matches[3]
|
50
|
+
if matches && method
|
51
|
+
instance_methods.include?(method.to_sym)
|
43
52
|
else
|
44
53
|
super
|
45
54
|
end
|
@@ -47,21 +56,25 @@ module ISO3166
|
|
47
56
|
|
48
57
|
protected
|
49
58
|
|
59
|
+
# :reek:ControlParameter
|
50
60
|
def find_by(attribute, value, obj = nil)
|
51
61
|
find_all_by(attribute.downcase, value).map do |country|
|
52
|
-
obj
|
62
|
+
obj ? new(country.last) : country
|
53
63
|
end
|
54
64
|
end
|
55
65
|
|
56
66
|
def parse_attributes(attribute, val)
|
57
67
|
raise "Invalid attribute name '#{attribute}'" unless searchable_attribute?(attribute.to_sym)
|
58
68
|
|
59
|
-
|
60
|
-
attributes =
|
69
|
+
attribute = attribute.to_s
|
70
|
+
attributes = Array(attribute)
|
71
|
+
attributes = %w[iso_long_name iso_short_name unofficial_names translated_names] if attribute == 'any_name'
|
61
72
|
|
62
73
|
[attributes, parse_value(val)]
|
63
74
|
end
|
64
75
|
|
76
|
+
# :reek:ManualDispatch
|
77
|
+
# :reek:FeatureEnvy
|
65
78
|
def parse_value(value)
|
66
79
|
value = value.gsub(SEARCH_TERM_FILTER_REGEX, '').freeze if value.respond_to?(:gsub)
|
67
80
|
strip_accents(value)
|
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
|
@@ -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
|
@@ -53,16 +57,19 @@ module ISO3166
|
|
53
57
|
end
|
54
58
|
|
55
59
|
# +true+ if this country is a member of the European Union.
|
60
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
56
61
|
def in_eu?
|
57
62
|
data['eu_member'].nil? ? false : data['eu_member']
|
58
63
|
end
|
59
64
|
|
60
65
|
# +true+ if this country is a member of the G7.
|
66
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
61
67
|
def in_g7?
|
62
68
|
data['g7_member'].nil? ? false : data['g7_member']
|
63
69
|
end
|
64
70
|
|
65
71
|
# +true+ if this country is a member of the G20.
|
72
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
66
73
|
def in_g20?
|
67
74
|
data['g20_member'].nil? ? false : data['g20_member']
|
68
75
|
end
|
@@ -73,21 +80,25 @@ module ISO3166
|
|
73
80
|
end
|
74
81
|
|
75
82
|
# +true+ if this country is a member of the European Economic Area.
|
83
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
76
84
|
def in_eea?
|
77
85
|
data['eea_member'].nil? ? false : data['eea_member']
|
78
86
|
end
|
79
87
|
|
80
88
|
# +true+ if this country is a member of the European Single Market.
|
89
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
81
90
|
def in_esm?
|
82
91
|
data['esm_member'].nil? ? in_eea? : data['esm_member']
|
83
92
|
end
|
84
93
|
|
85
94
|
# +true+ if this country is a member of the EU VAT Area.
|
95
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
86
96
|
def in_eu_vat?
|
87
97
|
data['euvat_member'].nil? ? in_eu? : data['euvat_member']
|
88
98
|
end
|
89
99
|
|
90
100
|
# +true+ if this country is a member of the United Nations.
|
101
|
+
# :reek:NilCheck :reek:DuplicateMethodCall
|
91
102
|
def in_un?
|
92
103
|
data['un_member'].nil? ? false : data['un_member']
|
93
104
|
end
|
@@ -108,8 +119,12 @@ module ISO3166
|
|
108
119
|
|
109
120
|
# @param locale [String] The locale to use for translations.
|
110
121
|
# @return [String] the name of this Country in the selected locale.
|
111
|
-
|
112
|
-
|
122
|
+
# :reek:FeatureEnvy
|
123
|
+
def translation(locale = :en)
|
124
|
+
locale = locale.to_sym if locale.is_a?(String)
|
125
|
+
locale = locale.downcase if locale.match?(/[A-Z]/)
|
126
|
+
|
127
|
+
data['translations'][locale]
|
113
128
|
end
|
114
129
|
|
115
130
|
# @return [String] the “common name” of this Country in English.
|
@@ -21,21 +21,11 @@ AQ:
|
|
21
21
|
southwest:
|
22
22
|
lat: -90
|
23
23
|
lng: -180
|
24
|
-
international_prefix: ''
|
25
|
-
ioc:
|
26
24
|
iso_long_name: Antarctica
|
27
25
|
iso_short_name: Antarctica
|
28
|
-
languages_official: []
|
29
|
-
languages_spoken: []
|
30
|
-
national_destination_code_lengths: []
|
31
|
-
national_number_lengths: []
|
32
|
-
national_prefix: ''
|
33
|
-
nationality: ''
|
34
26
|
number: '010'
|
35
27
|
postal_code: false
|
36
|
-
region: ''
|
37
28
|
start_of_week: monday
|
38
|
-
subregion: ''
|
39
29
|
un_locode: AQ
|
40
30
|
un_member: false
|
41
31
|
unofficial_names:
|
@@ -8,7 +8,6 @@ AX:
|
|
8
8
|
distance_unit: KM
|
9
9
|
eu_member: true
|
10
10
|
euvat_member: false
|
11
|
-
gec:
|
12
11
|
geo:
|
13
12
|
latitude: 60.1785247
|
14
13
|
longitude: 19.9156105
|
@@ -23,17 +22,12 @@ AX:
|
|
23
22
|
southwest:
|
24
23
|
lat: 59.6872001
|
25
24
|
lng: 19.2095998
|
26
|
-
international_prefix: ''
|
27
|
-
ioc:
|
28
25
|
iso_long_name: Åland
|
29
26
|
iso_short_name: Åland Islands
|
30
27
|
languages_official:
|
31
28
|
- sv
|
32
29
|
languages_spoken:
|
33
30
|
- sv
|
34
|
-
national_destination_code_lengths: []
|
35
|
-
national_number_lengths: []
|
36
|
-
national_prefix: ''
|
37
31
|
nationality: Swedish
|
38
32
|
number: '248'
|
39
33
|
postal_code: true
|
@@ -21,17 +21,12 @@ BL:
|
|
21
21
|
southwest:
|
22
22
|
lat: 17.8663
|
23
23
|
lng: -62.9559999
|
24
|
-
international_prefix: ''
|
25
|
-
ioc:
|
26
24
|
iso_long_name: The Collectivity of Saint-Barthélemy
|
27
25
|
iso_short_name: Saint Barthélemy
|
28
26
|
languages_official:
|
29
27
|
- fr
|
30
28
|
languages_spoken:
|
31
29
|
- fr
|
32
|
-
national_destination_code_lengths: []
|
33
|
-
national_number_lengths: []
|
34
|
-
national_prefix: ''
|
35
30
|
nationality: Saint Barthélemy Islander
|
36
31
|
number: '652'
|
37
32
|
postal_code: true
|
@@ -21,21 +21,11 @@ BV:
|
|
21
21
|
southwest:
|
22
22
|
lat: -54.4541004
|
23
23
|
lng: 3.2858826
|
24
|
-
international_prefix: ''
|
25
|
-
ioc:
|
26
24
|
iso_long_name: Bouvet Island
|
27
25
|
iso_short_name: Bouvet Island
|
28
|
-
languages_official: []
|
29
|
-
languages_spoken: []
|
30
|
-
national_destination_code_lengths: []
|
31
|
-
national_number_lengths: []
|
32
|
-
national_prefix: ''
|
33
|
-
nationality: ''
|
34
26
|
number: '074'
|
35
27
|
postal_code: false
|
36
|
-
region: ''
|
37
28
|
start_of_week: monday
|
38
|
-
subregion: ''
|
39
29
|
un_locode: BV
|
40
30
|
un_member: false
|
41
31
|
unofficial_names:
|