]> git.openstreetmap.org Git - rails.git/blobdiff - lib/diff_reader.rb
Merge pull request #5158 from tomhughes/vagrant-debian
[rails.git] / lib / diff_reader.rb
index 5d98ef874406adc14e1cacc0b1ce584641c33e9b..2784646afecbcf6fbcca3c02141bbd6671a3b75f 100644 (file)
@@ -4,8 +4,6 @@
 # Uses the streaming LibXML "Reader" interface to cut down on memory
 # usage, so hopefully we can process fairly large diffs.
 class DiffReader
 # Uses the streaming LibXML "Reader" interface to cut down on memory
 # usage, so hopefully we can process fairly large diffs.
 class DiffReader
-  include ConsistencyValidations
-
   # maps each element type to the model class which handles it
   MODELS = {
     "node" => Node,
   # maps each element type to the model class which handles it
   MODELS = {
     "node" => Node,
@@ -85,7 +83,7 @@ class DiffReader
       model = MODELS[model_name]
       if model.nil?
         raise OSM::APIBadUserInput, "Unexpected element type #{model_name}, " \
       model = MODELS[model_name]
       if model.nil?
         raise OSM::APIBadUserInput, "Unexpected element type #{model_name}, " \
-                                       "expected node, way or relation."
+                                    "expected node, way or relation."
       end
       # new in libxml-ruby >= 2, expand returns an element not associated
       # with a document. this means that there's no encoding parameter,
       end
       # new in libxml-ruby >= 2, expand returns an element not associated
       # with a document. this means that there's no encoding parameter,
@@ -128,7 +126,7 @@ class DiffReader
     @reader.read
     raise OSM::APIBadUserInput, "Document element should be 'osmChange'." if @reader.name != "osmChange"
 
     @reader.read
     raise OSM::APIBadUserInput, "Document element should be 'osmChange'." if @reader.name != "osmChange"
 
-    result = OSM::API.new.get_xml_doc
+    result = OSM::API.new.xml_doc
     result.root.name = "diffResult"
 
     # loop at the top level, within the <osmChange> element
     result.root.name = "diffResult"
 
     # loop at the top level, within the <osmChange> element
@@ -138,7 +136,7 @@ class DiffReader
         # create a new element. this code is agnostic of the element type
         # because all the elements support the methods that we're using.
         with_model do |model, xml|
         # create a new element. this code is agnostic of the element type
         # because all the elements support the methods that we're using.
         with_model do |model, xml|
-          new = model.from_xml_node(xml, true)
+          new = model.from_xml_node(xml, :create => true)
           check(model, xml, new)
 
           # when this element is saved it will get a new ID, so we save it
           check(model, xml, new)
 
           # when this element is saved it will get a new ID, so we save it
@@ -174,7 +172,7 @@ class DiffReader
         # with types, but uses duck typing to handle them transparently.
         with_model do |model, xml|
           # get the new element from the XML payload
         # with types, but uses duck typing to handle them transparently.
         with_model do |model, xml|
           # get the new element from the XML payload
-          new = model.from_xml_node(xml, false)
+          new = model.from_xml_node(xml, :create => false)
           check(model, xml, new)
 
           # if the ID is a placeholder then map it to the real ID
           check(model, xml, new)
 
           # if the ID is a placeholder then map it to the real ID