phl-covid-testing 0.1.0 → 0.1.3
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/.gitignore +13 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +3 -1
- data/bin/phl-covid-testing +5 -0
- data/lib/concerns/Displayable.rb +21 -0
- data/lib/concerns/Findable.rb +70 -0
- data/lib/concerns/Inputable.rb +84 -0
- data/lib/{environment.rb → phl-covid-testing.rb} +0 -0
- data/lib/phl_covid_testing/api.rb +69 -0
- data/lib/phl_covid_testing/cli.rb +16 -0
- data/lib/phl_covid_testing/testing_location.rb +26 -0
- data/lib/phl_covid_testing/version.rb +3 -0
- data/phl_covid_testing.gemspec +5 -14
- metadata +136 -11
- data/bin/run +0 -6
- data/phl-covid-testing.gemspec +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1099d7794f0210016332454fad65e741ddf16858a3ee54464bf80d75cc3f9b8
|
4
|
+
data.tar.gz: 60d63a63ddef45dd7b6c37c117ce3e482fcfb30403b275ba94881e70f325a79f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e559d809a6303d9d4dbaaf029aa6a85a89d6fc499183079474df7526e7894d87b089ddedc3874319e8101b83ef05bf6f335a0c990ecf9ba92e9760af735887f5
|
7
|
+
data.tar.gz: b43844b91421ac0b05cce980202f625f639a2ca6ce3c0c667612a8f5e0114c70770eb8c8718451abfb02b9a53a3860c755690076802ca9ffb6cf31e373b368dc
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -6,6 +6,7 @@ GEM
|
|
6
6
|
json (2.5.1)
|
7
7
|
method_source (1.0.0)
|
8
8
|
open-uri (0.1.0)
|
9
|
+
phl-covid-testing (0.1.0)
|
9
10
|
pry (0.13.1)
|
10
11
|
coderay (~> 1.1)
|
11
12
|
method_source (~> 1.0)
|
@@ -17,7 +18,8 @@ DEPENDENCIES
|
|
17
18
|
colorize
|
18
19
|
json
|
19
20
|
open-uri
|
21
|
+
phl-covid-testing
|
20
22
|
pry
|
21
23
|
|
22
24
|
BUNDLED WITH
|
23
|
-
2.
|
25
|
+
2.1.2
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Displayable
|
2
|
+
module InstanceMethods
|
3
|
+
def display_all
|
4
|
+
PHLCovidTesting::TestingLocation.all.each.with_index(1) {|x, i| puts "\n#{i}. #{x.name}"}
|
5
|
+
all_sites = PHLCovidTesting::TestingLocation.all
|
6
|
+
puts "\nEnter a number to learn more about a testing location, 'main' to return to the main menu, or 'exit' to end the program.\n".colorize(:yellow)
|
7
|
+
get_input_all(all_sites)
|
8
|
+
end
|
9
|
+
|
10
|
+
def display_detail(result)
|
11
|
+
puts "\n------------------------------------------------------------------------------------------"
|
12
|
+
puts "Name:".colorize(:blue) + " #{result.name}"
|
13
|
+
puts "Address:".colorize(:blue) + " #{result.address}" unless result.address == nil
|
14
|
+
puts "Phone Number:".colorize(:blue) + " #{result.phone}" unless result.phone == nil
|
15
|
+
puts "Access Type:".colorize(:blue) + " #{result.access_type}" unless result.access_type == nil
|
16
|
+
puts "Facility Type:".colorize(:blue) + " #{result.facility_type}" unless result.facility_type == nil
|
17
|
+
puts "Referral Needed?".colorize(:blue) + " #{result.referral}" unless result.referral == nil
|
18
|
+
puts "------------------------------------------------------------------------------------------\n"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Findable
|
2
|
+
module InstanceMethods
|
3
|
+
def search_by_zipcode(input)
|
4
|
+
results = PHLCovidTesting::TestingLocation.all.map.with_index(1) do |x, i|
|
5
|
+
x if x.zipcode.to_s == input
|
6
|
+
end.compact
|
7
|
+
|
8
|
+
if results.length == 0
|
9
|
+
puts "\nNo match found. Please try again.\n".colorize(:red)
|
10
|
+
get_input_main
|
11
|
+
elsif results.length == 1
|
12
|
+
puts display_detail(results[0])
|
13
|
+
puts "\nAll results displayed. Returning to main menu...\n".colorize(:green)
|
14
|
+
get_input_main_options
|
15
|
+
else
|
16
|
+
results.each.with_index(1) {|x, i| puts "\n#{i}. #{x.name}"}
|
17
|
+
puts "\nEnter another number to see location details, 'all' to see the full list of locations, 'main' to return to the main menu,\nor 'exit' to end the program.\n".colorize(:yellow)
|
18
|
+
get_input_sub(results)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def search_by_name(input)
|
23
|
+
results = []
|
24
|
+
PHLCovidTesting::TestingLocation.all.each.with_index(1) do |x, i|
|
25
|
+
results << x if x.name.downcase.include?(input)
|
26
|
+
end
|
27
|
+
|
28
|
+
if results.length == 0
|
29
|
+
puts "\nNo match found. Please try again.\n".colorize(:red)
|
30
|
+
get_input_main
|
31
|
+
elsif results.length == 1
|
32
|
+
puts display_detail(results[0])
|
33
|
+
puts "\nAll results displayed. Returning to main menu...\n".colorize(:green)
|
34
|
+
get_input_main_options
|
35
|
+
else
|
36
|
+
results.each.with_index(1) {|x, i| puts "\n#{i}. #{x.name}"}
|
37
|
+
puts "\nEnter another number to see location details, 'all' to see the full list of locations, 'main' to return to the main menu,\nor 'exit' to end the program.\n".colorize(:yellow)
|
38
|
+
get_input_sub(results)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def search_by_name_or_zipcode(input)
|
43
|
+
if input =~ /\d{5}/
|
44
|
+
search_by_zipcode(input)
|
45
|
+
else
|
46
|
+
search_by_name(input)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def search_by_access(input)
|
51
|
+
results = []
|
52
|
+
PHLCovidTesting::TestingLocation.all.each.with_index(1) do |x, i|
|
53
|
+
results << x if x.access_type.downcase.include?(input)
|
54
|
+
end
|
55
|
+
|
56
|
+
if results.length == 0
|
57
|
+
puts "\nNo match found. Please try again.\n".colorize(:red)
|
58
|
+
get_input_main
|
59
|
+
elsif results.length == 1
|
60
|
+
puts display_detail(results[0])
|
61
|
+
puts "\nAll results displayed. Returning to main menu...\n".colorize(:green)
|
62
|
+
get_input_main_options
|
63
|
+
else
|
64
|
+
results.each.with_index(1) {|x, i| puts "\n#{i}. #{x.name}"}
|
65
|
+
puts "\nEnter another number to see location details, 'all' to see the full list of locations, 'main' to return to the main menu,\nor 'exit' to end the program.\n".colorize(:yellow)
|
66
|
+
get_input_sub(results)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Inputable
|
2
|
+
module InstanceMethods
|
3
|
+
def get_input_main_options
|
4
|
+
input = nil
|
5
|
+
puts "\nYou can search for a COVID-19 testing location in Philadelphia by:".colorize(:yellow)
|
6
|
+
puts " - Searching by name".colorize(:yellow)
|
7
|
+
puts " - Entering a zip code".colorize(:yellow)
|
8
|
+
puts " - Entering 'walk' to see all walk-up locations".colorize(:yellow)
|
9
|
+
puts " - Entering 'drive' to see all drive-thru locations".colorize(:yellow)
|
10
|
+
puts " - Entering 'all' to see all testing locations".colorize(:yellow)
|
11
|
+
puts " - Or 'exit' to end the program.\n".colorize(:yellow)
|
12
|
+
while input == nil
|
13
|
+
input = gets.strip.downcase
|
14
|
+
if input == "exit"
|
15
|
+
puts "\nGoodbye!\n".colorize(:green)
|
16
|
+
elsif input == "all"
|
17
|
+
display_all
|
18
|
+
elsif input == "walk" || input == "drive"
|
19
|
+
search_by_access(input)
|
20
|
+
else
|
21
|
+
search_by_name_or_zipcode(input)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_input_main
|
27
|
+
input = nil
|
28
|
+
while input == nil
|
29
|
+
input = gets.strip.downcase
|
30
|
+
if input == "exit"
|
31
|
+
puts "\nGoodbye!\n".colorize(:green)
|
32
|
+
elsif input == "all"
|
33
|
+
display_all
|
34
|
+
elsif input.include?("walk") || input.include?("drive")
|
35
|
+
search_by_access(input)
|
36
|
+
else
|
37
|
+
search_by_name_or_zipcode(input)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_input_sub(result_array)
|
43
|
+
input = nil
|
44
|
+
while input == nil
|
45
|
+
input = gets.strip.downcase
|
46
|
+
if input == "exit"
|
47
|
+
puts "\nGoodbye!\n".colorize(:green)
|
48
|
+
elsif input == "main"
|
49
|
+
get_input_main_options
|
50
|
+
elsif input == "all"
|
51
|
+
display_all
|
52
|
+
elsif !result_array.include?(result_array[input.to_i - 1])
|
53
|
+
puts "\nNo match found. Please try again.\n".colorize(:red)
|
54
|
+
get_input_sub(result_array)
|
55
|
+
else
|
56
|
+
display_detail(result_array[input.to_i - 1])
|
57
|
+
puts "\nEnter another number to see location details, 'all' to see the full list, 'main' to return to the main menu,\nor 'exit' to end the program.\n".colorize(:yellow)
|
58
|
+
get_input_sub(result_array)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def get_input_all(all_sites)
|
64
|
+
input = nil
|
65
|
+
while input == nil
|
66
|
+
input = gets.strip.downcase
|
67
|
+
if input == "exit"
|
68
|
+
puts "\nGoodbye!\n".colorize(:green)
|
69
|
+
elsif input == "main"
|
70
|
+
get_input_main_options
|
71
|
+
elsif !all_sites.include?(all_sites[input.to_i - 1])
|
72
|
+
puts "\nNo match found. Please try again.\n".colorize(:red)
|
73
|
+
get_input_all(all_sites)
|
74
|
+
elsif input == "all"
|
75
|
+
display_all
|
76
|
+
else
|
77
|
+
display_detail(all_sites[input.to_i - 1])
|
78
|
+
puts "\nEnter another number to see location details, 'all' to see the full list again, 'main' to return to the main menu,\nor 'exit' to end the program.\n".colorize(:yellow)
|
79
|
+
get_input_sub(all_sites)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
File without changes
|
@@ -0,0 +1,69 @@
|
|
1
|
+
class PHLCovidTesting::API
|
2
|
+
def self.get_data
|
3
|
+
uri = URI.parse("https://services.arcgis.com/fLeGjb7u4uXqeF9q/arcgis/rest/services/PHL_COVID19_Testing_Sites_PUBLICVIEW/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pjson&token=")
|
4
|
+
response = Net::HTTP.get_response(uri)
|
5
|
+
json = JSON.parse(response.body)
|
6
|
+
json["features"].map do |location_set|
|
7
|
+
map_data(location_set)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.map_data(location_set)
|
12
|
+
name = location_set["attributes"]["testing_location_nameoperator"]
|
13
|
+
phone = location_set["attributes"]["contact_phone_number"] || nil
|
14
|
+
street = location_set["attributes"]["testing_location_address"].strip
|
15
|
+
zipcode = location_set["attributes"]["zipcode"]
|
16
|
+
address = "#{street}, Philadelphia, PA #{zipcode}"
|
17
|
+
referral = location_set["attributes"]["Referral"].capitalize unless referral == nil
|
18
|
+
|
19
|
+
base_data = {
|
20
|
+
name: name,
|
21
|
+
phone: phone,
|
22
|
+
street: street,
|
23
|
+
zipcode: zipcode,
|
24
|
+
address: address,
|
25
|
+
referral: referral
|
26
|
+
}
|
27
|
+
|
28
|
+
map_access_type(location_set, base_data)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.map_access_type(location_set, base_data)
|
32
|
+
access_type = location_set["attributes"]["drive_thruwalk_up"]
|
33
|
+
|
34
|
+
case access_type
|
35
|
+
when "wu"
|
36
|
+
access_type = "Walk-up"
|
37
|
+
when "both"
|
38
|
+
access_type = "Drive-thru and Walk-up"
|
39
|
+
else
|
40
|
+
access_type = "Drive-thru"
|
41
|
+
end
|
42
|
+
|
43
|
+
base_data[:access_type] = access_type
|
44
|
+
|
45
|
+
map_facility_type(location_set, base_data)
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.map_facility_type(location_set, base_data)
|
49
|
+
facility_type = location_set["attributes"]["facility_type"]
|
50
|
+
|
51
|
+
case facility_type
|
52
|
+
when "fieldSite"
|
53
|
+
facility_type = "Field site"
|
54
|
+
when "urgentCare"
|
55
|
+
facility_type = "Urgent care"
|
56
|
+
when "drugstore"
|
57
|
+
facility_type = "Drug store"
|
58
|
+
when "phmcHC"
|
59
|
+
facility_type = "PHMC health center"
|
60
|
+
when "cityHC"
|
61
|
+
facility_type = "City health center"
|
62
|
+
else
|
63
|
+
facility_type = facility_type.capitalize
|
64
|
+
end
|
65
|
+
|
66
|
+
base_data[:facility_type] = facility_type
|
67
|
+
base_data
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class PHLCovidTesting::CLI
|
2
|
+
include Findable::InstanceMethods
|
3
|
+
include Displayable::InstanceMethods
|
4
|
+
include Inputable::InstanceMethods
|
5
|
+
|
6
|
+
def call
|
7
|
+
create_sites
|
8
|
+
puts "\nWelcome to the Philadelphia COVID-19 Testing Finder!\nAll data provided by OpenDataPhilly at: https://www.opendataphilly.org/dataset/covid-19-test-sites".colorize(:yellow)
|
9
|
+
get_input_main_options
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_sites
|
13
|
+
hash = PHLCovidTesting::API.get_data
|
14
|
+
PHLCovidTesting::TestingLocation.create_from_collection(hash)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class PHLCovidTesting::TestingLocation
|
2
|
+
attr_accessor :name, :phone, :street, :zipcode, :address, :access_type, :facility_type, :referral
|
3
|
+
|
4
|
+
include Findable::InstanceMethods
|
5
|
+
include Displayable::InstanceMethods
|
6
|
+
include Inputable::InstanceMethods
|
7
|
+
|
8
|
+
@@all = []
|
9
|
+
|
10
|
+
def initialize(hash)
|
11
|
+
hash.each do |k, v|
|
12
|
+
self.send(("#{k}="), v)
|
13
|
+
end
|
14
|
+
@@all << self
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.create_from_collection(array)
|
18
|
+
array.each do |hash|
|
19
|
+
PHLCovidTesting::TestingLocation.new(hash)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.all
|
24
|
+
@@all
|
25
|
+
end
|
26
|
+
end
|
data/phl_covid_testing.gemspec
CHANGED
@@ -4,35 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require_relative "lib/phl_covid_testing/version.rb"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "
|
7
|
+
spec.name = "phl-covid-testing"
|
8
8
|
spec.version = PHLCovidTesting::VERSION
|
9
9
|
spec.authors = ["Brian Firestone"]
|
10
10
|
spec.email = ["bfirestone2339@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = "Offers several ways to search and view details of COVID-19 testing locations in Philadelphia, PA."
|
13
|
-
spec.homepage = "https://github.com/bfirestone23/
|
13
|
+
spec.homepage = "https://github.com/bfirestone23/phl-covid-testing"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
17
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
-
if spec.respond_to?(:metadata)
|
19
|
-
spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
20
|
-
|
21
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
22
|
-
spec.metadata["source_code_uri"] = "https://github.com/bfirestone23/phl_covid_testing"
|
23
|
-
#spec.metadata["changelog_uri"] = "https://github.com/bfirestone23/phl_covid_testing"
|
24
|
-
else
|
25
|
-
raise "RubyGems 2.0 or newer is required to protect against " \
|
26
|
-
"public gem pushes."
|
27
|
-
end
|
28
18
|
|
29
19
|
# Specify which files should be added to the gem when it is released.
|
30
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
31
21
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
32
22
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
33
23
|
end
|
34
|
-
spec.bindir = "
|
35
|
-
spec.executables =
|
24
|
+
spec.bindir = "bin"
|
25
|
+
spec.executables = ["phl-covid-testing"]
|
26
|
+
# spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
36
27
|
spec.require_paths = ["lib"]
|
37
28
|
|
38
29
|
spec.add_development_dependency "bundler", "~> 2.0"
|
metadata
CHANGED
@@ -1,21 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phl-covid-testing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Firestone
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
12
|
-
dependencies:
|
11
|
+
date: 2021-06-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
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: colorize
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: open-uri
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: json
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: net/http
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
13
125
|
description:
|
14
|
-
email:
|
15
|
-
|
126
|
+
email:
|
127
|
+
- bfirestone2339@gmail.com
|
128
|
+
executables:
|
129
|
+
- phl-covid-testing
|
16
130
|
extensions: []
|
17
131
|
extra_rdoc_files: []
|
18
132
|
files:
|
133
|
+
- ".DS_Store"
|
134
|
+
- ".gitignore"
|
135
|
+
- ".rspec"
|
136
|
+
- ".travis.yml"
|
19
137
|
- CODE_OF_CONDUCT.md
|
20
138
|
- Gemfile
|
21
139
|
- Gemfile.lock
|
@@ -23,16 +141,23 @@ files:
|
|
23
141
|
- README.md
|
24
142
|
- Rakefile
|
25
143
|
- bin/console
|
26
|
-
- bin/
|
144
|
+
- bin/phl-covid-testing
|
27
145
|
- bin/setup
|
28
|
-
- lib
|
29
|
-
-
|
146
|
+
- lib/.DS_Store
|
147
|
+
- lib/concerns/Displayable.rb
|
148
|
+
- lib/concerns/Findable.rb
|
149
|
+
- lib/concerns/Inputable.rb
|
150
|
+
- lib/phl-covid-testing.rb
|
151
|
+
- lib/phl_covid_testing/api.rb
|
152
|
+
- lib/phl_covid_testing/cli.rb
|
153
|
+
- lib/phl_covid_testing/testing_location.rb
|
154
|
+
- lib/phl_covid_testing/version.rb
|
155
|
+
- phl_covid_testing-0.1.1.gem
|
30
156
|
- phl_covid_testing.gemspec
|
31
157
|
homepage: https://github.com/bfirestone23/phl-covid-testing
|
32
158
|
licenses:
|
33
159
|
- MIT
|
34
|
-
metadata:
|
35
|
-
source_code_uri: https://github.com/bfirestone23/phl-covid-testing
|
160
|
+
metadata: {}
|
36
161
|
post_install_message:
|
37
162
|
rdoc_options: []
|
38
163
|
require_paths:
|
@@ -51,6 +176,6 @@ requirements: []
|
|
51
176
|
rubygems_version: 3.0.8
|
52
177
|
signing_key:
|
53
178
|
specification_version: 4
|
54
|
-
summary:
|
179
|
+
summary: Offers several ways to search and view details of COVID-19 testing locations
|
55
180
|
in Philadelphia, PA.
|
56
181
|
test_files: []
|
data/bin/run
DELETED
data/phl-covid-testing.gemspec
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = 'phl-covid-testing'
|
5
|
-
s.version = '0.1.0'
|
6
|
-
s.licenses = ['MIT']
|
7
|
-
s.summary = "Command Line Application allowing users to search for COVID-19 testing locations in Philadelphia, PA."
|
8
|
-
s.authors = ["Brian Firestone"]
|
9
|
-
s.email = 'bfirestone2339@gmail.com'
|
10
|
-
s.files = FileList["bin/*", "lib/*", '[A-Z]*'].to_a
|
11
|
-
s.homepage = 'https://github.com/bfirestone23/phl-covid-testing'
|
12
|
-
s.metadata = { "source_code_uri" => "https://github.com/bfirestone23/phl-covid-testing" }
|
13
|
-
end
|