Sha256: 79e107672979cc91a2a7fd4a97223c850ee23063a16791faebf147156c464853

Contents?: true

Size: 1.13 KB

Versions: 10

Compression:

Stored size: 1.13 KB

Contents

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

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

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

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

      connection.do_request(params, query, headers).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

    def inspect
      "#{self.class}[#{@options[:service_url]}]"
    end

    private

    def marshal_dump
      @options
    end

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

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
cmis-ruby-0.5.20 lib/cmis/server.rb
cmis-ruby-0.5.19 lib/cmis/server.rb
cmis-ruby-0.5.18 lib/cmis/server.rb
cmis-ruby-0.5.17 lib/cmis/server.rb
cmis-ruby-0.5.16 lib/cmis/server.rb
cmis-ruby-0.5.15 lib/cmis/server.rb
cmis-ruby-0.5.14 lib/cmis/server.rb
cmis-ruby-0.5.13 lib/cmis/server.rb
cmis-ruby-0.5.12 lib/cmis/server.rb
cmis-ruby-0.5.11 lib/cmis/server.rb