Sha256: 719b8d507f6c75f6cc0a105d1fff790f81815a6a8a10a2d06cc46dee2828d804

Contents?: true

Size: 729 Bytes

Versions: 1

Compression:

Stored size: 729 Bytes

Contents

require 'forwardable'

module Couchbase
  class Document
    extend Forwardable

    attr_reader :id, :cas, :ttl, :content

    def initialize(java_doc)
      @id      = java_doc.id
      @cas     = java_doc.cas
      @ttl     = java_doc.expiry
      @content = java_doc.content
      @data    = nil
    end

    def to_s
      @content
    end

    def data
      @data ||= begin
                  MultiJson.load(@content)
                rescue MultiJson::ParseError
                  # TODO: figure out what to do here...
                end
    end
    alias_method :to_a, :data
    alias_method :to_h, :data
    alias_method :to_hash, :data

    def_delegators :data, :[], :each, :each_pair, :keys, :values, :key?
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
couchbase-jruby-client-1.0.4-java lib/couchbase/document.rb