Class: CtaTrack::API

Inherits:
Object
  • Object
show all
Defined in:
lib/api.rb

Constant Summary collapse

@@apikey =
nil
@@baseurl =
'http://www.ctabustracker.com/bustime/api/v1/'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#apikeyObject

Returns the value of attribute apikey.



8
9
10
# File 'lib/api.rb', line 8

def apikey
  @apikey
end

Class Method Details

.apikeyObject



28
29
30
# File 'lib/api.rb', line 28

def self.apikey
  return @@apikey
end

.apikey=(apikey) ⇒ Object



11
12
13
# File 'lib/api.rb', line 11

def self.apikey=(apikey)
  @@apikey = apikey
end

.directions(route) ⇒ Object



46
47
48
# File 'lib/api.rb', line 46

def self.directions(route)
  nokorequest("#{@@baseurl}getdirections?key=#{@@apikey}&rt=#{route}&format=json")
end

.nokorequest(request) ⇒ Object



34
35
36
# File 'lib/api.rb', line 34

def self.nokorequest(request)
  Nokogiri::XML(open(request))
end

.predictions(**args) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/api.rb', line 21

def self.predictions(**args)
  if args[:routes] && args[:stopId]
    nokorequest("#{@@baseurl}getpredictions?key=#{@@apikey}&rt=#{requested_routes(args[:routes])}&stpid=#{args[:stopId]}")
  else 
    raise new ArgumentError
  end
end

.requested_routes(routes) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/api.rb', line 38

def self.requested_routes(routes)
  if routes.respond_to?(:map)
    routes.map {|x| x.to_s + ","}.reduce(:+)[0...-1]
  else 
    routes.to_s
  end
end

.routesObject



18
19
20
# File 'lib/api.rb', line 18

def self.routes()
  nokorequest("#{@@baseurl}getroutes/?key=#{@@apikey}")
end

.stops(args) ⇒ Object



49
50
51
# File 'lib/api.rb', line 49

def self.stops(args)
  nokorequest("#{@@baseurl}getstops?key=#{@@apikey}&rt=#{args[:route]}&dir=#{args[:direction]}&format=json")
end

.vehicles(args) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
# File 'lib/api.rb', line 14

def self.vehicles(args)
  raise ArgumentError, "must include a :routes" unless args[:routes]
  vehicles_by_route(args[:routes]) if args[:routes]
end

.vehicles_by_route(routes) ⇒ Object



31
32
33
# File 'lib/api.rb', line 31

def self.vehicles_by_route(routes)
  nokorequest("#{@@baseurl}getvehicles/?key=#{@@apikey}&rt=#{requested_routes(routes)}")
end