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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2bcf9cae235b902baf6388bd509cf8bb7b9445b2bac741713c6f1d60ca830fc
4
- data.tar.gz: 91d40e2882577373c5336057dd3a235364b924e276550662bd806075f90e90cc
3
+ metadata.gz: 96bc2442058a29c4830dbebb1baedc428f220b2b20762b150fa1ccd658648d4e
4
+ data.tar.gz: 11454ce4ed1f2c48778141e886cc8f9a86d8d1a3efb66caaa302f86586a17ec1
5
5
  SHA512:
6
- metadata.gz: be7fe0fe2d21b477994aa531636b0dde19b350ca3a53e3c985cbe13d9dee5285c32e580bc893877c05599290471aeb7835b5d8a520f1fd8f3ceb0cfae5f3eed6
7
- data.tar.gz: 45d45c55e305c76a2393580965cecb39e5227e1d2a8bba8a1ac335524f5535eddd099e13096d2d58e204ee84b40933b27bc5c6fdcbd316154940349bfca5e335
6
+ metadata.gz: 45f3d74148f5807f9ef03ec5a4405d9aa337ddb98e7c54e8180fab64c31ce1ff9bc92ed4840f3287514046c926d1ffb5e6982a5048a7ea16e13fe15e3b210a64
7
+ data.tar.gz: 29654bae42cd1c257b2705554e7b7effd1fdde060bbd31bf3a413a4a120f4ef6187117af84bdba6d16c19b361cfcaa02d0e8013911a8d31922c99b6f0bc427ba
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kovid (0.4.3)
4
+ kovid (0.4.4)
5
5
  ascii_charts (~> 0.9.1)
6
6
  rainbow (~> 3.0)
7
7
  terminal-table (~> 1.8)
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
- ![kovid](https://i.gyazo.com/ee88b41c05da3be0295dd3a158e7ba70.png "Covid data.")
83
+ ![kovid](https://i.gyazo.com/1d86ba2cd05f215b16c8d1fd13085c6e.png "Covid data.")
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
- ![kovid](https://i.gyazo.com/7e5afce548d8a01b9bdf3f8bdb529cd1.png "Covid data.")
89
+ ![kovid](https://i.gyazo.com/1d9720b9fa2c08fb801f5361fba359bb.png "Covid data.")
85
90
 
86
91
  To compare country stats:
87
92
 
88
- `kovid compare germany poland`
93
+ `kovid compare germany poland spain`
89
94
 
90
- ![kovid](https://i.gyazo.com/876b19988da4cd7b375cde3e23376ba7.png "Covid data.")
95
+ ![kovid](https://i.gyazo.com/4100e845fea6936f5c8d21d78617110d.png "Covid data.")
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
  ![kovid](https://i.gyazo.com/0a78afae2a5b9d2beb9f2c61dc1d3ac7.png "Covid data.")
109
114
 
115
+ To fetch data on Africa:
116
+
117
+ `kovid africa`
118
+
119
+ ![kovid](https://i.gyazo.com/bc45fa53e2ff688e8a1f759f1bd1b972.png "Covid data.")
120
+
110
121
  You can check historical statistics by running
111
122
 
112
123
  `kovid history italy 7` eg:
data/lib/kovid.rb CHANGED
@@ -14,6 +14,10 @@ module Kovid
14
14
  Kovid::Request.eu_aggregate
15
15
  end
16
16
 
17
+ def africa_aggregate
18
+ Kovid::Request.africa_aggregate
19
+ end
20
+
17
21
  def country(name)
18
22
  Kovid::Request.by_country(name)
19
23
  end
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
 
@@ -28,7 +28,7 @@ module Kovid
28
28
  'Deaths'.paint_red
29
29
  ].freeze
30
30
 
31
- EU_AGGREGATE_HEADINGS = [
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: EU_AGGREGATE_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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kovid
4
- VERSION = '0.4.4'
4
+ VERSION = '0.4.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kovid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emmanuel Hayford