class Fedora::Repository
def create(object)
def create(object) case object when Fedora::FedoraObject pid = (object.pid ? object : 'new') response = connection.post("#{url_for(pid)}?" + object.attributes.to_fedora_query, object.blob) if response.code == '201' object.pid = extract_pid(response) object.new_object = false true else false end when Fedora::Datastream raise ArgumentError, "Missing dsID attribute" if object.dsid.nil? extra_headers = {} extra_headers['Content-Type'] = object.attributes[:mimeType] if object.attributes[:mimeType] response = connection.post("#{url_for(object)}?" + object.attributes.to_fedora_query, object.blob, extra_headers) if response.code == '201' object.new_object = false true else false end else raise ArgumentError, "Unknown object type" end end