kovid 0.1.9 β†’ 0.1.10

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: 97ca9cfffdcd5f3a9f1fefe000e304ebed0fb015ac6ecca7f1e0740f658d2706
4
- data.tar.gz: aab2c25abd4c5dbc35b0cd020d210dd8e7ed9057545dd9dd11bae77c751cc891
3
+ metadata.gz: d88a60762b84316b69f47dc5ba6b5fe8e00369ab5e98ad96685e49d34e833d5d
4
+ data.tar.gz: d535c09d1ce0eb0d14ee197af7e6b7dc7c771ba147e9863b0293c0c4362f6855
5
5
  SHA512:
6
- metadata.gz: c0ab48dd5eab1558eb352062d6b9f4351e92402741b641114dbf9928ccc35f0f04c965da6d53401fa05041cc75b8aa4cc65cd8dafeffc1d1fb1f7c9a1db79702
7
- data.tar.gz: 54caa7825986c4b5f42d93b22e2201d4690cd3a9cb3059ded43c16fb12649c6c77c5ec59f7ea87d931329d286f14da9056756412d9d4a068a9c43908d2a96abb
6
+ metadata.gz: bfb2b119112c48f59c10d63b03949a589fc5dbdedaa9527021047f1840362108383ef9a6faae072dc915e9e28690d4953c21283a955ade2cb419e8e4f93f3844
7
+ data.tar.gz: b01e98ef4d23107e9d3922adab7a7b715ff06405ee3891eb485e4df4f31f375c62de4b6fcd577a83c17a558d5ebdc799674d864e0fc226ec6671e430c7e734ac
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kovid (0.1.4)
4
+ kovid (0.1.9)
5
5
  terminal-table
6
6
  thor
7
7
  typhoeus
@@ -38,6 +38,7 @@ GEM
38
38
  cucumber-tag_expressions (1.1.1)
39
39
  cucumber-wire (0.0.1)
40
40
  diff-lcs (1.3)
41
+ docile (1.3.2)
41
42
  ethon (0.12.0)
42
43
  ffi (>= 1.3.0)
43
44
  ffi (1.12.2)
@@ -62,6 +63,10 @@ GEM
62
63
  diff-lcs (>= 1.2.0, < 2.0)
63
64
  rspec-support (~> 3.9.0)
64
65
  rspec-support (3.9.2)
66
+ simplecov (0.18.5)
67
+ docile (~> 1.1)
68
+ simplecov-html (~> 0.11)
69
+ simplecov-html (0.12.2)
65
70
  terminal-table (1.8.0)
66
71
  unicode-display_width (~> 1.1, >= 1.1.1)
67
72
  thor (1.0.1)
@@ -79,6 +84,7 @@ DEPENDENCIES
79
84
  pry
80
85
  rake (~> 12.0)
81
86
  rspec (~> 3.0)
87
+ simplecov
82
88
 
83
89
  BUNDLED WITH
84
90
  2.1.2
data/README.md CHANGED
@@ -32,6 +32,9 @@ You can run `kovid --help` to see full list of available commands.
32
32
  * `kovid check ghana`
33
33
  * `kovid check ghana -f` OR `kovid check ghana --full`
34
34
 
35
+ πŸ‡ΊπŸ‡Έ You can fetch US state-specific data with:
36
+ * `kovid state colorado` OR `kovid state "north carolina"`
37
+
35
38
  **Comparing**
36
39
  * `kovid compare ghana poland` (sorts by cases DESC)
37
40
  * `kovid compare ghana poland -f` OR `kovid compare ghana poland --full` (sorts by cases DESC)
@@ -70,6 +73,12 @@ To compare a countries stats with a full table:
70
73
 
71
74
  ![kovid](https://i.gyazo.com/7ce86c5e93d549e1412fb6104a1d7877.png "Covid data.")
72
75
 
76
+ To fetch state-specific data run:
77
+
78
+ `kovid state colorado`
79
+
80
+ ![kovid](https://i.gyazo.com/133046d9d31c20a8bad1a05b46ba4d3e.png "Covid data.")
81
+
73
82
  To check for total figures:
74
83
 
75
84
  `kovid cases`
@@ -80,7 +89,8 @@ To check for total figures:
80
89
 
81
90
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
82
91
 
83
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
92
+ To install this gem onto your local machine, run `bundle exec rake install`.
93
+
84
94
 
85
95
  ## 🀲 Contributing
86
96
 
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "pry"
35
35
  spec.add_development_dependency "cucumber"
36
36
  spec.add_development_dependency "aruba"
37
+ spec.add_development_dependency "simplecov"
37
38
  end
@@ -4,5 +4,6 @@ require 'kovid/version'
4
4
  require 'kovid/nineteen'
5
5
 
6
6
  module Kovid
7
+ require 'pry'
7
8
  class Error < StandardError; end
8
9
  end
@@ -7,32 +7,37 @@ module Kovid
7
7
  class CLI < Thor
8
8
  desc 'define', 'Defines COVID-19'
9
9
  def define
10
- Kovid::Nineteen.whatis
10
+ puts Kovid::Nineteen.whatis
11
11
  end
12
12
 
13
13
  desc 'check COUNTRY', 'Returns reported data on provided country'
14
14
  method_option :full, aliases: '-f'
15
15
  def check(name)
16
16
  if options[:full]
17
- Kovid::Nineteen.country_full(name)
17
+ puts Kovid::Nineteen.country_full(name)
18
18
  else
19
- Kovid::Nineteen.country(name)
19
+ puts Kovid::Nineteen.country(name)
20
20
  end
21
21
  end
22
22
 
23
+ desc 'state STATE', 'Return reported data on provided state'
24
+ def state(state)
25
+ puts Kovid::Nineteen.state(state)
26
+ end
27
+
23
28
  desc 'compare COUNTRY COUNTRY', 'Returns full comparison table for given countries. Accepts multiple countries'
24
29
  def compare(*name)
25
30
  if name[-1] == '-f' || name[-1] == '--full'
26
31
  name = name.reverse.drop(1).reverse
27
- Kovid::Nineteen.country_comparison_full(name)
32
+ puts Kovid::Nineteen.country_comparison_full(name)
28
33
  else
29
- Kovid::Nineteen.country_comparison(name)
34
+ puts Kovid::Nineteen.country_comparison(name)
30
35
  end
31
36
  end
32
37
 
33
38
  desc 'cases', 'Returns total number of cases, deaths and recoveries'
34
39
  def cases
35
- Kovid::Nineteen.cases
40
+ puts Kovid::Nineteen.cases
36
41
  end
37
42
  end
38
43
  end
@@ -6,33 +6,31 @@ module Kovid
6
6
  class Nineteen
7
7
  class << self
8
8
  def whatis
9
- definition = <<-TEXT
10
- Coronavirus disease 2019 (COVID-19) is an infectious disease caused by severe acute
11
- respiratory syndrome coronavirus 2 (SARS-CoV-2).
12
- The disease was first identified in 2019 in Wuhan, China, and has since spread globally,
13
- resulting in the 2019–20 coronavirus pandemic.
14
- TEXT
15
- puts definition
9
+ 'Coronavirus disease 2019 (COVID-19) is an infectious disease caused by severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2).'
16
10
  end
17
11
 
18
12
  def country(name)
19
- puts Kovid::Request.by_country(name)
13
+ Kovid::Request.by_country(name)
20
14
  end
21
15
 
22
16
  def country_full(name)
23
- puts Kovid::Request.by_country_full(name)
17
+ Kovid::Request.by_country_full(name)
24
18
  end
25
19
 
26
- def country_comparison(name)
27
- puts Kovid::Request.by_country_comparison(name)
20
+ def state(state)
21
+ Kovid::Request.state(state)
28
22
  end
29
23
 
30
- def country_comparison_full(name)
31
- puts Kovid::Request.by_country_comparison_full(name)
24
+ def country_comparison(names_array)
25
+ Kovid::Request.by_country_comparison(names_array)
26
+ end
27
+
28
+ def country_comparison_full(names_array)
29
+ Kovid::Request.by_country_comparison_full(names_array)
32
30
  end
33
31
 
34
32
  def cases
35
- puts Kovid::Request.cases
33
+ Kovid::Request.cases
36
34
  end
37
35
  end
38
36
  end
@@ -9,7 +9,6 @@ module Kovid
9
9
  BASE_URL = 'https://corona.lmao.ninja'
10
10
 
11
11
  class << self
12
- require 'pry'
13
12
  def by_country(country_name)
14
13
  response = fetch_country(country_name)
15
14
 
@@ -26,6 +25,12 @@ module Kovid
26
25
  no_case_in(country_name)
27
26
  end
28
27
 
28
+ def state(state)
29
+ response = fetch_state(state)
30
+
31
+ Kovid::Tablelize.full_state_table(response)
32
+ end
33
+
29
34
  def by_country_comparison(list)
30
35
  array = fetch_countries(list)
31
36
  Kovid::Tablelize.compare_countries_table(array)
@@ -50,7 +55,7 @@ module Kovid
50
55
  rows = []
51
56
  rows << ["Thankfully, there are no reported cases in #{country.capitalize}!"]
52
57
  table = Terminal::Table.new headings: [country.capitalize.to_s], rows: rows
53
- puts table
58
+ table
54
59
  end
55
60
 
56
61
  def fetch_countries(list)
@@ -72,6 +77,15 @@ module Kovid
72
77
 
73
78
  JSON.parse(Typhoeus.get(fetch_url.to_s, cache_ttl: 3600).response_body)
74
79
  end
80
+
81
+ def fetch_state(state)
82
+ path = '/states'
83
+ fetch_url = BASE_URL + path
84
+
85
+ states_array = JSON.parse(Typhoeus.get(fetch_url.to_s, cache_ttl: 3600).response_body)
86
+
87
+ states_array.select { |state_name| state_name['state'] == state.split.map(&:capitalize).join(' ') }.first
88
+ end
75
89
  end
76
90
  end
77
91
  end
@@ -9,7 +9,7 @@ module Kovid
9
9
  headings = %w[Cases Deaths Recovered]
10
10
  rows = []
11
11
  rows << [data['cases'], data['deaths'], data['recovered']]
12
- puts Terminal::Table.new(title: data['country'], headings: headings, rows: rows)
12
+ Terminal::Table.new(title: data['country'], headings: headings, rows: rows)
13
13
  end
14
14
 
15
15
  def full_country_table(data)
@@ -33,9 +33,16 @@ module Kovid
33
33
  data['critical'],
34
34
  data['casesPerOneMillion']
35
35
  ]
36
- puts Terminal::Table.new(title: data['country'],
37
- headings: headings,
38
- rows: rows)
36
+ Terminal::Table.new(title: data['country'],
37
+ headings: headings,
38
+ rows: rows)
39
+ end
40
+
41
+ def full_state_table(state)
42
+ headings = ['Cases', 'Cases Today', 'Deaths', 'Deaths Today', 'Reovered', 'Active']
43
+ rows = []
44
+ rows << [state['cases'], state['todayCases'], state['deaths'], state['todayDeaths'], state['recovered'], state['active']]
45
+ Terminal::Table.new(title: state['state'], headings: headings, rows: rows)
39
46
  end
40
47
 
41
48
  def compare_countries_table(data)
@@ -46,7 +53,7 @@ module Kovid
46
53
  rows << [country['country'], country['cases'], country['deaths'], country['recovered']]
47
54
  end
48
55
 
49
- puts Terminal::Table.new(headings: headings, rows: rows)
56
+ Terminal::Table.new(headings: headings, rows: rows)
50
57
  end
51
58
 
52
59
  def compare_countries_table_full(data)
@@ -75,7 +82,7 @@ module Kovid
75
82
  ]
76
83
  end
77
84
 
78
- puts Terminal::Table.new(headings: headings, rows: rows)
85
+ Terminal::Table.new(headings: headings, rows: rows)
79
86
  end
80
87
 
81
88
  def cases(cases)
@@ -84,7 +91,7 @@ module Kovid
84
91
  rows = []
85
92
 
86
93
  rows << [cases['cases'], cases['deaths'], cases['recovered']]
87
- puts Terminal::Table.new(title: 'Total # of incidents', headings: headings, rows: rows)
94
+ Terminal::Table.new(title: 'Total # of incidents', headings: headings, rows: rows)
88
95
  end
89
96
  end
90
97
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kovid
4
- VERSION = '0.1.9'
4
+ VERSION = '0.1.10'
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.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emmanuel Hayford
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: A CLI tool to fetch and compare the 2019 coronavirus pandemic numbers.
98
112
  email:
99
113
  - siawmensah@gmail.com