class Covid19

Ruby wrapper for covid19api.com/.

Constants

BASE_URL
STATUSES

Public Class Methods

all() click to toggle source

Warning: returns 10MB of data - use with caution.

# File lib/covid19.rb, line 16
def all
  serve_request('all')
end
cases_by_country(country, status) click to toggle source
# File lib/covid19.rb, line 48
def cases_by_country(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/country/#{country}/status/#{status}")
end
cases_by_country_live(country, status) click to toggle source
# File lib/covid19.rb, line 54
def cases_by_country_live(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/country/#{country}/status/#{status}/live")
end
cases_by_country_total(country, status) click to toggle source
# File lib/covid19.rb, line 60
def cases_by_country_total(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/total/country/#{country}/status/#{status}")
end
cases_by_day_one(country, status) click to toggle source
# File lib/covid19.rb, line 32
def cases_by_day_one(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/dayone/country/#{country}/status/#{status}")
end
cases_by_day_one_live(country, status) click to toggle source
# File lib/covid19.rb, line 38
def cases_by_day_one_live(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/dayone/country/#{country}/status/#{status}/live")
end
cases_by_day_one_total(country, status) click to toggle source
# File lib/covid19.rb, line 44
def cases_by_day_one_total(country, status)
  serve_request("/total/dayone/country/#{country}/status/#{status}")
end
cases_live_by_country_after_date( country, status, date = (DateTime.now - 1).to_s ) click to toggle source
# File lib/covid19.rb, line 72
def cases_live_by_country_after_date(
  country,
  status,
  date = (DateTime.now - 1).to_s
)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/live/country/#{country}/status/#{status}/date/#{date}")
end
cases_live_by_country_and_status(country, status) click to toggle source
# File lib/covid19.rb, line 66
def cases_live_by_country_and_status(country, status)
  return invalid_status_msg(status) unless valid_status?(status)

  serve_request("/live/country/#{country}/status/#{status}")
end
countries() click to toggle source
# File lib/covid19.rb, line 28
def countries
  serve_request('countries')
end
info() click to toggle source
# File lib/covid19.rb, line 11
def info
  serve_request('')
end
stats() click to toggle source
# File lib/covid19.rb, line 20
def stats
  serve_request('stats')
end
summary() click to toggle source
# File lib/covid19.rb, line 24
def summary
  serve_request('summary')
end

Private Class Methods

invalid_status_msg(status) click to toggle source
# File lib/covid19.rb, line 93
def invalid_status_msg(status)
  "Invalid status \"#{status.downcase}\"." \
    "Please provide one of the following statuses: #{STATUSES.join(', ')}"
end
serve_request(suffix) click to toggle source
# File lib/covid19.rb, line 84
def serve_request(suffix)
  response = HTTP.get("#{BASE_URL}/#{suffix}")
  JSON.parse(response)
end
valid_status?(status) click to toggle source
# File lib/covid19.rb, line 89
def valid_status?(status)
  STATUSES.include?(status.downcase)
end