class Cta

Public Class Methods

get_directions(params = {}) click to toggle source

A list of cardinal directions for a given route

# File lib/cta.rb, line 21
def self.get_directions(params = {})
  response = Cta.send('/getdirections', params)
  return response[:error] ? response : response[:response]['dir']
end
get_next(params = {}) click to toggle source

Next time for a stop

# File lib/cta.rb, line 39
def self.get_next(params = {})
  response = Cta.get_predictions(params)
  newest = response.kind_of?(Array) ? response.first : response
  (((Time.parse newest['prdtm']) - (Cta.get_time)) / 60).ceil
end
get_predictions(params = {}) click to toggle source

A list of predicted times for a stop

# File lib/cta.rb, line 33
def self.get_predictions(params = {})
  response = Cta.send('/getpredictions', params)
  return response[:error] ? response : response[:response]['prd']
end
get_routes(params = {}) click to toggle source

A list of all bus routes

# File lib/cta.rb, line 15
def self.get_routes(params = {})
  response = Cta.send('/getroutes', params)
  return response[:error] ? response : response[:response]['route']
end
get_stops(params = {}) click to toggle source

A list of stops for a given route

# File lib/cta.rb, line 27
def self.get_stops(params = {})
  response = Cta.send('/getstops', params)
  return response[:error] ? response : response[:response]['stop']
end
get_time(params = {}) click to toggle source

The current system time for the CTA API

# File lib/cta.rb, line 9
def self.get_time(params = {})
  response = Cta.send('/gettime')
  return response[:error] ? response : (Time.parse response[:response]['tm'])
end
send(route, params = {}) click to toggle source
# File lib/cta.rb, line 45
def self.send(route, params = {})
  return { :success => false, :error => "No API key provided." } if @key.nil?
  
  params.merge!({ :key => @key })
  response = get(route, { :query => params })
  
  return { :success => false, :error => "Could not reach CTA servers." } if response.code != 200
  
  return { :success => false, :error => response['bustime_response']['error']['msg'] } if response['bustime_response']['error']
  
  { :success => true, :response => response['bustime_response'] }
end
set_key(key) click to toggle source
# File lib/cta.rb, line 58
def self.set_key(key)
  @key = key
end