This repository was archived by the owner on Jan 21, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbusted_json.rb
More file actions
73 lines (61 loc) · 1.8 KB
/
busted_json.rb
File metadata and controls
73 lines (61 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright: Kit Plummer
# http://creativecommons.org/licenses/by-sa/3.0/us/
require 'route'
require 'station'
require 'stop'
require 'bus'
module BustedJson
def BustedJson.all(route)
@res = fetch(route)
@r = Route.new(route, @res[0])
parse_stations(@res, @r)
parse_stops(@res, @r)
parse_busses(@res, @r)
@r.to_json
end
def BustedJson.stations(route)
@res = fetch(route)
@r = Route.new(route, @res[0])
parse_stations(@res, @r)
@r.to_json
end
def BustedJson.stops(route)
@res = fetch(route)
@r = Route.new(route, @res[0])
parse_stops(@res, @r)
@r.to_json
end
def BustedJson.busses(route)
@res = fetch(route)
@r = Route.new(route, @res[0])
parse_busses(@res, @r)
@r.to_json
end
def BustedJson.fetch(route)
HTTParty.get("http://www.suntran.com/webwatch/UpdateWebMap.aspx?u=#{route}").body.split('*')
end
def BustedJson.parse_stations(res, route)
stats = res[1].split(';')
stats.each do |stat|
sd = stat.split("|")
s = Station.new(sd[2],sd[0],sd[1],sd[3].chop,sd[4].split("<br>"))
route.stations << s
end
end
def BustedJson.parse_stops(res, route)
stops = res[3].split(';')
stops.each do |stop|
sd = stop.split('|')
s = Stop.new(sd[2],sd[0],sd[1],sd[3].chop,sd[4].split("<br>"))
route.stops << s
end
end
def BustedJson.parse_busses(res, route)
busses = res[2].split(';')
busses.each do |bus|
bd = bus.split('|')
b = Bus.new(bd[0],bd[1],bd[3].split('<br>')[0].gsub(/<\/?[^>]*>/, "").strip,bd[3].split('<br>')[1])
route.busses << b
end
end
end