aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorZog2018-04-25 18:55:39 +0200
committerZog2018-04-25 18:55:39 +0200
commit5c6718314cbbe3c36fd9343b1ea78124dd2189d3 (patch)
tree399c4c86db97a9a1b2748fb3595c40bae7f478ab /app/models
parent6c61ffc242a562aeac83317c756e09d8ad210815 (diff)
downloadchouette-core-5c6718314cbbe3c36fd9343b1ea78124dd2189d3.tar.bz2
Diffstat (limited to 'app/models')
-rw-r--r--app/models/merge.rb16
1 files changed, 6 insertions, 10 deletions
diff --git a/app/models/merge.rb b/app/models/merge.rb
index 69749d105..be1bbedcb 100644
--- a/app/models/merge.rb
+++ b/app/models/merge.rb
@@ -136,8 +136,8 @@ class Merge < ApplicationModel
referential_stop_points_by_route = referential_stop_points.group_by(&:route_id)
referential_routing_constraint_zones = referential.switch do
- referential.routing_constraint_zones.each_with_object(Hash.new { |h,k| h[k] = [] }) do |routing_constraint_zone, hash|
- hash[routing_constraint_zone.route_id] << routing_constraint_zone
+ referential.routing_constraint_zones.each_with_object(Hash.new { |h,k| h[k] = {}}) do |routing_constraint_zone, hash|
+ hash[routing_constraint_zone.route_id][routing_constraint_zone.checksum] = routing_constraint_zone
end
end
@@ -183,7 +183,7 @@ class Merge < ApplicationModel
# RoutingConstraintZones
routing_constraint_zones = referential_routing_constraint_zones[route.id]
- routing_constraint_zones.each do |routing_constraint_zone|
+ routing_constraint_zones.values.each do |routing_constraint_zone|
objectid = new.routing_constraint_zones.where(objectid: routing_constraint_zone.objectid).exists? ? nil : routing_constraint_zone.objectid
stop_point_ids = routing_constraint_zone.stop_point_ids.map { |id| stop_point_ids_mapping[id] }.compact
@@ -207,12 +207,12 @@ class Merge < ApplicationModel
raise "Checksum has changed: \"#{route.checksum}\", \"#{route.checksum_source}\" -> \"#{new_route.checksum}\", \"#{new_route.checksum_source}\""
end
- if new_route.routing_constraint_zones.map(&:checksum).sort != routing_constraint_zones.map(&:checksum).sort
+ if new_route.routing_constraint_zones.map(&:checksum).sort != routing_constraint_zones.keys.sort
raise "Checksum has changed in RoutingConstraintZones: \"#{new_route.routing_constraint_zones.map(&:checksum).sort}\" -> \"#{route.routing_constraint_zones.map(&:checksum).sort}\""
end
new_route.routing_constraint_zones.each do |new_routing_constraint_zone|
- routing_constraint_zone = routing_constraint_zones.find { |c| c.checksum == new_routing_constraint_zone.checksum }
+ routing_constraint_zone = routing_constraint_zones[new_routing_constraint_zone.checksum]
if routing_constraint_zone
referential_routing_constraint_zones_new_ids[routing_constraint_zone.id] = new_routing_constraint_zone.id
else
@@ -366,11 +366,7 @@ class Merge < ApplicationModel
end
# Rewrite ignored_routing_contraint_zone_ids
-
- new_vehicle_journey.ignored_routing_contraint_zone_ids = vehicle_journey.ignored_routing_contraint_zone_ids.map do |id|
- referential_routing_constraint_zones_new_ids[id]
- end.compact
-
+ new_vehicle_journey.ignored_routing_contraint_zone_ids = referential_routing_constraint_zones_new_ids.values_at(*vehicle_journey.ignored_routing_contraint_zone_ids).compact
new_vehicle_journey.save!
if new_vehicle_journey.checksum != vehicle_journey.checksum