kovid 0.2.6 → 0.2.7
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 +4 -4
- data/README.md +2 -0
- data/kovid.gemspec +1 -1
- data/lib/kovid/painter.rb +5 -5
- data/lib/kovid/request.rb +4 -7
- data/lib/kovid/tablelize.rb +31 -10
- data/lib/kovid/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c76d29e21beeda2615b7b70e435dbe253674a539fc8be8a30f6cd68eb7d3cf8
|
4
|
+
data.tar.gz: 5a94f5237aaaf71800fbaf186bfc0d3a7ffdeb86d4448f2c8b15fb37126f0d2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab21f119d7485688ecf81346c0efb070a0fd12c4caf4a7a90881a2266296e7135e131c72f1978eac7d79ba487760ee7c1ffb4a8d1ce94e485f4baa87c21b87b1
|
7
|
+
data.tar.gz: 427582de7610751e7eb0eea746ec01fd33d4a6d3386711c515203d5d653279babf156cc259f4217fe6939db321de25c8cc155312c3902c9ebb4d26a8cbf169ab
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
kovid (0.2.
|
5
|
-
|
4
|
+
kovid (0.2.6)
|
5
|
+
rainbow (~> 3.0)
|
6
6
|
terminal-table (~> 1.8)
|
7
7
|
thor (~> 1.0)
|
8
8
|
typhoeus (~> 1.3)
|
@@ -21,7 +21,6 @@ GEM
|
|
21
21
|
builder (3.2.4)
|
22
22
|
childprocess (3.0.0)
|
23
23
|
coderay (1.1.2)
|
24
|
-
colorize (0.8.1)
|
25
24
|
contracts (0.16.0)
|
26
25
|
cucumber (3.1.2)
|
27
26
|
builder (>= 2.1.2)
|
@@ -51,6 +50,7 @@ GEM
|
|
51
50
|
pry (0.12.2)
|
52
51
|
coderay (~> 1.1.0)
|
53
52
|
method_source (~> 0.9.0)
|
53
|
+
rainbow (3.0.0)
|
54
54
|
rake (12.3.3)
|
55
55
|
rspec (3.9.0)
|
56
56
|
rspec-core (~> 3.9.0)
|
@@ -89,4 +89,4 @@ DEPENDENCIES
|
|
89
89
|
simplecov
|
90
90
|
|
91
91
|
BUNDLED WITH
|
92
|
-
2.1.
|
92
|
+
2.1.4
|
data/README.md
CHANGED
data/kovid.gemspec
CHANGED
@@ -48,7 +48,7 @@ Gem::Specification.new do |spec|
|
|
48
48
|
spec.add_dependency "thor", "~> 1.0"
|
49
49
|
spec.add_dependency "terminal-table", "~> 1.8"
|
50
50
|
spec.add_dependency "typhoeus", "~> 1.3"
|
51
|
-
spec.add_dependency "
|
51
|
+
spec.add_dependency "rainbow", "~> 3.0"
|
52
52
|
|
53
53
|
spec.add_development_dependency "pry"
|
54
54
|
spec.add_development_dependency "cucumber"
|
data/lib/kovid/painter.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'rainbow'
|
4
4
|
|
5
5
|
class String
|
6
6
|
def paint_white
|
7
|
-
|
7
|
+
Rainbow(self).white.bg(:black).bold
|
8
8
|
end
|
9
9
|
|
10
10
|
def paint_red
|
11
|
-
|
11
|
+
Rainbow(self).red.bg(:black).bold
|
12
12
|
end
|
13
13
|
|
14
14
|
def paint_green
|
15
|
-
|
15
|
+
Rainbow(self).green.bg(:black).bold
|
16
16
|
end
|
17
17
|
|
18
18
|
def paint_yellow
|
19
|
-
|
19
|
+
Rainbow(self).yellow.bg(:black).bold
|
20
20
|
end
|
21
21
|
end
|
data/lib/kovid/request.rb
CHANGED
@@ -8,6 +8,7 @@ require_relative 'uri_builder'
|
|
8
8
|
module Kovid
|
9
9
|
class Request
|
10
10
|
COUNTRIES_PATH = UriBuilder.new('/countries').url
|
11
|
+
STATES_URL = UriBuilder.new('/states').url
|
11
12
|
|
12
13
|
class << self
|
13
14
|
def by_country(country_name)
|
@@ -73,21 +74,17 @@ module Kovid
|
|
73
74
|
end
|
74
75
|
|
75
76
|
def fetch_country(country_name)
|
76
|
-
|
77
|
+
country_url = COUNTRIES_PATH + "/#{country_name}"
|
77
78
|
|
78
|
-
JSON.parse(Typhoeus.get(
|
79
|
+
JSON.parse(Typhoeus.get(country_url, cache_ttl: 900).response_body)
|
79
80
|
end
|
80
81
|
|
81
82
|
def fetch_state(state)
|
82
|
-
|
83
|
-
|
84
|
-
states_array = JSON.parse(Typhoeus.get(url, cache_ttl: 900).response_body)
|
83
|
+
states_array = JSON.parse(Typhoeus.get(STATES_URL, cache_ttl: 900).response_body)
|
85
84
|
|
86
85
|
states_array.select { |state_name| state_name['state'] == capitalize_words(state) }.first
|
87
86
|
end
|
88
87
|
|
89
|
-
private
|
90
|
-
|
91
88
|
def capitalize_words(string)
|
92
89
|
string.split.map(&:capitalize).join(' ')
|
93
90
|
end
|
data/lib/kovid/tablelize.rb
CHANGED
@@ -21,12 +21,18 @@ module Kovid
|
|
21
21
|
].freeze
|
22
22
|
|
23
23
|
FOOTER_LINE = ['------------', '------------', '------------', '------------'].freeze
|
24
|
+
COUNTRY_LETTERS = 'A'.upto('Z').with_index(127_462).to_h.freeze
|
24
25
|
|
25
26
|
def country_table(data)
|
26
27
|
headings = CASES_DEATHS_RECOVERED
|
27
28
|
rows = [[data['cases'], data['deaths'], data['recovered']]]
|
28
29
|
|
29
|
-
|
30
|
+
if iso = data['countryInfo']['iso2']
|
31
|
+
Terminal::Table.new(title: "#{data['country'].upcase} #{country_emoji(iso)}", headings: headings, rows: rows)
|
32
|
+
else
|
33
|
+
Terminal::Table.new(title: data['country'].upcase, headings: headings, rows: rows)
|
34
|
+
end
|
35
|
+
# TODO: Rafactor this
|
30
36
|
end
|
31
37
|
|
32
38
|
def full_country_table(data)
|
@@ -45,14 +51,22 @@ module Kovid
|
|
45
51
|
data['cases'],
|
46
52
|
data['deaths'],
|
47
53
|
data['recovered'],
|
48
|
-
data['todayCases'],
|
49
|
-
data['todayDeaths'],
|
54
|
+
check_if_positve(data['todayCases']),
|
55
|
+
check_if_positve(data['todayDeaths']),
|
50
56
|
data['critical'],
|
51
57
|
data['casesPerOneMillion']
|
52
58
|
]
|
53
|
-
|
54
|
-
|
55
|
-
|
59
|
+
|
60
|
+
if iso = data['countryInfo']['iso2']
|
61
|
+
Terminal::Table.new(title: "#{data['country'].upcase} #{country_emoji(iso)}",
|
62
|
+
headings: headings,
|
63
|
+
rows: rows)
|
64
|
+
else
|
65
|
+
Terminal::Table.new(title: data['country'].upcase,
|
66
|
+
headings: headings,
|
67
|
+
rows: rows)
|
68
|
+
end
|
69
|
+
# TODO: Rafactor this
|
56
70
|
end
|
57
71
|
|
58
72
|
def full_state_table(state)
|
@@ -61,12 +75,11 @@ module Kovid
|
|
61
75
|
'Cases Today'.paint_white,
|
62
76
|
'Deaths'.paint_red,
|
63
77
|
'Deaths Today'.paint_red,
|
64
|
-
'Recovered'.paint_green,
|
65
78
|
'Active'.paint_yellow
|
66
79
|
]
|
67
80
|
|
68
81
|
rows = []
|
69
|
-
rows << [state['cases'], state['todayCases'], state['deaths'], state['todayDeaths'], state['
|
82
|
+
rows << [state['cases'], check_if_positve(state['todayCases']), state['deaths'], check_if_positve(state['todayDeaths']), state['active']]
|
70
83
|
|
71
84
|
Terminal::Table.new(title: state['state'].upcase, headings: headings, rows: rows)
|
72
85
|
end
|
@@ -108,8 +121,8 @@ module Kovid
|
|
108
121
|
country['cases'],
|
109
122
|
country['deaths'],
|
110
123
|
country['recovered'],
|
111
|
-
country['todayCases'],
|
112
|
-
country['todayDeaths'],
|
124
|
+
check_if_positve(country['todayCases']),
|
125
|
+
check_if_positve(country['todayDeaths']),
|
113
126
|
country['critical'],
|
114
127
|
country['casesPerOneMillion']
|
115
128
|
]
|
@@ -164,6 +177,14 @@ module Kovid
|
|
164
177
|
def comma_delimit(number)
|
165
178
|
number.to_s.chars.to_a.reverse.each_slice(3).map(&:join).join(',').reverse
|
166
179
|
end
|
180
|
+
|
181
|
+
def check_if_positve(num)
|
182
|
+
num.to_i.positive? ? "+#{num}" : num.to_s
|
183
|
+
end
|
184
|
+
|
185
|
+
def country_emoji(iso)
|
186
|
+
COUNTRY_LETTERS.values_at(*iso.chars).pack('U*')
|
187
|
+
end
|
167
188
|
end
|
168
189
|
end
|
169
190
|
end
|
data/lib/kovid/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emmanuel Hayford
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rainbow
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0
|
61
|
+
version: '3.0'
|
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: '3.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|