kovid 0.1.0 → 0.1.1

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: bd797258a0d870dacdd665e90b5d8bdae7be617545611db89f00104645ab7214
4
- data.tar.gz: b203df835d7442d22fa6fe554ea42d6be43d21fa5f4b28341ed885b16b77aecd
3
+ metadata.gz: 036bbe0bb6050bb3ecd8b931bbfef995160be952208e1ac2210ebf9d9a56a443
4
+ data.tar.gz: 90e69a301215c6d24f540f9cd7cdbdb42ea3d11bcb15d711973ec9e465e4a43d
5
5
  SHA512:
6
- metadata.gz: 2a1ff7fb4dd64645dc183f8b28fbe92cc51af4dc6193ae90a7ec5cce8283945c88829a0913c6139cbcf94d0357e9e9b243b75c5f7acad5e9e15a890723ad95ef
7
- data.tar.gz: b3f1acbdcd9a2b0b29754dd6772647789abcf659d2363bab3484cf8651df341902b3401436971af35ef0df0ac1c6f574320f3f371bd5d10327e5d49a56de8b8e
6
+ metadata.gz: 9ddbb4ebc9211a7e29234c9bd87078f7131975418015962e46099f5c3c431c6f3742d170afcfbe629a73760d609443c37850e4f54b3a5a6b8f130dde282fc90c
7
+ data.tar.gz: 4d5e1830d51eb65b577c70e8d45a124745d6d10c56077fa0e7c793086f798a792c9766ba46bf2ee487c79c4fe6a7bb2710ff2324d7515a8137a23dbcad641b18
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ .DS_Store
@@ -2,11 +2,30 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  kovid (0.1.0)
5
+ httparty
6
+ terminal-table
7
+ thor
8
+ typhoeus
5
9
 
6
10
  GEM
7
11
  remote: https://rubygems.org/
8
12
  specs:
13
+ coderay (1.1.2)
9
14
  diff-lcs (1.3)
15
+ ethon (0.12.0)
16
+ ffi (>= 1.3.0)
17
+ ffi (1.12.2)
18
+ httparty (0.18.0)
19
+ mime-types (~> 3.0)
20
+ multi_xml (>= 0.5.2)
21
+ method_source (0.9.2)
22
+ mime-types (3.3.1)
23
+ mime-types-data (~> 3.2015)
24
+ mime-types-data (3.2019.1009)
25
+ multi_xml (0.6.0)
26
+ pry (0.12.2)
27
+ coderay (~> 1.1.0)
28
+ method_source (~> 0.9.0)
10
29
  rake (12.3.3)
11
30
  rspec (3.9.0)
12
31
  rspec-core (~> 3.9.0)
@@ -21,12 +40,19 @@ GEM
21
40
  diff-lcs (>= 1.2.0, < 2.0)
22
41
  rspec-support (~> 3.9.0)
23
42
  rspec-support (3.9.2)
43
+ terminal-table (1.8.0)
44
+ unicode-display_width (~> 1.1, >= 1.1.1)
45
+ thor (1.0.1)
46
+ typhoeus (1.3.1)
47
+ ethon (>= 0.9.0)
48
+ unicode-display_width (1.7.0)
24
49
 
25
50
  PLATFORMS
26
51
  ruby
27
52
 
28
53
  DEPENDENCIES
29
54
  kovid!
55
+ pry
30
56
  rake (~> 12.0)
31
57
  rspec (~> 3.0)
32
58
 
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'kovid/cli'
3
+
4
+ Kovid::CLI.start
@@ -26,4 +26,10 @@ Gem::Specification.new do |spec|
26
26
  spec.bindir = "exe"
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
+
30
+ spec.add_dependency "thor"
31
+ spec.add_dependency "terminal-table"
32
+ spec.add_dependency "httparty"
33
+ spec.add_dependency "typhoeus"
34
+ spec.add_development_dependency "pry"
29
35
  end
@@ -1,6 +1,8 @@
1
- require "kovid/version"
1
+ # frozen_string_literal: true
2
+
3
+ require 'kovid/version'
4
+ require 'kovid/nineteen'
2
5
 
3
6
  module Kovid
4
7
  class Error < StandardError; end
5
- # Your code goes here...
6
8
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require 'kovid'
5
+
6
+ module Kovid
7
+ class CLI < Thor
8
+ desc 'whatis', 'Defines COVID-19'
9
+ def whatis
10
+ Kovid::Nineteen.whatis
11
+ end
12
+
13
+ desc 'country', 'Returns data on country'
14
+ method_option :full, aliases: '-f'
15
+ def country(name)
16
+ if options[:full]
17
+ Kovid::Nineteen.country_full(name)
18
+ else
19
+ Kovid::Nineteen.country(name)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'request'
4
+
5
+ module Kovid
6
+ class Nineteen
7
+ class << self
8
+ def whatis
9
+ puts 'Coronavirus disease (COVID-19) is an infectious disease caused by a new virus.'
10
+ end
11
+
12
+ def country(name)
13
+ puts Kovid::Request.by_country(name)
14
+ end
15
+
16
+ def country_full(name)
17
+ puts Kovid::Request.by_country_full(name)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'typhoeus'
4
+ require 'json'
5
+ require_relative 'tablelize'
6
+
7
+ module Kovid
8
+ class Request
9
+ BASE_URL = 'https://corona.lmao.ninja'
10
+
11
+ class << self
12
+ require 'pry'
13
+ def by_country(name)
14
+ path = "/countries/#{name}"
15
+ fetch_url = BASE_URL + path
16
+
17
+ response ||= JSON.parse(Typhoeus.get(fetch_url.to_s, cache_ttl: 3600).response_body)
18
+ Kovid::Tablelize.country_table(response)
19
+ end
20
+
21
+ def by_country_full(name)
22
+ path = "/countries/#{name}"
23
+ fetch_url = BASE_URL + path
24
+
25
+ response ||= JSON.parse(Typhoeus.get(fetch_url.to_s, cache_ttl: 3600).response_body)
26
+ Kovid::Tablelize.full_country_table(response)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'terminal-table'
4
+
5
+ module Kovid
6
+ class Tablelize
7
+ def self.country_table(data)
8
+ rows = []
9
+ rows << [data['cases'], data['deaths'], data['recovered']]
10
+ puts Terminal::Table.new(title: data['country'], headings: %w[Cases Deaths Recovered], rows: rows)
11
+ end
12
+
13
+ def self.full_country_table(data)
14
+ headings = [
15
+ 'Cases',
16
+ 'Deaths',
17
+ 'Recovered',
18
+ 'Cases Today',
19
+ 'Deaths Today',
20
+ 'Critical',
21
+ 'Cases/Million'
22
+ ]
23
+
24
+ rows = []
25
+ rows << [
26
+ data['cases'],
27
+ data['deaths'],
28
+ data['recovered'],
29
+ data['todayCases'],
30
+ data['todayDeaths'],
31
+ data['critical'],
32
+ data['casesPerOneMillion']
33
+ ]
34
+ puts Terminal::Table.new(title: data['country'],
35
+ headings: headings,
36
+ rows: rows)
37
+ end
38
+ end
39
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kovid
2
- VERSION = "0.1.0"
4
+ VERSION = '0.1.1'
3
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.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emmanuel Hayford
@@ -9,11 +9,82 @@ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
11
  date: 2020-03-20 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: terminal-table
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: httparty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: typhoeus
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
13
83
  description: Scraper to get Coronavirus data.
14
84
  email:
15
85
  - siawmensah@gmail.com
16
- executables: []
86
+ executables:
87
+ - kovid
17
88
  extensions: []
18
89
  extra_rdoc_files: []
19
90
  files:
@@ -28,8 +99,13 @@ files:
28
99
  - Rakefile
29
100
  - bin/console
30
101
  - bin/setup
102
+ - exe/kovid
31
103
  - kovid.gemspec
32
104
  - lib/kovid.rb
105
+ - lib/kovid/cli.rb
106
+ - lib/kovid/nineteen.rb
107
+ - lib/kovid/request.rb
108
+ - lib/kovid/tablelize.rb
33
109
  - lib/kovid/version.rb
34
110
  homepage: https://github.com/siaw23/kovid
35
111
  licenses: