]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/node.rb
Added tests for changeset upload code. Refactored diff reading code and put it into...
[rails.git] / app / models / node.rb
index c2a61906b1a1dc60d6e360d30d435d11ce3eebac..67efeca2c1a471f2e78d3bc9e6b1ef0d7b3244d5 100644 (file)
@@ -75,20 +75,25 @@ class Node < ActiveRecord::Base
   def self.from_xml_node(pt, create=false)
     node = Node.new
     
   def self.from_xml_node(pt, create=false)
     node = Node.new
     
-    node.version = pt['version'].to_i
     node.lat = pt['lat'].to_f
     node.lon = pt['lon'].to_f
     node.changeset_id = pt['changeset'].to_i
 
     return nil unless node.in_world?
 
     node.lat = pt['lat'].to_f
     node.lon = pt['lon'].to_f
     node.changeset_id = pt['changeset'].to_i
 
     return nil unless node.in_world?
 
+    # version must be present unless creating
+    return nil unless create or not pt['version'].nil?
+    node.version = pt['version'].to_i
+
     unless create
       if pt['id'] != '0'
         node.id = pt['id'].to_i
       end
     end
 
     unless create
       if pt['id'] != '0'
         node.id = pt['id'].to_i
       end
     end
 
-    node.visible = pt['visible'] and pt['visible'] == 'true'
+    # visible if it says it is, or as the default if the attribute
+    # is missing.
+    node.visible = pt['visible'].nil? or pt['visible'] == 'true'
 
     if create
       node.timestamp = Time.now
 
     if create
       node.timestamp = Time.now
@@ -235,4 +240,11 @@ class Node < ActiveRecord::Base
     @tags[k] = v
   end
 
     @tags[k] = v
   end
 
+  ##
+  # dummy method to make the interfaces of node, way and relation
+  # more consistent.
+  def fix_placeholders!(id_map)
+    # nodes don't refer to anything, so there is nothing to do here
+  end
+
 end
 end