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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdb8dfafa7894028f398f20f933b498c405d56bfc3ef4a5d7a339a83276a7d6d
4
- data.tar.gz: 30eb0c8ce98ee989185cf81f8bba72f5c993bdc6a44a229b7ba2a9131e31b1ae
3
+ metadata.gz: 5c76d29e21beeda2615b7b70e435dbe253674a539fc8be8a30f6cd68eb7d3cf8
4
+ data.tar.gz: 5a94f5237aaaf71800fbaf186bfc0d3a7ffdeb86d4448f2c8b15fb37126f0d2d
5
5
  SHA512:
6
- metadata.gz: bdf67215185377506876eb06937b1e9592c4e29d984b1f8458296acc3d23f1ff6162f64864ebb430906a1e70e3005d80ff226fc51c7eb8ecb9a07164dd9019f1
7
- data.tar.gz: d7d350545f13bd7ebee3987e0af9a3d23968f229ef7c87d70da5536bdcb5064525093988ab1f5ee16b7bf3b07d25c164368e742b5bcc075b71768d2a98b08b47
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)
5
- colorize (~> 0.8)
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.2
92
+ 2.1.4
data/README.md CHANGED
@@ -15,6 +15,8 @@ Before installing:
15
15
 
16
16
  ✌️ Run `gem install kovid`
17
17
 
18
+ UPDATE often with `gem update kovid`
19
+
18
20
 
19
21
 
20
22
  ## ⚒️ Usage
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 "colorize", "~> 0.8"
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 'colorize'
3
+ require 'rainbow'
4
4
 
5
5
  class String
6
6
  def paint_white
7
- colorize(:white).colorize(background: :black).colorize(mode: :bold)
7
+ Rainbow(self).white.bg(:black).bold
8
8
  end
9
9
 
10
10
  def paint_red
11
- colorize(:red).colorize(background: :black).colorize(mode: :bold)
11
+ Rainbow(self).red.bg(:black).bold
12
12
  end
13
13
 
14
14
  def paint_green
15
- colorize(:green).colorize(background: :black).colorize(mode: :bold)
15
+ Rainbow(self).green.bg(:black).bold
16
16
  end
17
17
 
18
18
  def paint_yellow
19
- colorize(:yellow).colorize(background: :black).colorize(mode: :bold)
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
- url = COUNTRIES_PATH + "/#{country_name}"
77
+ country_url = COUNTRIES_PATH + "/#{country_name}"
77
78
 
78
- JSON.parse(Typhoeus.get(url, cache_ttl: 900).response_body)
79
+ JSON.parse(Typhoeus.get(country_url, cache_ttl: 900).response_body)
79
80
  end
80
81
 
81
82
  def fetch_state(state)
82
- url = UriBuilder.new('/states').url
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
@@ -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
- Terminal::Table.new(title: data['country'].upcase, headings: headings, rows: rows)
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
- Terminal::Table.new(title: data['country'].upcase,
54
- headings: headings,
55
- rows: rows)
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['recovered'], state['active']]
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kovid
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.7'
5
5
  end
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.6
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-24 00:00:00.000000000 Z
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: colorize
56
+ name: rainbow
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.8'
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.8'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement