X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/673b58f96f3acfd0281c62a2a7f080825b6fb28b..56ed381a7de68c06ffe08a34e1006f94bc9e70b0:/lib/diff_reader.rb diff --git a/lib/diff_reader.rb b/lib/diff_reader.rb index cb553bfbc..5d98ef874 100644 --- a/lib/diff_reader.rb +++ b/lib/diff_reader.rb @@ -8,8 +8,8 @@ class DiffReader # maps each element type to the model class which handles it MODELS = { - "node" => Node, - "way" => Way, + "node" => Node, + "way" => Way, "relation" => Relation }.freeze @@ -33,8 +33,8 @@ class DiffReader # NOTE: XML::Reader#read returns false for EOF and raises an # exception if an error occurs. @reader.read - rescue LibXML::XML::Error => ex - raise OSM::APIBadXMLError.new("changeset", xml, ex.message) + rescue LibXML::XML::Error => e + raise OSM::APIBadXMLError.new("changeset", xml, e.message) end ## @@ -133,7 +133,8 @@ class DiffReader # loop at the top level, within the element with_element do |action_name, action_attributes| - if action_name == "create" + case action_name + when "create" # 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| @@ -168,7 +169,7 @@ class DiffReader result.root << xml_result end - elsif action_name == "modify" + when "modify" # modify an existing element. again, this code doesn't directly deal # with types, but uses duck typing to handle them transparently. with_model do |model, xml| @@ -200,7 +201,7 @@ class DiffReader result.root << xml_result end - elsif action_name == "delete" + when "delete" # delete action. this takes a payload in API 0.6, so we need to do # most of the same checks that are done for the modify. with_model do |model, xml|