doc = p.parse
doc.find('//osm/node').each do |pt|
- return Node.from_xml_node(pt, create)
+ return Node.from_xml_node(pt, create)
end
rescue
return nil
unless create
if pt['id'] != '0'
- node.id = pt['id'].to_i
+ node.id = pt['id'].to_i
end
end
node.timestamp = Time.now
else
if pt['timestamp']
- node.timestamp = Time.parse(pt['timestamp'])
+ node.timestamp = Time.parse(pt['timestamp'])
end
end
tags = self.tags
NodeTag.delete_all(['id = ?', self.id])
tags.each do |k,v|
- tag = NodeTag.new
- tag.k = k
- tag.v = v
- tag.id = self.id
- tag.save!
+ tag = NodeTag.new
+ tag.k = k
+ tag.v = v
+ tag.id = self.id
+ tag.save!
end
# Create an OldNode
end
def update_from(new_node, user)
+ if new_node.version != version
+ raise OSM::APIVersionMismatchError.new(new_node.version, version)
+ end
+
self.user_id = user.id
self.latitude = new_node.latitude
self.longitude = new_node.longitude
end
def tags_as_hash
- hash = {}
- Tags.split(self.tags) do |k,v|
- hash[k] = v
- end
- hash
+ return tags
end
def tags