class Weese::Bus::MetroBus

MetroBus client. Used for accessing MetroBus-related WMATA APIs.

Attributes

api_key[RW]

@return [String] WMATA API key

Public Class Methods

new(api_key) click to toggle source

MetroBus client. Used for accessing MetroBus related endpoints

@param [String] api_key WMATA API key, get one at {developer.wmata.com}

# File lib/weese/bus/metro_bus.rb, line 23
def initialize(api_key)
  @api_key = api_key
end

Public Instance Methods

routes() click to toggle source

List of all bus route variants. {developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d6a WMATA Documentation}

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/metro_bus.rb, line 35
def routes
  fetch(
    Requests::Request.new(
      @api_key,
      Bus::Urls::ROUTES,
      {}
    )
  )
end
stops(radius_at_coordinates = nil) click to toggle source

Nearby bus stops based on latitude, longitude, and radius. {developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d6d WMATA Documentation}

@param [RadiusAtCoordinates] radius_at_coordinates A radius in meters around a lat/long

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/metro_bus.rb, line 55
def stops(radius_at_coordinates = nil)
  query = radius_at_coordinates ? radius_at_coordinates.to_h : {}

  fetch(
    Requests::Request.new(
      @api_key,
      Bus::Urls::STOPS,
      query
    )
  )
end