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