kovid 0.4.4 β 0.4.5
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/Gemfile.lock +1 -1
- data/README.md +16 -5
- data/lib/kovid.rb +4 -0
- data/lib/kovid/cli.rb +7 -0
- data/lib/kovid/request.rb +21 -0
- data/lib/kovid/tablelize.rb +21 -3
- data/lib/kovid/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 96bc2442058a29c4830dbebb1baedc428f220b2b20762b150fa1ccd658648d4e
         | 
| 4 | 
            +
              data.tar.gz: 11454ce4ed1f2c48778141e886cc8f9a86d8d1a3efb66caaa302f86586a17ec1
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 45f3d74148f5807f9ef03ec5a4405d9aa337ddb98e7c54e8180fab64c31ce1ff9bc92ed4840f3287514046c926d1ffb5e6982a5048a7ea16e13fe15e3b210a64
         | 
| 7 | 
            +
              data.tar.gz: 29654bae42cd1c257b2705554e7b7effd1fdde060bbd31bf3a413a4a120f4ef6187117af84bdba6d16c19b361cfcaa02d0e8013911a8d31922c99b6f0bc427ba
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -29,6 +29,12 @@ You can run `kovid --help` to see the full list of available commands. | |
| 29 29 | 
             
            * `kovid check COUNTRY` OR `kovid country COUNTRY`.
         | 
| 30 30 | 
             
            * `kovid check COUNTRY -f` OR `kovid check COUNTRY --full`.
         | 
| 31 31 |  | 
| 32 | 
            +
            π¦π¦π¦
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            You can fetch aggregated data on Africa:
         | 
| 35 | 
            +
            * `kovid africa`.
         | 
| 36 | 
            +
             | 
| 37 | 
            +
             | 
| 32 38 | 
             
            πͺπΊπͺπΊπͺπΊ
         | 
| 33 39 |  | 
| 34 40 | 
             
            You can fetch aggregated EU (all 27 countries combined) data:
         | 
| @@ -42,7 +48,6 @@ You can fetch US state-specific data: | |
| 42 48 | 
             
            ##### π Upcoming Fetch Features π·ββοΈ
         | 
| 43 49 |  | 
| 44 50 | 
             
            * `kovid europe` Aggrated stats on Europe
         | 
| 45 | 
            -
            * `kovid africa` Aggrated stats on Africa
         | 
| 46 51 | 
             
            * `kovid asia` Aggrated stats on Asia
         | 
| 47 52 | 
             
            * `kovid south_america` Aggrated stats on South America
         | 
| 48 53 | 
             
            ___
         | 
| @@ -75,19 +80,19 @@ To fetch basic data on a country run: | |
| 75 80 |  | 
| 76 81 | 
             
            `kovid check ghana`. If the location contains spaces: `kovid check "Diamond Princess"`
         | 
| 77 82 |  | 
| 78 | 
            -
            
         | 
| 79 84 |  | 
| 80 85 | 
             
            For full table info on a country:
         | 
| 81 86 |  | 
| 82 87 | 
             
            `kovid check italy -f` OR `kovid check italy --full`
         | 
| 83 88 |  | 
| 84 | 
            -
            
         | 
| 85 90 |  | 
| 86 91 | 
             
            To compare country stats:
         | 
| 87 92 |  | 
| 88 | 
            -
            `kovid compare germany poland`
         | 
| 93 | 
            +
            `kovid compare germany poland spain`
         | 
| 89 94 |  | 
| 90 | 
            -
            
         | 
| 91 96 |  | 
| 92 97 | 
             
            To compare a countries stats with a full table:
         | 
| 93 98 |  | 
| @@ -107,6 +112,12 @@ To fetch EU data run: | |
| 107 112 |  | 
| 108 113 | 
             
            
         | 
| 109 114 |  | 
| 115 | 
            +
            To fetch data on Africa:
         | 
| 116 | 
            +
             | 
| 117 | 
            +
            `kovid africa`
         | 
| 118 | 
            +
             | 
| 119 | 
            +
            
         | 
| 120 | 
            +
             | 
| 110 121 | 
             
            You can check historical statistics by running
         | 
| 111 122 |  | 
| 112 123 | 
             
            `kovid history italy 7` eg:
         | 
    
        data/lib/kovid.rb
    CHANGED
    
    
    
        data/lib/kovid/cli.rb
    CHANGED
    
    | @@ -59,6 +59,13 @@ module Kovid | |
| 59 59 | 
             
                  data_source
         | 
| 60 60 | 
             
                end
         | 
| 61 61 |  | 
| 62 | 
            +
             | 
| 63 | 
            +
                desc 'africa', 'Returns aggregated data on Africa.'
         | 
| 64 | 
            +
                def africa
         | 
| 65 | 
            +
                  puts Kovid.africa_aggregate
         | 
| 66 | 
            +
                  data_source
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 62 69 | 
             
                desc 'version', 'Returns version of kovid'
         | 
| 63 70 | 
             
                def version
         | 
| 64 71 | 
             
                  puts Kovid::VERSION
         | 
    
        data/lib/kovid/request.rb
    CHANGED
    
    | @@ -10,6 +10,7 @@ module Kovid | |
| 10 10 | 
             
                COUNTRIES_PATH = UriBuilder.new('/countries').url
         | 
| 11 11 | 
             
                STATES_URL = UriBuilder.new('/states').url
         | 
| 12 12 | 
             
                EU_ISOS = %w[AT BE BG CY CZ DE DK EE ES FI FR GR HR HU IE IT LT LU LV MT NL PL PT RO SE SI SK].freeze
         | 
| 13 | 
            +
                AFRICA_ISOS = %w[DZ AO BJ BW BF BI CM CV CF TD KM CD CG CI DJ EG GQ ER SZ ET GA GM GH GN GW KE LS LR LY MG MW ML MR MU MA MZ NA NE NG RW ST SN SC SL SO ZA SS SD TZ TG TN UG ZM ZW EH].freeze
         | 
| 13 14 | 
             
                SERVER_DOWN = 'Server overwhelmed. Please try again in a moment.'
         | 
| 14 15 |  | 
| 15 16 | 
             
                class << self
         | 
| @@ -33,6 +34,26 @@ module Kovid | |
| 33 34 | 
             
                    puts SERVER_DOWN
         | 
| 34 35 | 
             
                  end
         | 
| 35 36 |  | 
| 37 | 
            +
                  def africa_aggregate
         | 
| 38 | 
            +
                    countries_array = JSON.parse(Typhoeus.get(UriBuilder.new('/countries').url, cache_ttl: 900).response_body)
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                    africa_arry = countries_array.select do |hash|
         | 
| 41 | 
            +
                      AFRICA_ISOS.include?(hash['countryInfo']['iso2'])
         | 
| 42 | 
            +
                    end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                    head, *tail = africa_arry
         | 
| 45 | 
            +
                    africa_data = head.merge(*tail) do |key, left, right|
         | 
| 46 | 
            +
                      left ||= 0
         | 
| 47 | 
            +
                      right ||= 0
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                      left + right unless %w[country countryInfo].include?(key)
         | 
| 50 | 
            +
                    end.compact
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                    Kovid::Tablelize.africa_aggregate(africa_data)
         | 
| 53 | 
            +
                  rescue JSON::ParserError
         | 
| 54 | 
            +
                    puts SERVER_DOWN
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 36 57 | 
             
                  def by_country(country_name)
         | 
| 37 58 | 
             
                    response = fetch_country(country_name)
         | 
| 38 59 |  | 
    
        data/lib/kovid/tablelize.rb
    CHANGED
    
    | @@ -28,7 +28,7 @@ module Kovid | |
| 28 28 | 
             
                    'Deaths'.paint_red
         | 
| 29 29 | 
             
                  ].freeze
         | 
| 30 30 |  | 
| 31 | 
            -
                   | 
| 31 | 
            +
                  CONTINENTAL_AGGREGATE_HEADINGS = [
         | 
| 32 32 | 
             
                    'Cases'.paint_white,
         | 
| 33 33 | 
             
                    'Cases Today'.paint_white,
         | 
| 34 34 | 
             
                    'Deaths'.paint_red,
         | 
| @@ -162,7 +162,6 @@ module Kovid | |
| 162 162 | 
             
                        check_if_positve(country.fetch('todayDeaths')),
         | 
| 163 163 | 
             
                        comma_delimit(country.fetch('critical')),
         | 
| 164 164 | 
             
                        comma_delimit(country.fetch('casesPerOneMillion'))
         | 
| 165 | 
            -
             | 
| 166 165 | 
             
                      ]
         | 
| 167 166 | 
             
                    end
         | 
| 168 167 |  | 
| @@ -285,7 +284,26 @@ module Kovid | |
| 285 284 |  | 
| 286 285 | 
             
                    Terminal::Table.new(
         | 
| 287 286 | 
             
                      title: 'πͺπΊ' + 8203.chr(Encoding::UTF_8) + ' Aggregated EU (27 States) Data'.upcase,
         | 
| 288 | 
            -
                      headings:  | 
| 287 | 
            +
                      headings: CONTINENTAL_AGGREGATE_HEADINGS,
         | 
| 288 | 
            +
                      rows: rows
         | 
| 289 | 
            +
                    )
         | 
| 290 | 
            +
                  end
         | 
| 291 | 
            +
             | 
| 292 | 
            +
                  def africa_aggregate(africa_data)
         | 
| 293 | 
            +
                    rows = []
         | 
| 294 | 
            +
                    rows << [
         | 
| 295 | 
            +
                      comma_delimit(africa_data['cases']),
         | 
| 296 | 
            +
                      check_if_positve(africa_data['todayCases']),
         | 
| 297 | 
            +
                      comma_delimit(africa_data['deaths']),
         | 
| 298 | 
            +
                      check_if_positve(africa_data['todayDeaths']),
         | 
| 299 | 
            +
                      comma_delimit(africa_data['recovered']),
         | 
| 300 | 
            +
                      comma_delimit(africa_data['active']),
         | 
| 301 | 
            +
                      comma_delimit(africa_data['critical'])
         | 
| 302 | 
            +
                    ]
         | 
| 303 | 
            +
             | 
| 304 | 
            +
                    Terminal::Table.new(
         | 
| 305 | 
            +
                      title: 'Aggregated Data of Africa (55 States)'.upcase,
         | 
| 306 | 
            +
                      headings: CONTINENTAL_AGGREGATE_HEADINGS,
         | 
| 289 307 | 
             
                      rows: rows
         | 
| 290 308 | 
             
                    )
         | 
| 291 309 | 
             
                  end
         | 
    
        data/lib/kovid/version.rb
    CHANGED