Sha256: 63062a0c21d089de50b0956860849cc87ca7d6f19e8c00a04f74faa2c01ca996

Contents?: true

Size: 1010 Bytes

Versions: 1

Compression:

Stored size: 1010 Bytes

Contents

require "gtfs/realtime/nearby"

module GTFS
  class Realtime
    class Stop < GTFS::Realtime::Model
      include GTFS::Realtime::Nearby

      has_many :service_alerts
      has_many :stop_times
      has_many :stop_time_updates
      has_many :trips, through: :stop_times
      has_many :trip_updates, through: :stop_times
      has_many :routes, through: :trips
      has_many :active_routes, through: :trip_updates, source: :route

      def stop_times_schedule_for(date)
        stop_times.includes(trip: [:calendar_dates, :route, :shapes]).select{|st| st.trip.active?(date)}.sort_by{|st| st.departure_time}
      end

      def stop_times_for_today
        stop_times = stop_times_schedule_for(Date.today)
        stop_time_updates.each do |stu|
          # find a matching existing record in the schedule
          stop_time = stop_times.find{|st| st.trip_id == stu.trip_update.trip_id}

          # update its info
          stop_time.set(stu)
        end
        stop_times
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gtfs-realtime-0.4.0 lib/gtfs/realtime/stop.rb