kovid 0.4.4 β†’ 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
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