Sha256: 6f0a0d050c18a4edc25425778bb3bb4049fcb7558d9b23556320fe36ef0d4824
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
module GTFS class Realtime class StopTime < GTFS::Realtime::Model many_to_one :trip many_to_one :stop attr_accessor :actual_arrival_time, :actual_arrival_delay, :actual_departure_time, :actual_departure_delay def live? actual_arrival_time || actual_arrival_delay || actual_departure_time || actual_departure_delay end def arrival_time actual_arrival_time || scheduled_arrival_time end def departure_time actual_departure_time || scheduled_departure_time end def scheduled_arrival_time self.class.parse_time(self[:arrival_time]) end def scheduled_departure_time self.class.parse_time(self[:departure_time]) end def set(val) return super(val) unless val.is_a?(GTFS::Realtime::StopTimeUpdate) @actual_arrival_time = val.arrival_time @actual_arrival_delay = val.arrival_delay @actual_departure_time = val.departure_time @actual_departure_delay = val.departure_delay end private def self.parse_time(time, date = Date.today) # TODO: handle case where date != Date.today day_adjustment = 0 hour = time[0...2].to_i # handle timestamps like "24:30" if hour >= 24 days = hour / 24 time[0...2] = (hour % 24).to_s.rjust(2, '0') end Time.parse(time) + day_adjustment * 60 * 60 * 24 end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gtfs-realtime-0.3.0 | lib/gtfs/realtime/stop_time.rb |
gtfs-realtime-0.2.3 | lib/gtfs/realtime/stop_time.rb |