kovid 0.2.4 β 0.2.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 +5 -5
- data/README.md +11 -10
- data/kovid.gemspec +4 -4
- data/lib/kovid/cli.rb +6 -2
- data/lib/kovid/request.rb +3 -2
- data/lib/kovid/tablelize.rb +26 -13
- data/lib/kovid/version.rb +1 -1
- data/lib/kovid.rb +2 -2
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b453d783796a94766fee3d796a41070ae4a1708c8a306a8b77ae60a912293a78
|
4
|
+
data.tar.gz: 85ff2d518cd223ab521f6c1221151745a75269605288fcd5882f569871bbc0eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d4d98b52a3eea164950abbb4639c97aacd95f3a3cce00f8d211c558ec5fc3f97bbb26bf2b97aab69ad95bbc897c77c9a65bd66a97e5f3021bb48adc23e007af
|
7
|
+
data.tar.gz: 19f9ce8011ecf1383c71787fd9bc853d4fef3d3df2bbb6d63010e0a4bffa6708d895ed05547c4db6629f9fe84028dc614e0b9de5951b603f8fd2e162b7de6473
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -20,24 +20,25 @@ Before installing:
|
|
20
20
|
|
21
21
|
You can run `kovid --help` to see the full list of available commands.
|
22
22
|
|
23
|
-
**NOTE:** If you find it irritating to have to type `kovid state
|
23
|
+
**NOTE:** If you find it irritating to have to type `kovid state STATE`, `covid state STATE` works as well.
|
24
24
|
|
25
25
|
#### Commands Overview
|
26
26
|
π· **Fetching**
|
27
|
-
* `kovid check
|
28
|
-
* `kovid check
|
27
|
+
* `kovid check COUNTRY`
|
28
|
+
* `kovid check COUNTRY -f` OR `kovid check COUNTRY --full`
|
29
29
|
|
30
30
|
πΊπΈYou can fetch US state-specific data πΊπΈ
|
31
|
-
* `kovid state
|
31
|
+
* `kovid state STATE` OR `kovid state "STATE WITH SPACES"`
|
32
32
|
|
33
33
|
π· **Comparing**
|
34
|
-
* `kovid compare
|
35
|
-
* `kovid compare
|
34
|
+
* `kovid compare COUNTRYA COUNTRYB` (sorts by cases DESC)
|
35
|
+
* `kovid compare COUNTRYA COUNTRYB -f` OR `kovid compare COUNTRYA COUNTRYB --full` (sorts by cases DESC)
|
36
36
|
|
37
37
|
You can compare as many countries as you want.
|
38
38
|
|
39
39
|
π· **History**
|
40
|
-
* `kovid history
|
40
|
+
* `kovid history COUNTRY` (Full history)
|
41
|
+
* `kovid history COUNTRY N` (History in the last N days)
|
41
42
|
|
42
43
|
π· **Total figures**
|
43
44
|
* `kovid cases`
|
@@ -73,15 +74,15 @@ To compare a countries stats with a full table:
|
|
73
74
|
|
74
75
|
To fetch state-specific data run:
|
75
76
|
|
76
|
-
`kovid state colorado`
|
77
|
+
`kovid state colorado` OR `kovid state "north carolina"`
|
77
78
|
|
78
79
|

|
79
80
|
|
80
81
|
You can check historical statistics by running
|
81
82
|
|
82
|
-
`kovid history
|
83
|
+
`kovid history italy 7` eg:
|
83
84
|
|
84
|
-

|
85
86
|
|
86
87
|
To check for total figures:
|
87
88
|
|
data/kovid.gemspec
CHANGED
@@ -45,10 +45,10 @@ Gem::Specification.new do |spec|
|
|
45
45
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
46
46
|
spec.require_paths = ["lib"]
|
47
47
|
|
48
|
-
spec.add_dependency "thor"
|
49
|
-
spec.add_dependency "terminal-table"
|
50
|
-
spec.add_dependency "typhoeus"
|
51
|
-
spec.add_dependency "colorize"
|
48
|
+
spec.add_dependency "thor", "~> 1.0"
|
49
|
+
spec.add_dependency "terminal-table", "~> 1.8"
|
50
|
+
spec.add_dependency "typhoeus", "~> 1.3"
|
51
|
+
spec.add_dependency "colorize", "~> 0.8"
|
52
52
|
|
53
53
|
spec.add_development_dependency "pry"
|
54
54
|
spec.add_development_dependency "cucumber"
|
data/lib/kovid/cli.rb
CHANGED
@@ -44,8 +44,12 @@ module Kovid
|
|
44
44
|
end
|
45
45
|
|
46
46
|
desc 'history COUNTRY', 'Return history of incidents of COUNTRY'
|
47
|
-
def history(
|
48
|
-
|
47
|
+
def history(*params)
|
48
|
+
if params.size == 2
|
49
|
+
puts Kovid.history(params.first, params.last)
|
50
|
+
else
|
51
|
+
puts Kovid.history(params.first, nil)
|
52
|
+
end
|
49
53
|
end
|
50
54
|
end
|
51
55
|
end
|
data/lib/kovid/request.rb
CHANGED
@@ -48,11 +48,11 @@ module Kovid
|
|
48
48
|
Kovid::Tablelize.cases(response)
|
49
49
|
end
|
50
50
|
|
51
|
-
def history(country)
|
51
|
+
def history(country, last)
|
52
52
|
history_path = UriBuilder.new('/historical').url
|
53
53
|
response ||= JSON.parse(Typhoeus.get(history_path + "/#{country}", cache_ttl: 900).response_body)
|
54
54
|
|
55
|
-
Kovid::Tablelize.history(response)
|
55
|
+
Kovid::Tablelize.history(response, last)
|
56
56
|
end
|
57
57
|
|
58
58
|
private
|
@@ -80,6 +80,7 @@ module Kovid
|
|
80
80
|
|
81
81
|
def fetch_state(state)
|
82
82
|
url = UriBuilder.new('/states').url
|
83
|
+
|
83
84
|
states_array = JSON.parse(Typhoeus.get(url, cache_ttl: 900).response_body)
|
84
85
|
|
85
86
|
states_array.select { |state_name| state_name['state'] == capitalize_words(state) }.first
|
data/lib/kovid/tablelize.rb
CHANGED
@@ -26,7 +26,7 @@ module Kovid
|
|
26
26
|
headings = CASES_DEATHS_RECOVERED
|
27
27
|
rows = [[data['cases'], data['deaths'], data['recovered']]]
|
28
28
|
|
29
|
-
Terminal::Table.new(title: data['country'], headings: headings, rows: rows)
|
29
|
+
Terminal::Table.new(title: data['country'].upcase, headings: headings, rows: rows)
|
30
30
|
end
|
31
31
|
|
32
32
|
def full_country_table(data)
|
@@ -50,7 +50,7 @@ module Kovid
|
|
50
50
|
data['critical'],
|
51
51
|
data['casesPerOneMillion']
|
52
52
|
]
|
53
|
-
Terminal::Table.new(title: data['country'],
|
53
|
+
Terminal::Table.new(title: data['country'].upcase,
|
54
54
|
headings: headings,
|
55
55
|
rows: rows)
|
56
56
|
end
|
@@ -67,12 +67,12 @@ module Kovid
|
|
67
67
|
|
68
68
|
rows = []
|
69
69
|
rows << [state['cases'], state['todayCases'], state['deaths'], state['todayDeaths'], state['recovered'], state['active']]
|
70
|
-
|
70
|
+
|
71
71
|
puts
|
72
72
|
puts "βΌοΈ Swap value of 'Recovered' for 'Active'. API scraper broke."
|
73
73
|
puts "βΌοΈ So 'Active' is #{state['recovered']} and not #{state['active']}."
|
74
74
|
|
75
|
-
Terminal::Table.new(title: state['state'], headings: headings, rows: rows)
|
75
|
+
Terminal::Table.new(title: state['state'].upcase, headings: headings, rows: rows)
|
76
76
|
end
|
77
77
|
|
78
78
|
def compare_countries_table(data)
|
@@ -126,17 +126,28 @@ module Kovid
|
|
126
126
|
headings = CASES_DEATHS_RECOVERED
|
127
127
|
rows = [[cases['cases'], cases['deaths'], cases['recovered']]]
|
128
128
|
|
129
|
-
Terminal::Table.new(title: 'Total Number of Incidents Worldwide', headings: headings, rows: rows)
|
129
|
+
Terminal::Table.new(title: 'Total Number of Incidents Worldwide'.upcase, headings: headings, rows: rows)
|
130
130
|
end
|
131
131
|
|
132
|
-
def history(country)
|
132
|
+
def history(country, last)
|
133
133
|
headings = DATE_CASES_DEATHS_RECOVERED
|
134
134
|
rows = []
|
135
|
-
stats = country['timeline'].values.map(&:values).transpose.each do |data|
|
136
|
-
data.map! { |number| comma_delimit(number) }
|
137
|
-
end
|
138
135
|
|
139
|
-
|
136
|
+
stats = if last
|
137
|
+
country['timeline'].values.map(&:values).transpose.each do |data|
|
138
|
+
data.map! { |number| comma_delimit(number) }
|
139
|
+
end.last(last.to_i)
|
140
|
+
else
|
141
|
+
country['timeline'].values.map(&:values).transpose.each do |data|
|
142
|
+
data.map! { |number| comma_delimit(number) }
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
dates = if last
|
147
|
+
country['timeline']['cases'].keys.last(last.to_i)
|
148
|
+
else
|
149
|
+
country['timeline']['cases'].keys
|
150
|
+
end
|
140
151
|
|
141
152
|
stats.each_with_index do |val, index|
|
142
153
|
val.unshift(Date.parse(Date.strptime(dates[index], '%m/%d/%y').to_s).strftime('%d %b, %y'))
|
@@ -144,10 +155,12 @@ module Kovid
|
|
144
155
|
rows << row
|
145
156
|
end
|
146
157
|
|
147
|
-
|
148
|
-
|
158
|
+
if stats.size > 10
|
159
|
+
rows << FOOTER_LINE
|
160
|
+
rows << DATE_CASES_DEATHS_RECOVERED
|
161
|
+
end
|
149
162
|
|
150
|
-
Terminal::Table.new(title: country['standardizedCountryName'].
|
163
|
+
Terminal::Table.new(title: country['standardizedCountryName'].upcase, headings: headings, rows: rows)
|
151
164
|
end
|
152
165
|
|
153
166
|
private
|
data/lib/kovid/version.rb
CHANGED
data/lib/kovid.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emmanuel Hayford
|
@@ -14,58 +14,58 @@ dependencies:
|
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: terminal-table
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: typhoeus
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '1.3'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: colorize
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.8'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|