Class: Chouette::VehicleJourney

Inherits:
TridentActiveRecord show all
Defined in:
app/models/chouette/vehicle_journey.rb

Constant Summary collapse

@@transport_mode_names =
nil

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TridentActiveRecord

#build_objectid, #clean_object_id, #default_values, #fix_uniq_objectid, model_name, object_id_key, #objectid, #objectid_format_compliance, #prefix, #prepare_auto_columns, #reset_auto_columns, #timestamp_attributes_for_create, #timestamp_attributes_for_update, #uniq_objectid

Methods inherited from ActiveRecord

#human_attribute_name, #nil_if_blank

Instance Attribute Details

#time_table_tokensObject

Returns the value of attribute time_table_tokens.



12
13
14
# File 'app/models/chouette/vehicle_journey.rb', line 12

def time_table_tokens
  @time_table_tokens
end

#transport_mode_nameObject

attr_accessible :route_id, :journey_pattern_id, :time_slot_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :comment, :status_value

attr_accessible :route, :transport_mode,:transport_mode_name, :published_journey_name, :published_journey_identifier, :facility, :vehicle_type_identifier, :number
attr_accessible :vehicle_journey_at_stops_attributes, :time_table_tokens, :time_tables, :mobility_restricted_suitability, :flexible_service


11
12
13
# File 'app/models/chouette/vehicle_journey.rb', line 11

def transport_mode_name
  @transport_mode_name
end

Class Method Details

.nullable_attributesObject



14
15
16
# File 'app/models/chouette/vehicle_journey.rb', line 14

def self.nullable_attributes
  [:transport_mode, :published_journey_name, :vehicle_type_identifier, :published_journey_identifier, :comment, :status_value]
end

.transport_mode_namesObject



57
58
59
60
61
# File 'app/models/chouette/vehicle_journey.rb', line 57

def self.transport_mode_names
  @@transport_mode_names ||= Chouette::TransportMode.all.select do |transport_mode_name|
    transport_mode_name.to_i > 0
  end
end

Instance Method Details

#bounding_datesObject



84
85
86
87
88
89
90
91
92
93
# File 'app/models/chouette/vehicle_journey.rb', line 84

def bounding_dates
  dates = []

  time_tables.each do |tm|
    dates << tm.start_date if tm.start_date
    dates << tm.end_date if tm.end_date
  end

  dates.empty? ? [] : [dates.min, dates.max]
end

#extra_stops_in_relation_to_a_journey_pattern(selected_journey_pattern) ⇒ Object



74
75
76
# File 'app/models/chouette/vehicle_journey.rb', line 74

def extra_stops_in_relation_to_a_journey_pattern(selected_journey_pattern)
  self.stop_points - selected_journey_pattern.stop_points
end

#extra_vjas_in_relation_to_a_journey_pattern(selected_journey_pattern) ⇒ Object



77
78
79
80
# File 'app/models/chouette/vehicle_journey.rb', line 77

def extra_vjas_in_relation_to_a_journey_pattern(selected_journey_pattern)
  extra_stops = self.extra_stops_in_relation_to_a_journey_pattern(selected_journey_pattern)
  self.vehicle_journey_at_stops.select { |vjas| extra_stops.include?( vjas.stop_point)}
end

#increasing_timesObject



63
64
65
66
67
68
69
# File 'app/models/chouette/vehicle_journey.rb', line 63

def increasing_times
  previous = nil
  vehicle_journey_at_stops.select{|vjas| vjas.departure_time && vjas.arrival_time}.each do |vjas|
    errors.add( :vehicle_journey_at_stops, 'time gap overflow') unless vjas.increasing_times_validate( previous)
    previous = vjas
  end
end

#missing_stops_in_relation_to_a_journey_pattern(selected_journey_pattern) ⇒ Object



71
72
73
# File 'app/models/chouette/vehicle_journey.rb', line 71

def missing_stops_in_relation_to_a_journey_pattern(selected_journey_pattern)
  selected_journey_pattern.stop_points - self.stop_points
end

#set_default_valuesObject



36
37
38
39
40
# File 'app/models/chouette/vehicle_journey.rb', line 36

def set_default_values
  if number.nil?
    self.number = 0
  end
end

#update_journey_pattern(selected_journey_pattern) ⇒ Object



95
96
97
98
99
100
101
102
103
104
# File 'app/models/chouette/vehicle_journey.rb', line 95

def update_journey_pattern( selected_journey_pattern)
  return unless selected_journey_pattern.route_id==self.route_id

  missing_stops_in_relation_to_a_journey_pattern(selected_journey_pattern).each do |sp|
    self.vehicle_journey_at_stops.build( :stop_point => sp)
  end
  extra_vjas_in_relation_to_a_journey_pattern(selected_journey_pattern).each do |vjas|
    vjas._destroy = true
  end
end