blob: 5fc7117eb3ca58665a23a61c6d556c657026e02a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
class VehicleTranslation
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :vehicle_journey_id, :count, :duration
validates_presence_of :count, :duration
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
def translate
vehicle = vehicle_journey
copied_attributes = vehicle_journey.attributes
copied_attributes.delete( "id")
copied_attributes.delete( "objectid")
1.upto( count.to_i) do |index|
translated = Chouette::VehicleJourney.create( copied_attributes)
translated.time_tables = vehicle.time_tables
vehicle.vehicle_journey_at_stops.each do |vjas|
vjas_attributes = vjas.attributes.merge( "vehicle_journey_id" => translated.id)
vjas_attributes.merge! "departure_time" => ( vjas_attributes[ "departure_time"] + (index * duration.to_i.minutes) ),
"arrival_time" => ( vjas_attributes[ "arrival_time"] + (index * duration.to_i.minutes) )
Chouette::VehicleJourneyAtStop.create( vjas_attributes)
end
end
end
def vehicle_journey
Chouette::VehicleJourney.find( vehicle_journey_id)
end
def self.from_vehicle( vehicle)
VehicleTranslation.new( :vehicle_journey_id => vehicle.id,
:count => 0,
:translation => 5.minutes)
end
end
|