class CMIS::Document
Public Class Methods
new(raw, repository)
click to toggle source
Calls superclass method
# File lib/cmis/document.rb, line 3 def initialize(raw, repository) super cmis_properties %w( cmis:isImmutable cmis:isLatestVersion cmis:isMajorVersion cmis:isLatestMajorVersion cmis:isPrivateWorkingCopy cmis:versionLabel cmis:versionSeriesId cmis:isVersionSeriesCheckedOut cmis:versionSeriesCheckedOutBy cmis:versionSeriesCheckedOutId cmis:checkinComment cmis:contentStreamLength cmis:contentStreamMimeType cmis:contentStreamFileName cmis:contentStreamId ) end
Public Instance Methods
content(opts = {})
click to toggle source
# File lib/cmis/document.rb, line 47 def content(opts = {}) if detached? @local_content else server.execute!({ cmisselector: 'content', repositoryId: repository.id, objectId: cmis_object_id }, opts) end rescue Exceptions::Constraint => e if e.message =~ /no content stream/ nil else raise e end end
content=(opts = {})
click to toggle source
# File lib/cmis/document.rb, line 71 def content=(opts = {}) opts = opts.symbolize_keys content = { stream: opts.delete(:stream), mime_type: opts.delete(:mime_type), filename: opts.delete(:filename) } if content[:stream].is_a? String content[:stream] = StringIO.new(content[:stream]) end if detached? @local_content = content else with_change_token do server.execute!({ cmisaction: 'setContent', repositoryId: repository.id, objectId: cmis_object_id, content: content, changeToken: change_token }, opts) end end end
content?()
click to toggle source
# File lib/cmis/document.rb, line 43 def content? !content_stream_length.nil? end
content_url(query_params = {})
click to toggle source
# File lib/cmis/document.rb, line 63 def content_url(query_params = {}) root_folder_url = server.connection.send(:infer_url, repository.id, true) content_url = "#{root_folder_url}?cmisselector=content&objectId=#{cmis_object_id}" query = query_params.map { |k, v| "#{k}=#{v}" }.join('&') content_url << "&#{query}" unless query.empty? content_url end
copy_in_folder(folder, opts = {})
click to toggle source
# File lib/cmis/document.rb, line 34 def copy_in_folder(folder, opts = {}) id = server.execute!({ cmisaction: 'createDocument', repositoryId: repository.id, sourceId: cmis_object_id, objectId: folder.cmis_object_id }, opts) repository.object(id) end
create_in_folder(folder, opts = {})
click to toggle source
# File lib/cmis/document.rb, line 15 def create_in_folder(folder, opts = {}) r = server.execute!({ cmisaction: 'createDocument', repositoryId: repository.id, properties: properties, objectId: folder.cmis_object_id, folderId: folder.cmis_object_id, content: @local_content }, opts) ObjectFactory.create(r, repository) end
create_unfiled(opts = {})
click to toggle source
# File lib/cmis/document.rb, line 26 def create_unfiled(opts = {}) r = server.execute!({ cmisaction: 'createDocument', repositoryId: repository.id, properties: properties, content: @local_content }, opts) ObjectFactory.create(r, repository) end