X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/dd33fc633c1bcd2ab4ecfc412ffe5edf43491cec..3bd92c16704823e79ac61f27d05c1a9be52858f5:/app/models/node.rb diff --git a/app/models/node.rb b/app/models/node.rb index 9ed5c3bbf..08a675b43 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -9,6 +9,7 @@ class Node < GeoRecord validate :validate_position has_many :old_nodes, :foreign_key => :id + has_many :way_nodes belongs_to :user def validate_position @@ -57,10 +58,7 @@ class Node < GeoRecord tags << [tag['k'],tag['v']] end - tags = tags.collect { |k,v| "#{k}=#{v}" }.join(';') - tags = '' if tags.nil? - - node.tags = tags + node.tags = Tags.join(tags) end rescue node = nil @@ -102,25 +100,24 @@ class Node < GeoRecord el1['user'] = user_display_name_cache[self.user_id] unless user_display_name_cache[self.user_id].nil? - Node.split_tags(el1, self.tags) + Tags.split(self.tags) do |k,v| + el2 = XML::Node.new('tag') + el2['k'] = k.to_s + el2['v'] = v.to_s + el1 << el2 + end + el1['visible'] = self.visible.to_s el1['timestamp'] = self.timestamp.xmlschema return el1 end - def self.split_tags(el, tags) - tags.split(';').each do |tag| - parts = tag.split('=') - key = '' - val = '' - key = parts[0].strip unless parts[0].nil? - val = parts[1].strip unless parts[1].nil? - if key != '' && val != '' - el2 = XML::Node.new('tag') - el2['k'] = key.to_s - el2['v'] = val.to_s - el << el2 - end + def tags_as_hash + hash = {} + Tags.split(self.tags) do |k,v| + hash[k] = v end + hash end + end