Sha256: 354d4f250af8a6f2c2be5893b8fc28c4d62706d69e4ba48ffca4da0afb30a31f

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

module CMIS
  class Server < Connection
    def initialize(options = {})
      @options = options.symbolize_keys
    end

    def execute!(params = {}, options = {})
      params.symbolize_keys!

      options.symbolize_keys!
      query = options.fetch(:query, {})
      headers = options.fetch(:headers, {})

      response = connection.do_request(params, query, headers)
      response.body
    end

    def repositories(opts = {})
      result = execute!({}, opts)

      result.values.map do |r|
        Repository.new(r, self)
      end
    end

    def repository(repository_id, opts = {})
      result = execute!({ cmisselector: 'repositoryInfo',
                          repositoryId: repository_id }, opts)

      Repository.new(result[repository_id], self)
    end

    def repository?(repository_id)
      repository(repository_id)
      true
    rescue Exceptions::ObjectNotFound
      false
    end

    private

    def connection
      @connection ||= Connection.new(@options)
    end

    def marshal_dump
      @options
    end

    def marshal_load(options)
      @options = options
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cmis-ruby-0.4.8 lib/cmis/server.rb