Module: Bart

Defined in:
lib/bart.rb,
lib/bart/version.rb

Constant Summary collapse

API_HOST =
'api.bart.gov'
SCRIPT_URLS =
{
  :routes => 'route.aspx',
  :stations => 'stn.aspx',
  :etd => 'etd.aspx'
}
VERSION =
"0.0.32"

Class Method Summary collapse

Class Method Details

.default_api_keyObject



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

def self.default_api_key
  'EMH2-BJSB-ITEQ-95MP'
end

.real_time_info(orig, additional_params = nil) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/bart.rb', line 68

def self.real_time_info orig, additional_params = nil
  params = {}
  params[:cmd] = 'etd'
  params[:orig] = orig

  if not additional_params.nil?
    params = params.merge(additional_params)
  end

  path = self.path_for :etd, params
  xml = self.get_xml path

  xml
end

.routes(route_num = nil, additional_params = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/bart.rb', line 18

def self.routes route_num = nil, additional_params = {}
  params = {}
  if route_num.nil?
    params[:cmd] = 'routes'
  else
    params[:cmd] = 'routeinfo'
    params[:route] = route_num
    params.merge(additional_params)
  end

  path = self.path_for :routes, params
  xml = self.get_xml path

  routes = xml.css('routes').css('route').collect do |r|
    route = {}
    r.children.each do |r|
      route[r.name.to_sym] = r.text
    end
    route
  end

  return routes if route_num.nil?
  routes[0]
end

.stations(orig = nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/bart.rb', line 43

def self.stations orig = nil
  params = {}
  if orig.nil?
    params[:cmd] = 'stns'
  else
    params[:cmd] = 'stninfo'
    params[:orig] = orig
  end

  path = self.path_for :stations, params
  xml = self.get_xml path

  stations = xml.css('stations').css('station').collect do |s|
    station = {}
    s.children.each do |s|
      station[s.name.to_sym] = s.text
    end

    station
  end

  return stations if orig.nil?
  stations[0]
end