covid 0.1.1 → 0.2.1
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/.github/workflows/gempush.yml +21 -0
- data/Gemfile.lock +3 -3
- data/README.md +26 -6
- data/covid.gemspec +1 -1
- data/lib/covid/version.rb +1 -1
- data/lib/covid.rb +31 -4
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45031ff90f434962a6dcbadd4637e70aa37d6d71887a2c4853a1264431b2d85f
|
4
|
+
data.tar.gz: 180e814b23cdf9741db5c18350b9cde087c633d57f0aa43fcb749e153145858c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddbf567e6cd6f1a776b79c9c399760616b7afa7c57f569c2a9cc84a08879919e29b68974a68ecb77d016f644960c9f05cc96c44a5d7f8d6b52d81e55dc77006b
|
7
|
+
data.tar.gz: b891a1c3b7850c4edca62df515fcd987619c8db6aa325aaa070a65239e93411bc4b97135a39ad5ecaf7ae3bf62e9d49bc7349cff6d4abcd22c5fd546b9bc85f0
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
schedule:
|
7
|
+
- cron: '0 16 * * Sat'
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
name: Smoke Test
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up Ruby 2.6
|
15
|
+
uses: actions/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 2.6.x
|
18
|
+
- name: Install dependencies
|
19
|
+
run: bundle install
|
20
|
+
- name: Run smoke test
|
21
|
+
run: rake
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
covid (0.
|
4
|
+
covid (0.2.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -26,10 +26,10 @@ PLATFORMS
|
|
26
26
|
ruby
|
27
27
|
|
28
28
|
DEPENDENCIES
|
29
|
-
bundler (
|
29
|
+
bundler (>= 2.3.5)
|
30
30
|
covid!
|
31
31
|
rake (~> 13.0)
|
32
32
|
rspec (~> 3.0)
|
33
33
|
|
34
34
|
BUNDLED WITH
|
35
|
-
|
35
|
+
2.3.5
|
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# Covid
|
2
2
|
|
3
|
-
|
3
|
+
Ruby wrapper around [Johns Hopkins dataset](https://github.com/CSSEGISandData/COVID-19) for COVID-19.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem
|
10
|
+
gem "covid"
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -21,18 +21,38 @@ Or install it yourself as:
|
|
21
21
|
## Usage
|
22
22
|
|
23
23
|
```
|
24
|
-
$
|
24
|
+
$ Covid::Nineteen.confirmed
|
25
|
+
$ Covid::Nineteen.deaths
|
26
|
+
$ Covid::Nineteen.recovered
|
25
27
|
```
|
26
28
|
|
29
|
+
Any result can be filtered by country/region and/or state/province like so:
|
27
30
|
```
|
28
|
-
$
|
31
|
+
$ confirmed = Covid::Nineteen.confirmed
|
32
|
+
$ confirmed.country("Australia")
|
33
|
+
$ confirmed.region("Australia")
|
34
|
+
$ confirmed.state("Victoria")
|
35
|
+
$ confirmed.province("Victoria")
|
36
|
+
$ confirmed.country("Australia").province("Victoria")
|
29
37
|
```
|
30
38
|
|
39
|
+
The data is structured as such:
|
31
40
|
```
|
32
|
-
$
|
41
|
+
$ pp Covid::Nineteen.confirmed
|
42
|
+
[
|
43
|
+
{
|
44
|
+
"Province/State"=>nil,
|
45
|
+
"Country/Region"=>"Thailand",
|
46
|
+
"Lat"=>"15",
|
47
|
+
"Long"=>"101",
|
48
|
+
"1/22/20"=>"2",
|
49
|
+
"1/23/20"=>"3",
|
50
|
+
"1/24/20"=>"5"
|
51
|
+
},
|
52
|
+
{ ... }
|
53
|
+
]
|
33
54
|
```
|
34
55
|
|
35
|
-
|
36
56
|
## Development
|
37
57
|
|
38
58
|
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.
|
data/covid.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
35
35
|
spec.require_paths = ["lib"]
|
36
36
|
|
37
|
-
spec.add_development_dependency "bundler", "
|
37
|
+
spec.add_development_dependency "bundler", ">= 2.3.5"
|
38
38
|
spec.add_development_dependency "rake", "~> 13.0"
|
39
39
|
spec.add_development_dependency "rspec", "~> 3.0"
|
40
40
|
end
|
data/lib/covid/version.rb
CHANGED
data/lib/covid.rb
CHANGED
@@ -7,18 +7,37 @@ require "net/http"
|
|
7
7
|
|
8
8
|
module Covid
|
9
9
|
class Error < StandardError; end
|
10
|
+
class Result < Array
|
11
|
+
def country(name)
|
12
|
+
filter("Country/Region", name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def state(name)
|
16
|
+
filter("Province/State", name)
|
17
|
+
end
|
18
|
+
|
19
|
+
alias_method :region, :country
|
20
|
+
alias_method :province, :state
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def filter(key, name)
|
25
|
+
self.class.new(select { |result| result[key] == name })
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
10
29
|
class Nineteen
|
11
30
|
BASE_URI = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/"
|
12
|
-
CONFIRMED = "
|
13
|
-
DEATHS = "
|
14
|
-
RECOVERED = "
|
31
|
+
CONFIRMED = "time_series_covid19_confirmed_global.csv"
|
32
|
+
DEATHS = "time_series_covid19_deaths_global.csv"
|
33
|
+
RECOVERED = "time_series_covid19_recovered_global.csv"
|
15
34
|
|
16
35
|
def initialize(path)
|
17
36
|
@path = path
|
18
37
|
end
|
19
38
|
|
20
39
|
def run
|
21
|
-
|
40
|
+
Result.new(parsed_json)
|
22
41
|
end
|
23
42
|
|
24
43
|
def self.confirmed
|
@@ -39,10 +58,18 @@ module Covid
|
|
39
58
|
CSV.parse(response, headers: true)
|
40
59
|
end
|
41
60
|
|
61
|
+
def raw
|
62
|
+
csv.map(&:to_h).to_json
|
63
|
+
end
|
64
|
+
|
42
65
|
def response
|
43
66
|
Net::HTTP.get(uri)
|
44
67
|
end
|
45
68
|
|
69
|
+
def parsed_json
|
70
|
+
JSON.parse(raw)
|
71
|
+
end
|
72
|
+
|
46
73
|
def uri
|
47
74
|
URI(BASE_URI + @path)
|
48
75
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: covid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Thom
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.3.5
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.3.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,13 +52,14 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- jonathan.thom1990@gmail.com
|
58
58
|
executables: []
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- ".github/workflows/gempush.yml"
|
62
63
|
- ".gitignore"
|
63
64
|
- ".rspec"
|
64
65
|
- ".travis.yml"
|
@@ -79,7 +80,7 @@ metadata:
|
|
79
80
|
allowed_push_host: https://rubygems.org
|
80
81
|
homepage_uri: https://github.com/jonathanwthom/covid
|
81
82
|
source_code_uri: https://github.com/jonathanwthom/covid
|
82
|
-
post_install_message:
|
83
|
+
post_install_message:
|
83
84
|
rdoc_options: []
|
84
85
|
require_paths:
|
85
86
|
- lib
|
@@ -94,8 +95,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
95
|
- !ruby/object:Gem::Version
|
95
96
|
version: '0'
|
96
97
|
requirements: []
|
97
|
-
rubygems_version: 3.
|
98
|
-
signing_key:
|
98
|
+
rubygems_version: 3.2.32
|
99
|
+
signing_key:
|
99
100
|
specification_version: 4
|
100
101
|
summary: JSON wrapper around Johns Hopkins COVID-19 dataset
|
101
102
|
test_files: []
|