Froze rails gems
[depot.git] / vendor / rails / activeresource / lib / active_resource / formats / xml_format.rb
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 (file)
index 0000000..86c6cec
--- /dev/null
@@ -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