From 6fa8647855b81a2f518c4995969113038187759c Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 15 Jul 2008 18:18:37 +0000 Subject: [PATCH] Rename unique_nodes to unshared_node_ids to make it's purpose a bit clearer and rework it to be a bit tidier. --- app/controllers/amf_controller.rb | 4 ++-- app/models/way.rb | 22 ++++++++++------------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/app/controllers/amf_controller.rb b/app/controllers/amf_controller.rb index 4ec4e660e..28e2e4b2b 100644 --- a/app/controllers/amf_controller.rb +++ b/app/controllers/amf_controller.rb @@ -295,7 +295,7 @@ class AmfController < ApplicationController uniques=[] else way=Way.find(originalway) - uniques=way.unique_nodes + uniques=way.unshared_node_ids end # -- Compare nodes and save changes to any that have changed @@ -415,7 +415,7 @@ class AmfController < ApplicationController # two nodes from the same relation user = User.find(uid) way = Way.find(way_id) - way.unique_nodes.each do |n| + way.unshared_node_ids.each do |n| deleteitemrelations(n,'node') end diff --git a/app/models/way.rb b/app/models/way.rb index 59988d88b..958944200 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -235,11 +235,8 @@ class Way < ActiveRecord::Base # delete a way and it's nodes that aren't part of other ways, with history def delete_with_relations_and_nodes_and_history(user) - - node_ids_to_delete = self.unique_nodes - # delete the nodes not used by other ways - node_ids_to_delete.each do |node_id| + self.unshared_node_ids.each do |node_id| n = Node.find(node_id) n.user_id = user.id n.visible = false @@ -249,17 +246,18 @@ class Way < ActiveRecord::Base self.user_id = user.id self.delete_with_relations_and_history(user) - end # Find nodes that belong to this way only - def unique_nodes - node_ids = self.nodes.collect {|node| node.id } - if node_ids.length==0 then return [] end - node_ids_in_other_ways = [] - way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}") - node_ids_in_other_ways = way_nodes.collect {|way_node| way_node.node_id} - return node_ids - node_ids_in_other_ways + def unshared_node_ids + node_ids = self.nodes.collect { |node| node.id } + + unless node_ids.empty? + way_nodes = WayNode.find(:all, :conditions => "node_id in (#{node_ids.join(',')}) and id != #{self.id}") + node_ids = node_ids - way_nodes.collect { |way_node| way_node.node_id } + end + + return node_ids end # Temporary method to match interface to nodes -- 2.43.2