kovid 0.2.6 → 0.2.7

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: 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