class CUMTD
Public Class Methods
all_routes()
click to toggle source
# File lib/cumtd.rb, line 50 def self.all_routes @@all_routes end
all_stops()
click to toggle source
# File lib/cumtd.rb, line 46 def self.all_stops @@all_stops end
new(api_key, stops_file=nil, routes_file=nil, serialize_path=File.expand_path(File.dirname(__FILE__)))
click to toggle source
# File lib/cumtd.rb, line 14 def initialize(api_key, stops_file=nil, routes_file=nil, serialize_path=File.expand_path(File.dirname(__FILE__))) @api_key = api_key @@reroutes = Array.new @@all_stops = Array.new if stops_file object = nil File.open(stops_file,"rb") {|f| @@all_stops = YAML.load(f)} else self.get_stops end @@all_routes = Array.new if routes_file object = nil File.open(routes_file,"rb") {|f| @@all_routes = YAML.load(f)} else self.get_routes end unless serialize_path == :no_serialize serialize_stops(File.join(serialize_path, 'stops.yaml')) serialize_routes(File.join(serialize_path, 'routes.yaml')) end end
reroutes()
click to toggle source
# File lib/cumtd.rb, line 54 def self.reroutes @@reroutes end
Public Instance Methods
api_key()
click to toggle source
# File lib/cumtd.rb, line 42 def api_key @api_key end
get_departures_by_stop(stop)
click to toggle source
# File lib/cumtd.rb, line 135 def get_departures_by_stop(stop) response = self.class.get("/GetDeparturesByStop?key=#{@api_key}&stop_id=#{stop.stop_id}") departures = Array.new response["departures"].each do |departure| departures << Departure.new(departure) end return departures end
get_reroutes()
click to toggle source
# File lib/cumtd.rb, line 94 def get_reroutes response = self.class.get("/GetReroutes?key=#{@api_key}") @@reroutes.clear response["reroutes"].each do |reroute| @@reroutes << Reroute.new(reroute) end unless response["reroutes"].nil? return @@reroutes end
get_routes()
click to toggle source
# File lib/cumtd.rb, line 85 def get_routes response = self.class.get("/GetRoutes?key=#{@api_key}") @@all_routes.clear response["routes"].each do |route| @@all_routes << Route.new(route) end return @@all_routes end
get_routes_by_stop(stop)
click to toggle source
# File lib/cumtd.rb, line 120 def get_routes_by_stop(stop) response = self.class.get("/GetRoutesByStop?key=#{@api_key}&stop_id=#{stop.stop_id}") routes = Array.new response["routes"].each do |route| routes << Route.new(route) end return routes end
get_shape_between_stops(begin_stop_id, end_stop_id, shape_id)
click to toggle source
# File lib/cumtd.rb, line 231 def get_shape_between_stops(begin_stop_id, end_stop_id, shape_id) response = self.class.get("/GetShape?key=#{@api_key}&begin_stop_id=#{begin_stop_id}&end_stop_id=#{end_stop_id}&shape_id=#{shape_id}") shapes = Array.new response["shapes"].each do |shape| shapes << Shape.new(shape) end return shapes end
get_shape_by_id(shape_id)
click to toggle source
# File lib/cumtd.rb, line 222 def get_shape_by_id(shape_id) response = self.class.get("/GetShape?key=#{@api_key}&shape_id=#{shape_id}") shapes = Array.new response["shapes"].each do |shape| shapes << Shape.new(shape) end return shapes end
get_stop_by_id(stop_id)
click to toggle source
# File lib/cumtd.rb, line 129 def get_stop_by_id(stop_id) response = self.class.get("/GetStop?key=#{@api_key}&stop_id=#{stop_id}") stop = Stop.new(response["stops"]) return stop end
get_stop_times_by_stop(stop_id, route_id=nil, date=Time.now.to_s)
click to toggle source
# File lib/cumtd.rb, line 240 def get_stop_times_by_stop(stop_id, route_id=nil, date=Time.now.to_s) if !route_id response = self.class.get("/GetStopTimesByStop?key=#{@api_key}&stop_id=#{stop_id}") else response = self.class.get("/GetStopTimesByStop?key=#{@api_key}&stop_id=#{stop_id}&route_id=#{route_id}") end stop_times = Array.new response["stop_times"].each do |stop_time| stop_times << StopTime.new(stop_time) end return stop_times end
get_stop_times_by_trip(trip_id)
click to toggle source
# File lib/cumtd.rb, line 176 def get_stop_times_by_trip(trip_id) response = self.class.get("/GetStopTimesByTrip?key=#{@api_key}&trip_id=#{trip_id}") stop_times = Array.new response["stop_times"].each do |stop_time| stop_times << StopTime.new(stop_time) end return stop_times end
get_stops()
click to toggle source
# File lib/cumtd.rb, line 76 def get_stops response = self.class.get("/GetStops?key=#{@api_key}") @@all_stops.clear response["stops"].each do |stop| @@all_stops << Stop.new(stop) end return @@all_stops end
get_stops_by_lat_lon(lat, lon, count=20)
click to toggle source
# File lib/cumtd.rb, line 103 def get_stops_by_lat_lon(lat, lon, count=20) response = self.class.get("/GetStopsByLatLon?key=#{@api_key}&lat=#{lat}&lon=#{lon}&count=#{count}") stops = Array.new response["stops"].each do |stop| stops << Stop.new(stop) end return stops end
get_stops_by_search(query, count=10)
click to toggle source
# File lib/cumtd.rb, line 167 def get_stops_by_search(query, count=10) response = self.class.get("/GetStopsBySearch?key=#{@api_key}&query=#{query}&count=#{count}") stops = Array.new response["stops"].each do |stop| stops << Stop.new(stop) end return stops end
get_trip_by_id(trip_id)
click to toggle source
# File lib/cumtd.rb, line 208 def get_trip_by_id(trip_id) response = self.class.get("/GetTrip?key=#{@api_key}&trip_id=#{trip_id}") return Trip.new(response["trips"].first) end
get_trips_by_block(block_id)
click to toggle source
# File lib/cumtd.rb, line 213 def get_trips_by_block(block_id) response = self.class.get("/GetTripsByBlock?key=#{@api_key}&block_id=#{block_id}") trips = Array.new response["trips"].each do |trip| trips << Trip.new(trip) end return trips end
get_vehicle_by_id(vehicle_id)
click to toggle source
# File lib/cumtd.rb, line 194 def get_vehicle_by_id(vehicle_id) response = self.class.get("/GetVehicle?key=#{@api_key}&vehicle_id=#{vehicle_id}") return Vehicle.new(response["vehicles"].first) end
get_vehicles()
click to toggle source
# File lib/cumtd.rb, line 185 def get_vehicles response = self.class.get("/GetVehicles?key=#{@api_key}") vehicles = Array.new response["vehicles"].each do |vehicle| vehicles << Vehicle.new(vehicle) end return vehicles end
get_vehicles_by_route_id(route_id)
click to toggle source
# File lib/cumtd.rb, line 199 def get_vehicles_by_route_id(route_id) response = self.class.get("/GetVehiclesByRoute?key=#{@api_key}&route_id=#{route_id}") vehicles = Array.new response["vehicles"].each do |vehicle| vehicles << Vehicle.new(vehicle) end return vehicles end
nearest_departures(stops)
click to toggle source
Returns an array of hashes. Each hash contains a “stop” key denoting the stop and the “departures” key contains one departure. These hashes are sorted based on length of time until they depart, given stops to get departures for.
# File lib/cumtd.rb, line 155 def nearest_departures(stops) master_deps = Array.new stops.each do |stop| # master_deps.concat(Hash["stop", stop, "departures", get_departures_by_stop(stop["stop_id"])) stops_from_deps = get_departures_by_stop(stop) stops_from_deps.each do |stop_dep| master_deps << Hash["stop", stop, "departures", stop_dep] end end return master_deps.sort_by! { |stop| stop["departures"].expected_mins } end
print_all_departures(stops)
click to toggle source
# File lib/cumtd.rb, line 112 def print_all_departures(stops) stops.each do |stop| deps = get_departures_by_stop(stop["stop_id"]) stop_t = stop print_departures(deps, stop_t) end end
serialize_routes(file_location)
click to toggle source
# File lib/cumtd.rb, line 64 def serialize_routes(file_location) File.open(file_location, "wb") do |file| YAML.dump(@@all_routes,file) end end
serialize_stops(file_location)
click to toggle source
# File lib/cumtd.rb, line 58 def serialize_stops(file_location) File.open(file_location, "wb") do |file| YAML.dump(@@all_stops,file) end end
serialize_vehicles(vehicles, file_location)
click to toggle source
# File lib/cumtd.rb, line 70 def serialize_vehicles(vehicles, file_location) File.open(file_location, "wb") do |file| YAML.dump(vehicles,file) end end