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_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
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