Sha256: 81a8a7498f84114da06deae71b5875d808da0d588123cf891ff9bd18e4fb135b

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

module Chouette
  class VehicleJourneyAtStop < ActiveRecord
    include ForBoardingEnumerations
    include ForAlightingEnumerations

    # FIXME http://jira.codehaus.org/browse/JRUBY-6358
    self.primary_key = "id"
    
    belongs_to :stop_point
    belongs_to :vehicle_journey

    attr_accessor :_destroy
    # attr_accessible :vehicle_journey_id, :stop_point_id, :connecting_service_id, :boarding_alighting_possibility, :arrival_time, :departure_time, :waiting_time, :elapse_duration, :headway_frequency, :_destroy, :stop_point, :for_boarding, :for_alighting

    validate :arrival_must_be_before_departure
    def arrival_must_be_before_departure
      # security against nil values
      return unless arrival_time && departure_time

      if exceeds_gap?( arrival_time, departure_time) 
        errors.add(:arrival_time,I18n.t("activerecord.errors.models.vehicle_journey_at_stop.arrival_must_be_before_departure"))
      end
    end
    
    after_initialize :set_virtual_attributes
    def set_virtual_attributes
      @_destroy = false
    end

    def increasing_times_validate( previous)
      result = true
      return result unless previous

      if exceeds_gap?( previous.departure_time, departure_time)
        result = false
        errors.add( :departure_time, 'departure time gap overflow')
      end
      if exceeds_gap?( previous.arrival_time, arrival_time)
        result = false
        errors.add( :arrival_time, 'arrival time gap overflow')
      end
      result
    end
    def exceeds_gap?( first, second)
      3600 < ( ( second-first)%( 3600 * 24))
    end  

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ninoxe-1.2.2 app/models/chouette/vehicle_journey_at_stop.rb
ninoxe-1.2.1 app/models/chouette/vehicle_journey_at_stop.rb
ninoxe-1.2.0 app/models/chouette/vehicle_journey_at_stop.rb