module Weese::Bus::RequiresRoute

These requests require a Route

Public Instance Methods

incidents(route = nil) click to toggle source

Reported bus incidents/delays for a given route. {developer.wmata.com/docs/services/54763641281d83086473f232/operations/54763641281d830c946a3d75 WMATA Documentation}

@param [String] route A Route ID

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/route.rb, line 532
def incidents(route = nil)
  query = {}

  query['Route'] = route if route

  fetch(
    Requests::Request.new(
      @api_key,
      Bus::Urls::INCIDENTS,
      query
    )
  )
end
path(route, date = nil) click to toggle source

For an optional given date, returns the set of ordered latitude/longitude points along a route variant along with the list of stops served. {developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d69 WMATA Documentation}

@param [String] route A Route ID @param [Date] date A Date

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/route.rb, line 558
def path(route, date = nil)
  query = { 'RouteID': route }

  query['Date'] = date.to_s if date

  fetch(
    Requests::Request.new(
      @api_key,
      Bus::Urls::PATH_DETAILS,
      query
    )
  )
end
positions(route = nil, radius_at_coordinates = nil) click to toggle source

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/route.rb, line 506
def positions(route = nil, radius_at_coordinates = nil)
  query = {}

  query['Route'] = route if route

  query.update(radius_at_coordinates.to_h) if radius_at_coordinates

  fetch(
    Requests::Request.new(
      @api_key,
      Bus::Urls::POSITIONS,
      query
    )
  )
end
route_schedule(route, including_variations, date = nil) click to toggle source

Schedules for a given route variant for an optional given date. {developer.wmata.com/docs/services/54763629281d83086473f231/operations/5476362a281d830c946a3d6b}

@note Date: Omit date for current date @note Variations: Whether or not to include variations if a base route is specified in Route. For example, if B30 is specified and IncludingVariations is set to true, data for all variations of B30 such as B30v1, B30v2, etc. will be returned.

@param [String] route A Route ID @param [bool] including_variations If variations of Route should be included @param [Date] date Date of check schedule of

@raise [WeeseError] If request or JSON parse fails

@return [Hash] JSON Response

# File lib/weese/bus/route.rb, line 587
def route_schedule(route, including_variations, date = nil)
  query = { 'RouteID': route }

  query['IncludingVariations'] = including_variations if including_variations

  query['Date'] = date.to_s if date

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