module DataMapper module Resource # Converts a Resource to a JSON representation. def to_couch_json(dirty = false) property_list = self.class.properties.select { |key, value| dirty ? self.dirty_attributes.key?(key) : true } data = {} for property in property_list do data[property.field] = if property.type.respond_to?(:dump) property.type.dump(property.get!(self), property) else property.get!(self) end end data.delete('_attachments') if data['_attachments'].nil? || data['_attachments'].empty? data.to_json end end end