module DataMapper module Serialize def to_xml(options = {}) xml = Builder::XmlMarkup.new(:indent => 2) xml.instruct! append_resource_xml(xml) end protected def append_resource_xml(element) element.__send__(xml_element_name) do |object| self.class.properties(self.repository.name).each do |property| object.__send__(property.name, self.send(property.name)) end end end end class Collection def to_xml xml = Builder::XmlMarkup.new(:indent => 2) xml.instruct! xml_name = @model.new.send(:xml_element_name) xml.__send__(xml_name.pluralize) do |resources_element| self.each do |object| object.send(:append_resource_xml, resources_element) end end end end end