X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factiveresource%2Flib%2Factive_resource%2Fformats%2Fxml_format.rb;fp=vendor%2Frails%2Factiveresource%2Flib%2Factive_resource%2Fformats%2Fxml_format.rb;h=86c6cec745d9ccc088244951812bf236b5522b57;hb=d115f2e23823271635bad69229a42cd8ac68debe;hp=0000000000000000000000000000000000000000;hpb=37cb670bf3ddde90b214e591f100ed4446469484;p=depot.git diff --git a/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb b/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb new file mode 100644 index 0000000..86c6cec --- /dev/null +++ b/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb @@ -0,0 +1,34 @@ +module ActiveResource + module Formats + module XmlFormat + extend self + + def extension + "xml" + end + + def mime_type + "application/xml" + end + + def encode(hash, options={}) + hash.to_xml(options) + end + + def decode(xml) + from_xml_data(Hash.from_xml(xml)) + end + + private + # Manipulate from_xml Hash, because xml_simple is not exactly what we + # want for Active Resource. + def from_xml_data(data) + if data.is_a?(Hash) && data.keys.size == 1 + data.values.first + else + data + end + end + end + end +end