class CMIS::Folder

Public Class Methods

new(raw, repository) click to toggle source
Calls superclass method
# File lib/cmis/folder.rb, line 5
def initialize(raw, repository)
  super
  cmis_properties %w( cmis:parentId cmis:path
                      cmis:allowedChildObjectTypeIds )
end

Public Instance Methods

add(object, opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 55
def add(object, opts = {})
  server.execute!({ cmisaction: 'addObjectToFolder',
                    repositoryId: repository.id,
                    objectId: object.cmis_object_id,
                    folderId: cmis_object_id }, opts)
end
allowed_child_object_types() click to toggle source
# File lib/cmis/folder.rb, line 15
def allowed_child_object_types
  return nil unless allowed_child_object_type_ids
  allowed_child_object_type_ids.map { |type_id| repository.type(type_id) }
end
children(opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 20
def children(opts = {})
  Children.new(self, opts)
end
create(object, opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 30
def create(object, opts = {})
  case object
  when Document
    return object.create_in_folder(self, opts)
  when Folder
    o = create_in_self(object, 'createFolder', opts)
  when Policy
    o = create_in_self(object, 'createPolicy', opts)
  when Item
    o = create_in_self(object, 'createItem', opts)
  when Relationship
    raise "`cmis:relationship` is not fileable. Use Repository#create_relationship."
  else
    raise "Unexpected base_type_id: #{object.base_type_id}"
  end

  ObjectFactory.create(o, repository)
end
delete_tree(opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 49
def delete_tree(opts = {})
  server.execute!({ cmisaction: 'deleteTree',
                    repositoryId: repository.id,
                    objectId: cmis_object_id }, opts)
end
folder_tree(opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 24
def folder_tree(opts = {})
  server.execute!({ cmisselector: 'folderTree',
                    repositoryId: repository.id,
                    objectId: cmis_object_id }, opts)
end
parent(opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 11
def parent(opts = {})
  repository.object(parent_id, opts) if parent_id
end
remove(object, opts = {}) click to toggle source
# File lib/cmis/folder.rb, line 62
def remove(object, opts = {})
  server.execute!({ cmisaction: 'removeObjectFromFolder',
                    repositoryId: repository.id,
                    objectId: object.cmis_object_id,
                    folderId: cmis_object_id }, opts)
end
root?() click to toggle source
# File lib/cmis/folder.rb, line 69
def root?
  cmis_object_id == repository.root_folder_id
end

Private Instance Methods

create_in_self(object, cmis_action, opts) click to toggle source
# File lib/cmis/folder.rb, line 75
def create_in_self(object, cmis_action, opts)
  server.execute!({ cmisaction: cmis_action,
                    repositoryId: repository.id,
                    properties: object.properties,
                    objectId: cmis_object_id }, opts)
end