From 5c6718314cbbe3c36fd9343b1ea78124dd2189d3 Mon Sep 17 00:00:00 2001 From: Zog Date: Wed, 25 Apr 2018 18:55:39 +0200 Subject: Refs #6762; Small refactor --- app/models/merge.rb | 16 ++++++---------- 1 file 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 -- cgit v1.2.3