countries 4.2.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql-analysis.yml +70 -0
  3. data/.github/workflows/tests.yml +3 -7
  4. data/.rubocop.yml +40 -1
  5. data/.rubocop_todo.yml +8 -41
  6. data/CHANGELOG.md +22 -4
  7. data/Gemfile +5 -3
  8. data/LICENSE +3 -1
  9. data/README.markdown +34 -15
  10. data/Rakefile +15 -31
  11. data/bin/console +1 -0
  12. data/countries.gemspec +8 -6
  13. data/lib/countries/cache/countries.json +1 -1
  14. data/lib/countries/cache/locales/oc.json +1 -1
  15. data/lib/countries/cache/locales/ti.json +1 -1
  16. data/lib/countries/cache/locales/zu.json +1 -1
  17. data/lib/countries/configuration.rb +2 -0
  18. data/lib/countries/country/class_methods.rb +12 -97
  19. data/lib/countries/country/currency_methods.rb +2 -0
  20. data/lib/countries/country/emoji.rb +2 -3
  21. data/lib/countries/country/finder_methods.rb +81 -0
  22. data/lib/countries/country.rb +3 -40
  23. data/lib/countries/data/countries/KN.yaml +0 -1
  24. data/lib/countries/data/subdivisions/PT.yaml +13 -13
  25. data/lib/countries/data.rb +34 -37
  26. data/lib/countries/global.rb +2 -0
  27. data/lib/countries/iso3166.rb +3 -0
  28. data/lib/countries/kwarg_struct.rb +2 -0
  29. data/lib/countries/mongoid.rb +2 -0
  30. data/lib/countries/sources/cldr/downloader.rb +8 -8
  31. data/lib/countries/sources/cldr/subdivision.rb +3 -0
  32. data/lib/countries/sources/cldr/subdivision_updater.rb +23 -17
  33. data/lib/countries/sources/local/cached_loader.rb +3 -0
  34. data/lib/countries/sources/local/subdivision.rb +5 -2
  35. data/lib/countries/sources.rb +2 -0
  36. data/lib/countries/structure.rb +1 -1
  37. data/lib/countries/subdivision.rb +2 -0
  38. data/lib/countries/tasks/geocoding.rake +15 -6
  39. data/lib/countries/tasks/postal_codes.rake +5 -3
  40. data/lib/countries/timezones.rb +5 -2
  41. data/lib/countries/translations.rb +2 -0
  42. data/lib/countries/version.rb +3 -1
  43. data/lib/countries.rb +2 -0
  44. data/spec/00_global_spec.rb +2 -0
  45. data/spec/configuration_spec.rb +11 -5
  46. data/spec/country_spec.rb +71 -22
  47. data/spec/data_spec.rb +24 -18
  48. data/spec/mongoid_spec.rb +2 -2
  49. data/spec/perf_spec.rb +16 -16
  50. data/spec/spec_helper.rb +2 -0
  51. data/spec/subdivision_spec.rb +6 -4
  52. data/spec/thread_safety_spec.rb +4 -3
  53. data/spec/timezone_spec.rb +2 -0
  54. metadata +16 -14
  55. data/lib/countries/setup.rb +0 -18
@@ -1 +1 @@
1
- {"AW":"Aruba","AF":"Afganistan","AO":"Angòla","AI":"Anguilla","AX":"Åland Islands","AL":"Albania","AD":"Andòrra","AE":"Emirats Arabs Units","AR":"Argentina","AM":"Armenia","AS":"Samoa americana","AQ":"Antartica","TF":"Tèrras australas francesas","AG":"Antigua e Barbuda","AU":"Australia","AT":"Austria","AZ":"Azerbaitjan","BI":"Burundi","BE":"Belgica","BJ":"Benin","BQ":"Bonaire, Sant Eustaqui e Saba","BF":"Burkina Faso","BD":"Bangladèsh","BG":"Bulgaria","BH":"Barein","BS":"Bahamas","BA":"Bòsnia e Ercegovina","BL":"Sant Bertomieu","BY":"Bielorussia","BZ":"Belize","BM":"Bermudas","BO":"Bolivia","BR":"Brasil","BB":"Barbada","BN":"Brunei","BT":"Botan","BV":"Illa Bouvet","BW":"Botswana","CF":"Republica de Centrafrica","CA":"Canadà","CC":"Illas Cocos (Keeling)","CH":"Soïssa","CL":"Chile","CN":"China","CI":"Còsta d'Evòri","CM":"Cameron","CD":"Còngo, Republica Democratica de","CG":"Còngo","CK":"Illas Cook","CO":"Colombia","KM":"Comòras","CV":"Cap Verd","CR":"Còsta Rica","CU":"Cuba","CW":"Curaçao","CX":"Illa Cristmas","KY":"Illas Caiman","CY":"Chipre","CZ":"Chequia","DE":"Alemanha","DJ":"Jiboti","DM":"Dominica","DK":"Danemarc","DO":"Republica Dominicana","DZ":"Argeria","EC":"Eqüator","EG":"Egipte","ER":"Eritrèa","EH":"Sahara occidental","ES":"Espanha","EE":"Estònia","ET":"Etiopia","FI":"Finlàndia","FJ":"Fiji","FK":"Illas Falkand (Malvinas)","FR":"França","FO":"Illas Feròe","FM":"Micronesia, Estats Federats de","GA":"Gabon","GB":"Reialme Unit","GE":"Georgia","GG":"Guernsey","GH":"Gana","GI":"Gibartar","GN":"Guinèa","GP":"Guadalope","GM":"Gàmbia","GW":"Guinèa-Bissau","GQ":"Guinèa eqüatoriala","GR":"Grècia","GD":"Granada","GL":"Groenlàndia","GT":"Guatemala","GF":"Guaiana francesa","GU":"Guam","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"Honduras","HR":"Croàcia","HT":"Haití","HU":"Ongria","ID":"Indonesia","IM":"Illa de Man","IN":"Índia","IO":"Territòris britanics de l'ocean indian","IE":"Irlanda","IR":"Republica Dominicana","IQ":"Iraq","IS":"Islàndia","IL":"Israel","IT":"Itàlia","JM":"Jamaica","JE":"Jersei","JO":"Jordania","JP":"Japon","KZ":"Cazacstan","KE":"Kenya","KG":"Kirguizstan","KH":"Cambòtja","KI":"Kiribati","KN":"St. Kitts e Nevis","KR":"Corèa del Sud","KW":"Koweit","LA":"Republica democratica populara del Laos","LB":"Liban","LR":"Libèria","LY":"Libia","LC":"St. Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LS":"Lesoto","LT":"Lituània","LU":"Luxemborg","LV":"Letònia","MO":"Macau","MF":"Sant Martin (Part francesa)","MA":"Marròc","MC":"Mónegue","MD":"Moldàvia","MG":"Madagascar","MV":"Maldivas","MX":"Mexic","MH":"Illas Marshall","MK":"Macedònia del Nòrd","ML":"Mali","MT":"Malta","MM":"Birmania","ME":"Montenegro","MN":"Mongolia","MP":"Illas Marianas del Nòrd","MZ":"Moçambic","MR":"Mauritània","MS":"Montserrat","MQ":"Martinica","MU":"Maurici","MW":"Malawi","MY":"Malàisia","YT":"Maiòta","NA":"Namibia","NC":"Nòva Caledònia","NE":"Nigèr","NF":"Illa Norfolk","NG":"Nigèria","NI":"Nicaragua","NU":"Niue","NL":"Païses Basses","NO":"Norvègia","NP":"Nepal","NR":"Nauru","NZ":"Novèla Zelanda","OM":"Oman","PK":"Paquistan","PA":"Panamà","PN":"Illa de Pitcairn","PE":"Peró","PH":"Filipinas","PW":"Belau","PG":"Papoa Nòva Guinèa","PL":"Polonha","PR":"Puerto Rico","KP":"Corèa del Nòrd","PT":"Portugal","PY":"Paraguai","PS":"Palestina, estat de","PF":"Polinesia francesa","QA":"Qatar","RE":"Réunion","RO":"Romania","RU":"Federacion russa","RW":"Rwanda","SA":"Arabia saudita","SD":"Sodan","SN":"Senegal","SG":"Singapor","GS":"Illas Georgia del Sud e Sandwich del Sud","SH":"Santa Elena, Ascension, e Tristan da Cunha","SJ":"Svalbard e Jan Mayen","SB":"Illas Salomon","SL":"Sierra Leone","SV":"El Salvador","SM":"Sant Marin","SO":"Somalia","PM":"Sant Pèire e Miquelon","RS":"Serbia","SS":"Sodan del Sud","ST":"Sao Tomé e Principe","SR":"Surinam","SK":"Eslovaquia","SI":"Eslovènia","SE":"Suècia","SZ":"Eswatini","SX":"Sant Martin (Part neerlandesa)","SC":"Seichèlas","SY":"Republica Dominicana","TC":"Illas Turcas e Caïcas","TD":"Chad","TG":"Tògo","TH":"Tailàndia","TJ":"Tatgiquistan","TK":"Tokelau","TM":"Turcmenistan","TL":"Timor-Leste","TO":"Tònga","TT":"Trinitat e Tobago","TN":"Tunisia","TR":"Turquia","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzania","UG":"Oganda","UA":"Ucraïna","UM":"Islas perifericas Menores dels Estats Units","UY":"Uruguai","US":"Estats Units","UZ":"Ozbequistan","VA":"Santa Ses (Estat de la Ciutat de Vatican)","VC":"Sant Vincenç e las Grenadinas","VE":"Veneçuèla","VG":"Illas Verges, britanicas","VI":"illas Verges, EU","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis e Futuna","WS":"Samoa","YE":"Iemèn","ZA":"Sudafrica","ZM":"Zambia","ZW":"Zimbabwe"}
1
+ {"AW":"Aruba","AF":"Afganistan","AO":"Angòla","AI":"Anguilla","AX":"Åland Islands","AL":"Albania","AD":"Andòrra","AE":"Emirats Arabs Units","AR":"Argentina","AM":"Armenia","AS":"Samoa americana","AQ":"Antartica","TF":"Tèrras australas francesas","AG":"Antigua e Barbuda","AU":"Australia","AT":"Àustria","AZ":"Azerbaitjan","BI":"Burundi","BE":"Belgica","BJ":"Benin","BQ":"Bonaire, Sant Eustaqui e Saba","BF":"Burkina Faso","BD":"Bangladèsh","BG":"Bulgaria","BH":"Barein","BS":"Bahamas","BA":"Bòsnia e Ercegovina","BL":"Sant Bertomieu","BY":"Bielorussia","BZ":"Belize","BM":"Bermudas","BO":"Bolivia","BR":"Brasil","BB":"Barbada","BN":"Brunei","BT":"Botan","BV":"Illa Bouvet","BW":"Botswana","CF":"Republica de Centrafrica","CA":"Canadà","CC":"Illas Cocos (Keeling)","CH":"Soïssa","CL":"Chile","CN":"China","CI":"Còsta d'Evòri","CM":"Cameron","CD":"Còngo, Republica Democratica de","CG":"Còngo","CK":"Illas Cook","CO":"Colombia","KM":"Comòras","CV":"Cap Verd","CR":"Còsta Rica","CU":"Cuba","CW":"Curaçao","CX":"Illa Cristmas","KY":"Illas Caiman","CY":"Chipre","CZ":"Chequia","DE":"Alemanha","DJ":"Jiboti","DM":"Dominica","DK":"Danemarc","DO":"Republica Dominicana","DZ":"Argeria","EC":"Eqüator","EG":"Egipte","ER":"Eritrèa","EH":"Sahara occidental","ES":"Espanha","EE":"Estònia","ET":"Etiopia","FI":"Finlàndia","FJ":"Fiji","FK":"Illas Falkand (Malvinas)","FR":"França","FO":"Illas Feròe","FM":"Micronesia, Estats Federats de","GA":"Gabon","GB":"Reialme Unit","GE":"Georgia","GG":"Guernsey","GH":"Gana","GI":"Gibartar","GN":"Guinèa","GP":"Guadalope","GM":"Gàmbia","GW":"Guinèa-Bissau","GQ":"Guinèa eqüatoriala","GR":"Grècia","GD":"Granada","GL":"Groenlàndia","GT":"Guatemala","GF":"Guaiana francesa","GU":"Guam","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"Honduras","HR":"Croàcia","HT":"Haití","HU":"Ongria","ID":"Indonesia","IM":"Illa de Man","IN":"Índia","IO":"Territòris britanics de l'ocean indian","IE":"Irlanda","IR":"Republica Dominicana","IQ":"Iraq","IS":"Islàndia","IL":"Israel","IT":"Itàlia","JM":"Jamaica","JE":"Jersei","JO":"Jordania","JP":"Japon","KZ":"Cazacstan","KE":"Kenya","KG":"Kirguizstan","KH":"Cambòtja","KI":"Kiribati","KN":"St. Kitts e Nevis","KR":"Corèa del Sud","KW":"Koweit","LA":"Republica democratica populara del Laos","LB":"Liban","LR":"Libèria","LY":"Libia","LC":"St. Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LS":"Lesoto","LT":"Lituània","LU":"Luxemborg","LV":"Letònia","MO":"Macau","MF":"Sant Martin (Part francesa)","MA":"Marròc","MC":"Mónegue","MD":"Moldàvia","MG":"Madagascar","MV":"Maldivas","MX":"Mexic","MH":"Illas Marshall","MK":"Macedònia del Nòrd","ML":"Mali","MT":"Malta","MM":"Birmania","ME":"Montenegro","MN":"Mongolia","MP":"Illas Marianas del Nòrd","MZ":"Moçambic","MR":"Mauritània","MS":"Montserrat","MQ":"Martinica","MU":"Maurici","MW":"Malawi","MY":"Malàisia","YT":"Maiòta","NA":"Namibia","NC":"Nòva Caledònia","NE":"Nigèr","NF":"Illa Norfolk","NG":"Nigèria","NI":"Nicaragua","NU":"Niue","NL":"Païses Basses","NO":"Norvègia","NP":"Nepal","NR":"Nauru","NZ":"Novèla Zelanda","OM":"Oman","PK":"Paquistan","PA":"Panamà","PN":"Illa de Pitcairn","PE":"Peró","PH":"Filipinas","PW":"Belau","PG":"Papoa Nòva Guinèa","PL":"Polonha","PR":"Puerto Rico","KP":"Corèa del Nòrd","PT":"Portugal","PY":"Paraguai","PS":"Palestina, estat de","PF":"Polinesia francesa","QA":"Qatar","RE":"Réunion","RO":"Romania","RU":"Federacion russa","RW":"Rwanda","SA":"Arabia saudita","SD":"Sodan","SN":"Senegal","SG":"Singapor","GS":"Illas Georgia del Sud e Sandwich del Sud","SH":"Santa Elena, Ascension, e Tristan da Cunha","SJ":"Svalbard e Jan Mayen","SB":"Illas Salomon","SL":"Sierra Leone","SV":"El Salvador","SM":"Sant Marin","SO":"Somalia","PM":"Sant Pèire e Miquelon","RS":"Serbia","SS":"Sodan del Sud","ST":"Sao Tomé e Principe","SR":"Surinam","SK":"Eslovaquia","SI":"Eslovènia","SE":"Suècia","SZ":"Eswatini","SX":"Sant Martin (Part neerlandesa)","SC":"Seichèlas","SY":"Republica Dominicana","TC":"Illas Turcas e Caïcas","TD":"Chad","TG":"Tògo","TH":"Tailàndia","TJ":"Tatgiquistan","TK":"Tokelau","TM":"Turcmenistan","TL":"Timor-Leste","TO":"Tònga","TT":"Trinitat e Tobago","TN":"Tunisia","TR":"Turquia","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzania","UG":"Oganda","UA":"Ucraïna","UM":"Islas perifericas Menores dels Estats Units","UY":"Uruguai","US":"Estats Units","UZ":"Ozbequistan","VA":"Santa Ses (Estat de la Ciutat de Vatican)","VC":"Sant Vincenç e las Grenadinas","VE":"Veneçuèla","VG":"Illas Verges, britanicas","VI":"illas Verges, EU","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis e Futuna","WS":"Samoa","YE":"Iemèn","ZA":"Sudafrica","ZM":"Zambia","ZW":"Zimbabwe"}
@@ -1 +1 @@
1
- {"AW":"ኣሩባ","AF":"ኣፍጋኒስታን","AO":"ኣንጎላ","AI":"Anguilla","AX":"Åland Islands","AL":"አልባኒያ","AD":"አንዶራ","AE":"የተባበሩት አረብ ኤምሬትስ","AR":"ኣርጀንቲና","AM":"ኣርሜንያ","AS":"American Samoa","AQ":"Antarctica","TF":"የፈረንሳይ ደቡባዊ ግዛቶች","AG":"Antigua and Barbuda","AU":"ኣውስትራልያ","AT":"ኦስትሪያ","AZ":"ኣዘርባጃን","BI":"Burundi","BE":"ቤልጄም","BJ":"ቤኒን","BQ":"Bonaire, Sint Eustatius and Saba","BF":"ቡርኪና ፋሶ","BD":"Bangladesh","BG":"ቡልጌሪያ","BH":"ባህሬን","BS":"Bahamas","BA":"ቦስኒያ እና ሄርዞጎቪኒያ","BL":"Saint Barthélemy","BY":"ቤላሩስ","BZ":"ቤሊዘ","BM":"ቤርሙዳ","BO":"ቦሊቭያ","BR":"ብራዚል","BB":"ባርቤዶስ","BN":"Brunei Darussalam","BT":"ቡህታን","BV":"Bouvet Island","BW":"ቦትስዋና","CF":"ሪፓብሊክ ማእከላይ ኣፍሪቃ","CA":"ካናዳ","CC":"Cocos (Keeling) Islands","CH":"ስዊዘርላንድ","CL":"ቺሊ","CN":"ቻይና","CI":"Côte d'Ivoire","CM":"ካሜሩን","CD":"ደሞክራስያዊት ሪፓብሊክ ኮንጎ","CG":"ኮንጎ","CK":"Cook Islands","CO":"ኮሎምብያ","KM":"ኮሞሮስ","CV":"Cabo Verde","CR":"ኮስታ ሪካ","CU":"ኩባ","CW":"Curaçao","CX":"Christmas Island","KY":"Cayman Islands","CY":"ሳይፕረስ","CZ":"Czechia","DE":"ጀርመን","DJ":"ጂቡቲ","DM":"ዶሚኒካ","DK":"ዴንማርክ","DO":"ዶሚኒካዊት ሪፓብሊክ","DZ":"አልጄሪያ","EC":"ኤኳዶር","EG":"ግብጺ","ER":"ኤርትራ","EH":"ምዕራባዊ ሳህራ","ES":"ስጳኛ","EE":"ኤስቶኒያ","ET":"ኢትዮጵያ","FI":"ፊንላንድ","FJ":"ፊጂ","FK":"Falkland Islands (Malvinas)","FR":"ፈረንሳ","FO":"Faroe Islands","FM":"Micronesia, Federated States of","GA":"Gabon","GB":"ብሪጣንያ","GE":"ጆርጂያ","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GN":"ጊኒ","GP":"Guadeloupe","GM":"ጋምቢያ","GW":"ቢሳዎ","GQ":"ኢኳቶሪያል ጊኒ","GR":"ግሪኽ","GD":"Grenada","GL":"Greenland","GT":"ጓቲማላ","GF":"የፈረንሳይ ጉዊአና","GU":"Guam","GY":"ጉያና","HK":"ሆንግ ኮንግ","HM":"Heard Island and McDonald Islands","HN":"ሆንዱራስ","HR":"ክሮኤሽያ","HT":"ሀይቲ","HU":"ሀንጋሪ","ID":"ኢንዶኔዢያ","IM":"Isle of Man","IN":"ህንዲ","IO":"British Indian Ocean Territory","IE":"አየርላንድ","IR":"Iran, Islamic Republic of","IQ":"ዒራቅ","IS":"አይስላንድ","IL":"እስራኤል","IT":"ኢጣልያ","JM":"ጃማይካ","JE":"Jersey","JO":"ጆርዳን","JP":"ጃፓን","KZ":"Kazakhstan","KE":"ኬንያ","KG":"Kyrgyzstan","KH":"ካምቦዲያ","KI":"Kiribati","KN":"Saint Kitts and Nevis","KR":"South Korea","KW":"ክዌት","LA":"Lao People's Democratic Republic","LB":"ሊባኖስ","LR":"Liberia","LY":"ሊብያ","LC":"Saint Lucia","LI":"Liechtenstein","LK":"ስሪ ላንካ","LS":"Lesotho","LT":"ሊቱዌኒያ","LU":"Luxembourg","LV":"ላትቪያ","MO":"Macao","MF":"Saint Martin (French part)","MA":"ሞሮኮ","MC":"Monaco","MD":"Moldova","MG":"ማዳጋስካር","MV":"Maldives","MX":"ሜክሲኮ","MH":"Marshall Islands","MK":"North Macedonia","ML":"ማሊ","MT":"ማልታ","MM":"Myanmar","ME":"Montenegro","MN":"ሞንጎልያ","MP":"Northern Mariana Islands","MZ":"ሞዛምቢክ","MR":"ሞሪቴኒያ","MS":"Montserrat","MQ":"Martinique","MU":"ማሩሸስ","MW":"ማላዊ","MY":"ማሌዢያ","YT":"Mayotte","NA":"ናሚቢያ","NC":"ኒው ካሌዶኒያ","NE":"ናይጀር","NF":"Norfolk Island","NG":"ናይጄሪያ","NI":"ኒካራጓ","NU":"Niue","NL":"ኔዘርላንድ","NO":"ኖርወይ","NP":"ኔፓል","NR":"Nauru","NZ":"ኒው ዚላንድ","OM":"Oman","PK":"ፓኪስታን","PA":"ፓናማ","PN":"Pitcairn","PE":"ፔሩ","PH":"Philippines","PW":"Palau","PG":"ፓፑዋ ኒው ጊኒ","PL":"ፖላንድ","PR":"ፖርታ ሪኮ","KP":"North Korea","PT":"ፖርቱጋል","PY":"ፓራጓይ","PS":"Palestine, State of","PF":"የፈረንሳይ ፖሊኔዢያ","QA":"Qatar","RE":"Réunion","RO":"ሮሜኒያ","RU":"Russian Federation","RW":"ሩዋንዳ","SA":"ሰዑዲ ዓረብ","SD":"ሱዳን","SN":"ሴኔጋል","SG":"ሲንጋፖር","GS":"South Georgia and the South Sandwich Islands","SH":"Saint Helena, Ascension and Tristan da Cunha","SJ":"Svalbard and Jan Mayen","SB":"Solomon Islands","SL":"Sierra Leone","SV":"ኤል ሳልቫዶር","SM":"San Marino","SO":"ሶማልያ","PM":"Saint Pierre and Miquelon","RS":"Serbia","SS":"ደቡብ ሱዳን","ST":"Sao Tome and Principe","SR":"ሱሪናም","SK":"ስሎቫኪያ","SI":"ስሎቬኒያ","SE":"ስወደን","SZ":"Eswatini","SX":"Sint Maarten (Dutch part)","SC":"Seychelles","SY":"Syrian Arab Republic","TC":"Turks and Caicos Islands","TD":"ቻድ","TG":"ቶጎ","TH":"ታይላንድ","TJ":"ታጃኪስታን","TK":"Tokelau","TM":"Turkmenistan","TL":"ምስራቅ ቲሞር","TO":"Tonga","TT":"ትሪኒዳድን ቶባጎን","TN":"ቱኒዝያ","TR":"ቱርኪ","TV":"Tuvalu","TW":"ታይዋን","TZ":"ታንዛንያ","UG":"ዩጋንዳ","UA":"ዩክረይን","UM":"United States Minor Outlying Islands","UY":"ኡራጓይ","US":"ኣመሪካ","UZ":"ኡዝበኪስታን","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"ቬኔዝዌላ","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"ቬትናም","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"የመን","ZA":"ደቡብ ኣፍሪቃ","ZM":"ዛምቢያ","ZW":"ዚምባብዌ"}
1
+ {"AW":"ኣሩባ","AF":"ኣፍጋኒስታን","AO":"ኣንጎላ","AI":"Anguilla","AX":"Åland Islands","AL":"አልባኒያ","AD":"አንዶራ","AE":"የተባበሩት አረብ ኤምሬትስ","AR":"ኣርጀንቲና","AM":"ኣርሜንያ","AS":"American Samoa","AQ":"ኣንታርክቲካ","TF":"የፈረንሳይ ደቡባዊ ግዛቶች","AG":"Antigua and Barbuda","AU":"ኣውስትራልያ","AT":"ኦስትሪያ","AZ":"ኣዘርባጃን","BI":"ቡሩንዲ","BE":"ቤልጄም","BJ":"ቤኒን","BQ":"Bonaire, Sint Eustatius and Saba","BF":"ቡርኪና ፋሶ","BD":"ባንግላዴሽ","BG":"ቡልጋሪያ","BH":"ባህሬን","BS":"ባሃማስ","BA":"ቦስኒያ እና ሄርዞጎቪኒያ","BL":"Saint Barthélemy","BY":"ቤላሩስ","BZ":"ቤሊዝ","BM":"ቤርሙዳ","BO":"ቦሊቭያ","BR":"ብራዚል","BB":"ባርቤዶስ","BN":"Brunei Darussalam","BT":"ቡህታን","BV":"Bouvet Island","BW":"ቦትስዋና","CF":"ሪፓብሊክ ማእከላይ ኣፍሪቃ","CA":"ካናዳ","CC":"Cocos (Keeling) Islands","CH":"ስዊዘርላንድ","CL":"ቺሊ","CN":"ቻይና","CI":"Côte d'Ivoire","CM":"ካሜሩን","CD":"ደሞክራስያዊት ሪፓብሊክ ኮንጎ","CG":"ኮንጎ","CK":"Cook Islands","CO":"ኮሎምብያ","KM":"ኮሞሮስ","CV":"Cabo Verde","CR":"ኮስታ ሪካ","CU":"ኩባ","CW":"Curaçao","CX":"Christmas Island","KY":"Cayman Islands","CY":"ሳይፕረስ","CZ":"Czechia","DE":"ጀርመን","DJ":"ጂቡቲ","DM":"ዶሚኒካ","DK":"ዴንማርክ","DO":"ዶሚኒካዊት ሪፓብሊክ","DZ":"አልጄሪያ","EC":"ኤኳዶር","EG":"ግብጺ","ER":"ኤርትራ","EH":"ምዕራባዊ ሳህራ","ES":"ስጳኛ","EE":"ኤስቶኒያ","ET":"ኢትዮጵያ","FI":"ፊንላንድ","FJ":"ፊጂ","FK":"Falkland Islands (Malvinas)","FR":"ፈረንሳ","FO":"Faroe Islands","FM":"Micronesia, Federated States of","GA":"Gabon","GB":"ብሪጣንያ","GE":"ጆርጂያ","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GN":"ጊኒ","GP":"Guadeloupe","GM":"ጋምቢያ","GW":"ቢሳዎ","GQ":"ኢኳቶሪያል ጊኒ","GR":"ግሪኽ","GD":"Grenada","GL":"Greenland","GT":"ጓቲማላ","GF":"የፈረንሳይ ጉዊአና","GU":"Guam","GY":"ጉያና","HK":"ሆንግ ኮንግ","HM":"Heard Island and McDonald Islands","HN":"ሆንዱራስ","HR":"ክሮኤሽያ","HT":"ሀይቲ","HU":"ሀንጋሪ","ID":"ኢንዶኔዢያ","IM":"Isle of Man","IN":"ህንዲ","IO":"British Indian Ocean Territory","IE":"አየርላንድ","IR":"Iran, Islamic Republic of","IQ":"ዒራቅ","IS":"አይስላንድ","IL":"እስራኤል","IT":"ኢጣልያ","JM":"ጃማይካ","JE":"Jersey","JO":"ጆርዳን","JP":"ጃፓን","KZ":"Kazakhstan","KE":"ኬንያ","KG":"Kyrgyzstan","KH":"ካምቦዲያ","KI":"Kiribati","KN":"Saint Kitts and Nevis","KR":"South Korea","KW":"ክዌት","LA":"Lao People's Democratic Republic","LB":"ሊባኖስ","LR":"Liberia","LY":"ሊብያ","LC":"Saint Lucia","LI":"Liechtenstein","LK":"ስሪ ላንካ","LS":"Lesotho","LT":"ሊቱዌኒያ","LU":"Luxembourg","LV":"ላትቪያ","MO":"Macao","MF":"Saint Martin (French part)","MA":"ሞሮኮ","MC":"Monaco","MD":"Moldova","MG":"ማዳጋስካር","MV":"Maldives","MX":"ሜክሲኮ","MH":"Marshall Islands","MK":"North Macedonia","ML":"ማሊ","MT":"ማልታ","MM":"Myanmar","ME":"Montenegro","MN":"ሞንጎልያ","MP":"Northern Mariana Islands","MZ":"ሞዛምቢክ","MR":"ሞሪቴኒያ","MS":"Montserrat","MQ":"Martinique","MU":"ማሩሸስ","MW":"ማላዊ","MY":"ማሌዢያ","YT":"Mayotte","NA":"ናሚቢያ","NC":"ኒው ካሌዶኒያ","NE":"ናይጀር","NF":"Norfolk Island","NG":"ናይጄሪያ","NI":"ኒካራጓ","NU":"Niue","NL":"ኔዘርላንድ","NO":"ኖርወይ","NP":"ኔፓል","NR":"Nauru","NZ":"ኒው ዚላንድ","OM":"Oman","PK":"ፓኪስታን","PA":"ፓናማ","PN":"Pitcairn","PE":"ፔሩ","PH":"Philippines","PW":"Palau","PG":"ፓፑዋ ኒው ጊኒ","PL":"ፖላንድ","PR":"ፖርታ ሪኮ","KP":"North Korea","PT":"ፖርቱጋል","PY":"ፓራጓይ","PS":"Palestine, State of","PF":"የፈረንሳይ ፖሊኔዢያ","QA":"Qatar","RE":"Réunion","RO":"ሮሜኒያ","RU":"Russian Federation","RW":"ሩዋንዳ","SA":"ሰዑዲ ዓረብ","SD":"ሱዳን","SN":"ሴኔጋል","SG":"ሲንጋፖር","GS":"South Georgia and the South Sandwich Islands","SH":"Saint Helena, Ascension and Tristan da Cunha","SJ":"Svalbard and Jan Mayen","SB":"Solomon Islands","SL":"Sierra Leone","SV":"ኤል ሳልቫዶር","SM":"San Marino","SO":"ሶማልያ","PM":"Saint Pierre and Miquelon","RS":"Serbia","SS":"ደቡብ ሱዳን","ST":"Sao Tome and Principe","SR":"ሱሪናም","SK":"ስሎቫኪያ","SI":"ስሎቬኒያ","SE":"ስወደን","SZ":"Eswatini","SX":"Sint Maarten (Dutch part)","SC":"Seychelles","SY":"Syrian Arab Republic","TC":"Turks and Caicos Islands","TD":"ቻድ","TG":"ቶጎ","TH":"ታይላንድ","TJ":"ታጃኪስታን","TK":"Tokelau","TM":"Turkmenistan","TL":"ምስራቅ ቲሞር","TO":"Tonga","TT":"ትሪኒዳድን ቶባጎን","TN":"ቱኒዝያ","TR":"ቱርኪ","TV":"Tuvalu","TW":"ታይዋን","TZ":"ታንዛንያ","UG":"ዩጋንዳ","UA":"ዩክረይን","UM":"United States Minor Outlying Islands","UY":"ኡራጓይ","US":"ኣመሪካ","UZ":"ኡዝበኪስታን","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"ቬኔዝዌላ","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"ቬትናም","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"የመን","ZA":"ደቡብ ኣፍሪቃ","ZM":"ዛምቢያ","ZW":"ዚምባብዌ"}
@@ -1 +1 @@
1
- {"AW":"Aruba","AF":"I-Afganistani","AO":"I-Angola","AI":"Anguilla","AX":"Åland Islands","AL":"I-Albaniya","AD":"I-Andora","AE":"United Arab Emirates","AR":"I-Argentina","AM":"Armenia","AS":"American Samoa","AQ":"Antarctica","TF":"French Southern Territories","AG":"Antigua no Barbuda","AU":"I-Australiya","AT":"I-Austriyiya","AZ":"I-Azerbayijani","BI":"IBurundi","BE":"Isi-Bhelijiyamu","BJ":"IBenini","BQ":"Bonaire, Sint Eustatius and Saba","BF":"IBukhina Faso","BD":"Isi-Bhangladeshi","BG":"I-Buligariya","BH":"Bahrain","BS":"Bahamas","BA":"IBhosniya neHerzegovina","BL":"Saint Barthélemy","BY":"I Bhelarusi","BZ":"Belize","BM":"Bermuda","BO":"I Boliviya","BR":"I Brazili","BB":"I-Barbados","BN":"Brunei Darussalam","BT":"Bhutan","BV":"Bouvet Island","BW":"IButswana","CF":"Central African Republic","CA":"I Khanada","CC":"Cocos (Keeling) Islands","CH":"I-Switzerland","CL":"I-Chile","CN":"Isi-Shayina","CI":"Côte d'Ivoire","CM":"IKamerooni","CD":"Congo, The Democratic Republic of the","CG":"Congo","CK":"Cook Islands","CO":"Colombia","KM":"IsiKhomorosi","CV":"Cabo Verde","CR":"Costa Rica","CU":"Cuba","CW":"Curaçao","CX":"Christmas Island","KY":"Cayman Islands","CY":"Cyprus","CZ":"Czechia","DE":"Isi-Jalimani","DJ":"IJibuthi","DM":"Dominica","DK":"Isi-Denimaki","DO":"Ulawulo lokuziphatha kwe Dominikhani","DZ":"IAljiriya","EC":"Ecuador","EG":"IGibhithe","ER":"I-Eritrea","EH":"Western Sahara","ES":"Isi-Spayini","EE":"I-Estoniya","ET":"I-Ithiopia","FI":"I-Finilandi","FJ":"IFiji","FK":"Falkland Islands (Malvinas)","FR":"Isi Frentshi","FO":"Faroe Islands","FM":"Micronesia, Federated States of","GA":"IGaboni","GB":"United Kingdom","GE":"Georgia","GG":"Guernsey","GH":"IGana","GI":"Gibraltar","GN":"IGini","GP":"Guadeloupe","GM":"Gambia","GW":"IGini Bisawu","GQ":"IGini Enkabazwe","GR":"I-Grisi","GD":"I-Grenada","GL":"Greenland","GT":"I-Guwathemala","GF":"French Guiana","GU":"Guam","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"I-Hondurasi","HR":"I-Crowathiya","HT":"Haiti","HU":"I-Hungariya","ID":"I-Indoneshiya","IM":"Isle of Man","IN":"India","IO":"British Indian Ocean Territory","IE":"I-Irelandi","IR":"Iran, Islamic Republic of","IQ":"I-Iraki","IS":"I-Icelandi","IL":"I-Sirayeli","IT":"I-Ithali","JM":"Jamaica","JE":"Jersey","JO":"Jordan","JP":"I-Japhani","KZ":"Kazakhstan","KE":"Kenya","KG":"Kyrgyzstan","KH":"Cambodia","KI":"Kiribati","KN":"St. Kitts no Nevis","KR":"South Korea","KW":"Kuwait","LA":"Lao People's Democratic Republic","LB":"Lebanon","LR":"ILiberia","LY":"ILibiya","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LS":"Lesotho","LT":"I-Lithuwaniya","LU":"I-Luxembourg","LV":"I-Latviya","MO":"Macao","MF":"Saint Martin (French part)","MA":"Morocco","MC":"Monaco","MD":"Moldova","MG":"Madagascar","MV":"Maldives","MX":"I-Mexico","MH":"Marshall Islands","MK":"North Macedonia","ML":"IMali","MT":"I-Malta","MM":"Myanmar","ME":"Montenegro","MN":"Mongolia","MP":"Northern Mariana Islands","MZ":"IMozambiki","MR":"IMoritaniya","MS":"Montserrat","MQ":"Martinique","MU":"IMorishisi","MW":"IMalawi","MY":"Malaysia","YT":"IMayotte","NA":"INamibhiya","NC":"New Caledonia","NE":"INayighe","NF":"Norfolk Island","NG":"INigeria","NI":"Nicaragua","NU":"Niue","NL":"I-Netherlands","NO":"I-Noweyi","NP":"Nepal","NR":"Nauru","NZ":"I-New Zealand","OM":"Oman","PK":"Pakistan","PA":"I-Panama","PN":"Pitcairn","PE":"I-Peru","PH":"Philippines","PW":"Palau","PG":"Papua New Guinea","PL":"I-Polandi","PR":"Puerto Rico","KP":"North Korea","PT":"I-Phothugali","PY":"I-Paraguwayi","PS":"Palestine, State of","PF":"French Polynesia","QA":"Qatar","RE":"Réunion","RO":"I-Romaniya","RU":"Russian Federation","RW":"IRuwanda","SA":"Saudi Arabia","SD":"ISudan","SN":"ISenegal","SG":"Singapore","GS":"South Georgia and the South Sandwich Islands","SH":"Saint Helena, Ascension and Tristan da Cunha","SJ":"Svalbard and Jan Mayen","SB":"Solomon Islands","SL":"ISiera Liyoni","SV":"I-El Salvador","SM":"San Marino","SO":"ISomalia","PM":"Saint Pierre and Miquelon","RS":"Serbia","SS":"ISudan yaseNingizimu","ST":"ISawu Tome noPhrinitshipeyi","SR":"Suriname","SK":"Isi-Slovaki","SI":"Isi-Sloveniya","SE":"Isi-Swideni","SZ":"Eswatini","SX":"Sint Maarten (Dutch part)","SC":"Seychelles","SY":"Syrian Arab Republic","TC":"Turks and Caicos Islands","TD":"ITshedi","TG":"ITogo","TH":"I-Thayilandi","TJ":"Tajikistan","TK":"Tokelau","TM":"Turkmenistan","TL":"Timor-Leste","TO":"Tonga","TT":"I-Trinidad ne Tobago","TN":"ITunisia","TR":"I-Turkey","TV":"Tuvalu","TW":"I-Tayiwani","TZ":"ITanzania","UG":"Uganda","UA":"I-Ukraine","UM":"United States Minor Outlying Islands","UY":"I-Uruguwayi","US":"United States","UZ":"Uzbekistan","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"I-Venezuwela","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"IYemen","ZA":"IRiphabliki yaseNingizimu Afrika","ZM":"IZambiya","ZW":"IZimbabwe"}
1
+ {"AW":"Aruba","AF":"I-Afganistani","AO":"I-Angola","AI":"Anguilla","AX":"Åland Islands","AL":"I-Albaniya","AD":"I-Andora","AE":"United Arab Emirates","AR":"I-Argentina","AM":"Armenia","AS":"American Samoa","AQ":"Antarctica","TF":"French Southern Territories","AG":"Antigua no Barbuda","AU":"I-Ostreliya","AT":"I-Ostriya","AZ":"I-Azerbayijani","BI":"IBurundi","BE":"Isi-Bhelijiyamu","BJ":"IBenini","BQ":"Bonaire, Sint Eustatius and Saba","BF":"IBukhina Faso","BD":"Isi-Bhangladeshi","BG":"IBulgariya","BH":"Bahrain","BS":"Bahamas","BA":"IBhosniya neHerzegovina","BL":"Saint Barthélemy","BY":"IBelarusi","BZ":"Belize","BM":"Bermuda","BO":"I Boliviya","BR":"IBrazili","BB":"I-Barbados","BN":"Brunei Darussalam","BT":"Bhutan","BV":"Bouvet Island","BW":"IButswana","CF":"Central African Republic","CA":"I Khanada","CC":"Cocos (Keeling) Islands","CH":"I-Switzerland","CL":"I-Chile","CN":"Isi-Shayina","CI":"Côte d'Ivoire","CM":"IKamerooni","CD":"Congo, The Democratic Republic of the","CG":"Congo","CK":"Cook Islands","CO":"IKolombiya","KM":"IsiKhomorosi","CV":"Cabo Verde","CR":"Costa Rica","CU":"Cuba","CW":"Curaçao","CX":"Christmas Island","KY":"Cayman Islands","CY":"Cyprus","CZ":"Czechia","DE":"IJalimani","DJ":"IJibuthi","DM":"Dominica","DK":"IDenimaki","DO":"Ulawulo lokuziphatha kwe Dominikhani","DZ":"IAljiriya","EC":"Ecuador","EG":"IGibhithe","ER":"I-Eritrea","EH":"Western Sahara","ES":"ISpeyini","EE":"I-Estoniya","ET":"I-Ithiopia","FI":"IFinlandi","FJ":"IFiji","FK":"Falkland Islands (Malvinas)","FR":"IFulansi","FO":"Faroe Islands","FM":"Micronesia, Federated States of","GA":"IGaboni","GB":"Umbuso Ohlangeneyo","GE":"Georgia","GG":"Guernsey","GH":"IGana","GI":"Gibraltar","GN":"IGini","GP":"Guadeloupe","GM":"Gambia","GW":"IGini Bisawu","GQ":"IGini Enkabazwe","GR":"IGreki","GD":"I-Grenada","GL":"Greenland","GT":"I-Guwathemala","GF":"French Guiana","GU":"Guam","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"I-Hondurasi","HR":"IKrowati","HT":"Haiti","HU":"I-Hungariya","ID":"I-Indonesia","IM":"Isle of Man","IN":"India","IO":"British Indian Ocean Territory","IE":"I-Ayilendi","IR":"Iran, Islamic Republic of","IQ":"I-Iraki","IS":"I-Ayisilandi","IL":"Isreyili","IT":"ITaliya","JM":"Jamaica","JE":"Jersey","JO":"Jordan","JP":"IJaphani","KZ":"Kazakhstan","KE":"IKenya","KG":"Kyrgyzstan","KH":"Cambodia","KI":"Kiribati","KN":"Saint Kitts and Nevis","KR":"South Korea","KW":"Kuwait","LA":"Lao People's Democratic Republic","LB":"Lebanon","LR":"ILiberia","LY":"ILibiya","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LS":"OSotho","LT":"ILithuwaniya","LU":"I-Luxembourg","LV":"ILatviya","MO":"Macao","MF":"Saint Martin (French part)","MA":"IMorokho","MC":"Monaco","MD":"Moldova","MG":"IMadagasika","MV":"Maldives","MX":"IMekisiko","MH":"Marshall Islands","MK":"North Macedonia","ML":"IMali","MT":"IMalta","MM":"Myanmar","ME":"IMontenegro","MN":"Mongolia","MP":"Northern Mariana Islands","MZ":"IMozambiki","MR":"IMoritaniya","MS":"Montserrat","MQ":"Martinique","MU":"IMorishisi","MW":"IMalawi","MY":"Malaysia","YT":"IMayotte","NA":"INamibhiya","NC":"New Caledonia","NE":"INayighe","NF":"Norfolk Island","NG":"INigeria","NI":"Nicaragua","NU":"Niue","NL":"I-Netherlands","NO":"INoki","NP":"Nepal","NR":"Nauru","NZ":"INyuzilandi","OM":"Oman","PK":"IPakistani","PA":"Panama","PN":"Pitcairn","PE":"I-Peru","PH":"Philippines","PW":"Palau","PG":"Papua New Guinea","PL":"IPolandi","PR":"Puerto Rico","KP":"North Korea","PT":"IPhothugali","PY":"I-Paraguwayi","PS":"Palestine, State of","PF":"French Polynesia","QA":"Qatar","RE":"IRiyunion","RO":"I-Romaniya","RU":"Russian Federation","RW":"IRuwanda","SA":"Saudi Arabia","SD":"ISudan","SN":"ISenegal","SG":"Singapore","GS":"South Georgia and the South Sandwich Islands","SH":"Saint Helena, Ascension and Tristan da Cunha","SJ":"Svalbard and Jan Mayen","SB":"Solomon Islands","SL":"ISiera Liyoni","SV":"El Salvador","SM":"USanti Marino","SO":"ISomalia","PM":"Saint Pierre and Miquelon","RS":"ISerbiya","SS":"ISudan yaseNingizimu","ST":"ISawu Tome noPhrinitshipeyi","SR":"Suriname","SK":"ISlovaki","SI":"ISloveniya","SE":"ISwidi","SZ":"Eswatini","SX":"Sint Maarten (Dutch part)","SC":"IsiSeyisheli","SY":"Syrian Arab Republic","TC":"Turks and Caicos Islands","TD":"ITshedi","TG":"ITogo","TH":"I-Thayilandi","TJ":"Tajikistan","TK":"Tokelau","TM":"Turkmenistan","TL":"Timor-Leste","TO":"Tonga","TT":"I-Trinidad ne Tobago","TN":"ITunisia","TR":"ITheki","TV":"Tuvalu","TW":"I-Tayiwani","TZ":"ITanzania","UG":"IYuganda","UA":"I-Yukreyini","UM":"United States Minor Outlying Islands","UY":"I-Uruguwayi","US":"United States","UZ":"Uzbekistan","VA":"Holy See (Vatican City State)","VC":"Saint Vincent and the Grenadines","VE":"I-Venezuwela","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","VN":"IViyetnami","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","YE":"IYemen","ZA":"IRiphabliki yaseNingizimu Afrika","ZM":"IZambiya","ZW":"IZimbabwe"}
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ISO3166
2
4
  class << self
3
5
  attr_writer :configuration
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sixarm_ruby_unaccent'
2
4
 
3
5
  module ISO3166
4
6
  UNSEARCHABLE_METHODS = [:translations].freeze
5
7
 
6
- def self::Country(country_data_or_country)
8
+ def self.Country(country_data_or_country)
7
9
  case country_data_or_country
8
10
  when ISO3166::Country
9
11
  country_data_or_country
@@ -15,9 +17,6 @@ module ISO3166
15
17
  end
16
18
 
17
19
  module CountryClassMethods
18
- FIND_BY_REGEX = /^find_(all_)?(country_|countries_)?by_(.+)/
19
- SEARCH_TERM_FILTER_REGEX = /\(|\)|\[\]|,/
20
-
21
20
  def new(country_data)
22
21
  super if country_data.is_a?(Hash) || codes.include?(country_data.to_s.upcase)
23
22
  end
@@ -33,10 +32,6 @@ module ISO3166
33
32
 
34
33
  alias countries all
35
34
 
36
- def all_translated(locale = 'en')
37
- translations(locale).values
38
- end
39
-
40
35
  def all_names_with_codes(locale = 'en')
41
36
  Country.all.map do |c|
42
37
  lc = (c.translation(locale) || c.iso_short_name)
@@ -50,6 +45,10 @@ module ISO3166
50
45
  end
51
46
  end
52
47
 
48
+ def all_translated(locale = 'en')
49
+ translations(locale).values
50
+ end
51
+
53
52
  def translations(locale = 'en')
54
53
  i18n_data_countries = I18nData.countries(locale.upcase)
55
54
 
@@ -62,54 +61,6 @@ module ISO3166
62
61
  i18n_data_countries.merge(custom_countries)
63
62
  end
64
63
 
65
- def search(query)
66
- country = new(query.to_s.upcase)
67
- country && country.valid? ? country : nil
68
- end
69
-
70
- def [](query)
71
- search(query)
72
- end
73
-
74
- def method_missing(method_name, *arguments)
75
- matches = method_name.to_s.match(FIND_BY_REGEX)
76
- return_all = matches[1]
77
- super unless matches
78
-
79
- if matches[3] == 'names'
80
- if RUBY_VERSION =~ /^3\.\d\.\d/
81
- warn "DEPRECATION WARNING: 'find_by_name' and 'find_*_by_name' methods are deprecated, please refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
82
- else
83
- warn "DEPRECATION WARNING: 'find_by_name' and 'find_*_by_name' methods are deprecated, please refer to the README file for more information on this change.", uplevel: 1
84
- end
85
- end
86
-
87
- countries = find_by(matches[3], arguments[0], matches[2])
88
- return_all ? countries : countries.last
89
- end
90
-
91
- def respond_to_missing?(method_name, include_private = false)
92
- matches = method_name.to_s.match(FIND_BY_REGEX)
93
- if matches && matches[3]
94
- instance_methods.include?(matches[3].to_sym)
95
- else
96
- super
97
- end
98
- end
99
-
100
- def find_all_by(attribute, val)
101
- attributes, lookup_value = parse_attributes(attribute, val)
102
-
103
- ISO3166::Data.cache.select do |_, v|
104
- country = Country.new(v)
105
- attributes.any? do |attr|
106
- Array(country.send(attr)).any? do |n|
107
- lookup_value === cached(n) { parse_value(n) }
108
- end
109
- end
110
- end
111
- end
112
-
113
64
  def subdivisions(alpha2)
114
65
  @subdivisions ||= {}
115
66
  @subdivisions[alpha2] ||= create_subdivisions(subdivision_data(alpha2))
@@ -124,51 +75,14 @@ module ISO3166
124
75
 
125
76
  protected
126
77
 
127
- def strip_accents(v)
128
- if v.is_a?(Regexp)
129
- Regexp.new(v.source.unaccent, 'i')
78
+ def strip_accents(string)
79
+ if string.is_a?(Regexp)
80
+ Regexp.new(string.source.unaccent, 'i')
130
81
  else
131
- v.to_s.unaccent.downcase
132
- end
133
- end
134
-
135
- def parse_attributes(attribute, val)
136
- raise "Invalid attribute name '#{attribute}'" unless searchable_attribute?(attribute.to_sym)
137
-
138
- attributes = Array(attribute.to_s)
139
- if attribute.to_s == 'name'
140
- if RUBY_VERSION =~ /^3\.\d\.\d/
141
- warn "DEPRECATION WARNING: 'find_by_name' and 'find_*_by_name' methods are deprecated, please refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
142
- else
143
- warn "DEPRECATION WARNING: 'find_by_name' and 'find_*_by_name' methods are deprecated, please refer to the README file for more information on this change.", uplevel: 1
144
- end
145
- # 'find_by_name' and 'find_*_by_name' will be changed for 5.0
146
- # The addition of 'iso_short_name' here ensures the behaviour of 4.1 is kept for 4.2
147
- attributes = %w[iso_short_name unofficial_names translated_names]
148
- end
149
-
150
- [attributes, parse_value(val)]
151
- end
152
-
153
- def searchable_attribute?(attribute)
154
- searchable_attributes.include?(attribute.to_sym)
155
- end
156
-
157
- def searchable_attributes
158
- instance_methods - UNSEARCHABLE_METHODS
159
- end
160
-
161
- def find_by(attribute, value, obj = nil)
162
- find_all_by(attribute.downcase, value).map do |country|
163
- obj.nil? ? country : new(country.last)
82
+ string.to_s.unaccent.downcase
164
83
  end
165
84
  end
166
85
 
167
- def parse_value(value)
168
- value = value.gsub(SEARCH_TERM_FILTER_REGEX, '') if value.respond_to?(:gsub)
169
- strip_accents(value)
170
- end
171
-
172
86
  def subdivision_data(alpha2)
173
87
  file = subdivision_file_path(alpha2)
174
88
  File.exist?(file) ? YAML.load_file(file) : {}
@@ -190,6 +104,7 @@ module ISO3166
190
104
  def cached(value)
191
105
  @_parsed_values_cache ||= {}
192
106
  return @_parsed_values_cache[value] if @_parsed_values_cache[value]
107
+
193
108
  @_parsed_values_cache[value] = yield
194
109
  end
195
110
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'money'
2
4
 
3
5
  module ISO3166
@@ -1,5 +1,4 @@
1
- #!/bin/env ruby
2
- # encoding: utf-8
1
+ # frozen_string_literal: true
3
2
 
4
3
  module ISO3166
5
4
  module Emoji
@@ -36,7 +35,7 @@ module ISO3166
36
35
  #
37
36
  # The emoji flag for this country, using Unicode Regional Indicator characters. e.g: "U+1F1FA U+1F1F8" for 🇺🇸
38
37
  def emoji_flag
39
- alpha2.downcase.chars.map { |c| CODE_POINTS[c] }.join('')
38
+ alpha2.downcase.chars.map { |c| CODE_POINTS[c] }.join
40
39
  end
41
40
  end
42
41
  end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ISO3166
4
+ module CountryFinderMethods
5
+ FIND_BY_REGEX = /^find_(all_)?(country_|countries_)?by_(.+)/.freeze
6
+ SEARCH_TERM_FILTER_REGEX = /\(|\)|\[\]|,/.freeze
7
+
8
+ def search(query)
9
+ country = new(query.to_s.upcase)
10
+ country&.valid? ? country : nil
11
+ end
12
+
13
+ def [](query)
14
+ search(query)
15
+ end
16
+
17
+ def find_all_by(attribute, val)
18
+ attributes, lookup_value = parse_attributes(attribute, val)
19
+
20
+ ISO3166::Data.cache.select do |_, v|
21
+ country = Country.new(v)
22
+ attributes.any? do |attr|
23
+ Array(country.send(attr)).any? do |n|
24
+ lookup_value === cached(n) { parse_value(n) }
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ def method_missing(method_name, *arguments)
31
+ matches = method_name.to_s.match(FIND_BY_REGEX)
32
+ return_all = matches[1]
33
+ super unless matches
34
+
35
+ countries = find_by(matches[3], arguments[0], matches[2])
36
+ return_all ? countries : countries.last
37
+ end
38
+
39
+ def respond_to_missing?(method_name, include_private = false)
40
+ matches = method_name.to_s.match(FIND_BY_REGEX)
41
+ if matches && matches[3]
42
+ instance_methods.include?(matches[3].to_sym)
43
+ else
44
+ super
45
+ end
46
+ end
47
+
48
+ protected
49
+
50
+ def find_by(attribute, value, obj = nil)
51
+ find_all_by(attribute.downcase, value).map do |country|
52
+ obj.nil? ? country : new(country.last)
53
+ end
54
+ end
55
+
56
+ def parse_attributes(attribute, val)
57
+ raise "Invalid attribute name '#{attribute}'" unless searchable_attribute?(attribute.to_sym)
58
+
59
+ attributes = Array(attribute.to_s)
60
+ if attribute.to_s == 'any_name'
61
+ attributes = %w[iso_long_name iso_short_name unofficial_names translated_names]
62
+ end
63
+
64
+ [attributes, parse_value(val)]
65
+ end
66
+
67
+ def parse_value(value)
68
+ value = value.gsub(SEARCH_TERM_FILTER_REGEX, '') if value.respond_to?(:gsub)
69
+ strip_accents(value)
70
+ end
71
+
72
+ def searchable_attribute?(attribute)
73
+ searchable_attributes.include?(attribute.to_sym)
74
+ end
75
+
76
+ def searchable_attributes
77
+ # Add name and names until we complete the deprecation of the finders
78
+ instance_methods - UNSEARCHABLE_METHODS + [:name, :names, :any_name]
79
+ end
80
+ end
81
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ISO3166
2
4
  class Country
3
5
  extend CountryClassMethods
6
+ extend CountryFinderMethods
4
7
  include Emoji
5
8
  attr_reader :data
6
9
 
@@ -31,24 +34,6 @@ module ISO3166
31
34
  alias zip_format postal_code_format
32
35
  alias languages languages_official
33
36
 
34
- def latitude_dec
35
- if RUBY_VERSION =~ /^3\.\d\.\d/
36
- warn "DEPRECATION WARNING: The Country#latitude_dec method has been deprecated and will be removed in 5.0. Please use Country#latitude instead.", uplevel: 1, category: :deprecated
37
- else
38
- warn "DEPRECATION WARNING: The Country#latitude_dec method has been deprecated and will be removed in 5.0. Please use Country#latitude instead.", uplevel: 1
39
- end
40
- latitude
41
- end
42
-
43
- def longitude_dec
44
- if RUBY_VERSION =~ /^3\.\d\.\d/
45
- warn "DEPRECATION WARNING: The Country#longitude_dec method has been deprecated and will be removed in 5.0. Please use Country#longitude instead.", uplevel: 1, category: :deprecated
46
- else
47
- warn "DEPRECATION WARNING: The Country#longitude_dec method has been deprecated and will be removed in 5.0. Please use Country#longitude instead.", uplevel: 1
48
- end
49
- longitude
50
- end
51
-
52
37
  def ==(other)
53
38
  other.respond_to?(:alpha2) && other.alpha2 == alpha2
54
39
  end
@@ -136,28 +121,6 @@ module ISO3166
136
121
  @local_name ||= local_names.first
137
122
  end
138
123
 
139
- # @return [String] This Country's ISO Short Name
140
- # @deprecated Use {#iso_short_name} instead.
141
- def name
142
- if RUBY_VERSION =~ /^3\.\d\.\d/
143
- warn "DEPRECATION WARNING: The Country#name method has been deprecated. Please use Country#iso_short_name instead or refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
144
- else
145
- warn "DEPRECATION WARNING: The Country#name method has been deprecated. Please use Country#iso_short_name instead or refer to the README file for more information on this change.", uplevel: 1
146
- end
147
- iso_short_name
148
- end
149
-
150
- # @return [Array<String>] Array of unofficial, slang names or aliases for this Country
151
- # @deprecated Use {#unofficial_names} instead.
152
- def names
153
- if RUBY_VERSION =~ /^3\.\d\.\d/
154
- warn "DEPRECATION WARNING: The Country#names method has been deprecated. Please use Country#unofficial_names instead or refer to the README file for more information on this change.", uplevel: 1, category: :deprecated
155
- else
156
- warn "DEPRECATION WARNING: The Country#names method has been deprecated. Please use Country#unofficial_names instead or refer to the README file for more information on this change.", uplevel: 1
157
- end
158
- unofficial_names
159
- end
160
-
161
124
  # @!attribute alpha2
162
125
  # @return [String] the ISO3166 alpha-2 code for this Country
163
126
  #
@@ -9,7 +9,6 @@ KN:
9
9
  geo:
10
10
  latitude: 17.357822
11
11
  longitude: -62.782998
12
- longitude_dec: "-62.643184661865234"
13
12
  max_latitude: 17.4205891
14
13
  max_longitude: -62.52369989999999
15
14
  min_latitude: 17.07861
@@ -86,7 +86,7 @@
86
86
  nb: Beja
87
87
  nl: Beja
88
88
  pl: Dystrykt Beja
89
- pt: Distrito de Beja
89
+ pt: Beja
90
90
  ro: Districtul Beja
91
91
  ru: Бежа
92
92
  si: බෙජා දිස්ත්‍රික්කය
@@ -147,7 +147,7 @@
147
147
  nb: Braga
148
148
  nl: Braga
149
149
  pl: Dystrykt Braga
150
- pt: Distrito de Braga
150
+ pt: Braga
151
151
  ro: Districtul Braga
152
152
  ru: Брага
153
153
  si: බ්‍රගා දිස්ත්‍රික්කය
@@ -252,7 +252,7 @@
252
252
  nb: Castelo Branco
253
253
  nl: Castelo Branco
254
254
  pl: Dystrykt Castelo Branco
255
- pt: Distrito de Castelo Branco
255
+ pt: Castelo Branco
256
256
  ro: Districtul Castelo Branco
257
257
  ru: Каштелу-Бранку
258
258
  si: කැස්ටෙලෝ බ්‍රන්කෝ දිස්ත්‍රික්කය
@@ -313,7 +313,7 @@
313
313
  nb: Coimbra
314
314
  nl: Coimbra
315
315
  pl: Dystrykt Coimbra
316
- pt: Distrito de Coimbra
316
+ pt: Coimbra
317
317
  ro: Districtul Coimbra
318
318
  ru: Коимбра
319
319
  si: කොයිම්බ්‍රා දිස්ත්‍රික්කය
@@ -372,7 +372,7 @@
372
372
  nb: Évora
373
373
  nl: Évora
374
374
  pl: Dystrykt Évora
375
- pt: Distrito de Évora
375
+ pt: Évora
376
376
  ro: Districtul Évora
377
377
  ru: Эвора
378
378
  si: එවොරා දිස්ත්‍රික්කය
@@ -432,7 +432,7 @@
432
432
  nb: Faro
433
433
  nl: Faro
434
434
  pl: Dystrykt Faro
435
- pt: Distrito de Faro
435
+ pt: Faro
436
436
  ro: Districtul Faro
437
437
  ru: Фару
438
438
  si: ෆාරො දිස්ත්‍රික්කය
@@ -486,7 +486,7 @@
486
486
  nb: Guarda
487
487
  nl: Guarda
488
488
  pl: Dystrykt Guarda
489
- pt: Distrito da Guarda
489
+ pt: Guarda
490
490
  ro: Districtul Guarda
491
491
  ru: Гуарда
492
492
  sr: Гварда
@@ -539,7 +539,7 @@
539
539
  nb: Leiria
540
540
  nl: Leiria
541
541
  pl: Dystrykt Leiria
542
- pt: Distrito de Leiria
542
+ pt: Leiria
543
543
  ro: Districtul Leiria
544
544
  ru: Лейрия
545
545
  si: ලේයිරියා දිස්ත්‍රික්කය
@@ -597,7 +597,7 @@
597
597
  nb: Lisboa
598
598
  nl: Lissabon
599
599
  pl: Dystrykt Lizbona
600
- pt: Distrito de Lisboa
600
+ pt: Lisboa
601
601
  ro: Districtul Lisabona
602
602
  ru: Лиссабон
603
603
  sr: Лисабон
@@ -642,7 +642,7 @@
642
642
  nb: Portalegre
643
643
  nl: Portalegre
644
644
  pl: Dystrykt Portalegre
645
- pt: Distrito de Portalegre
645
+ pt: Portalegre
646
646
  ro: Districtul Portalegre
647
647
  ru: Порталегри
648
648
  sr: Порталегре
@@ -741,7 +741,7 @@
741
741
  nb: Santarém
742
742
  nl: Santarém
743
743
  pl: Dystrykt Santarém
744
- pt: Distrito de Santarém
744
+ pt: Santarém
745
745
  ro: Districtul Santarém
746
746
  ru: Сантарен
747
747
  si: සැන්ටරේම් දිස්ත්‍රික්කය
@@ -802,7 +802,7 @@
802
802
  nb: Setúbal
803
803
  nl: Setúbal
804
804
  pl: Dystrykt Setúbal
805
- pt: Distrito de Setúbal
805
+ pt: Setúbal
806
806
  ro: Districtul Setúbal
807
807
  ru: Сетубал
808
808
  si: සෙටුබල් දිස්ත්‍රික්කය
@@ -862,7 +862,7 @@
862
862
  nb: Viana do Castelo
863
863
  nl: Viana do Castelo
864
864
  pl: Dystrykt Viana do Castelo
865
- pt: Distrito de Viana do Castelo
865
+ pt: Viana do Castelo
866
866
  ro: Districtul Viana do Castelo
867
867
  ru: Виана-ду-Каштелу
868
868
  si: වියානා ඩො කැස්ටෙලෝ දිස්ත්‍රික්කය