Class: Couchbase::ViewRow
- Inherits:
-
Object
- Object
- Couchbase::ViewRow
- Includes:
- Constants
- Defined in:
- lib/couchbase/view_row.rb
Overview
This class encapsulates structured JSON document
It behaves like Hash for document included into row, and has access methods to row data as well.
Direct Known Subclasses
Constant Summary
Constants included from Constants
Constants::S_CAS, Constants::S_DOC, Constants::S_FLAGS, Constants::S_ID, Constants::S_IS_LAST, Constants::S_KEY, Constants::S_META, Constants::S_VALUE
Instance Attribute Summary collapse
-
#data ⇒ Hash
The hash built from JSON document.
-
#doc ⇒ Hash
The document hash.
-
#id ⇒ String
The identificator of the document.
-
#key ⇒ Object
The key which was emitted by map function.
-
#meta ⇒ Hash
The meta data linked to the document.
-
#value ⇒ Object
The value which was emitted by map function.
Class Method Summary collapse
-
.wrap(bucket, data) ⇒ ViewRow
Wraps data hash into ViewRow instance.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Get attribute of the document.
-
#[]=(key, value) ⇒ Object
Set document attribute.
-
#has_key?(key) ⇒ true, false
Check attribute existence.
-
#initialize(bucket, data) ⇒ ViewRow
constructor
Initialize the document instance.
- #inspect ⇒ Object
-
#last? ⇒ true, false
Signals if this row is last in a stream.
Constructor Details
#initialize(bucket, data) ⇒ ViewRow
Initialize the document instance
It takes reference to the bucket, data hash.
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/couchbase/view_row.rb', line 96 def initialize(bucket, data) @bucket = bucket @data = data @key = data[S_KEY] @value = data[S_VALUE] if data[S_DOC] @meta = data[S_DOC][S_META] @doc = data[S_DOC][S_VALUE] end @id = data[S_ID] || @meta && @meta[S_ID] @last = data.delete(S_IS_LAST) || false end |
Instance Attribute Details
#data ⇒ Hash
The hash built from JSON document.
This is complete response from the Couchbase
41 42 43 |
# File 'lib/couchbase/view_row.rb', line 41 def data @data end |
#doc ⇒ Hash
The document hash.
It usually available when view executed with :include_doc
argument.
71 72 73 |
# File 'lib/couchbase/view_row.rb', line 71 def doc @doc end |
#id ⇒ String
The identificator of the document
78 79 80 |
# File 'lib/couchbase/view_row.rb', line 78 def id @id end |
#key ⇒ Object
The key which was emitted by map function
Usually it is String (the object _id
) but it could be also any compount JSON value.
53 54 55 |
# File 'lib/couchbase/view_row.rb', line 53 def key @key end |
#meta ⇒ Hash
The meta data linked to the document
85 86 87 |
# File 'lib/couchbase/view_row.rb', line 85 def @meta end |
#value ⇒ Object
The value which was emitted by map function
62 63 64 |
# File 'lib/couchbase/view_row.rb', line 62 def value @value end |
Class Method Details
.wrap(bucket, data) ⇒ ViewRow
Wraps data hash into ViewRow instance
120 121 122 |
# File 'lib/couchbase/view_row.rb', line 120 def self.wrap(bucket, data) self.new(bucket, data) end |
Instance Method Details
#[](key) ⇒ Object
Get attribute of the document
Fetches attribute from underlying document hash
133 134 135 |
# File 'lib/couchbase/view_row.rb', line 133 def [](key) @doc[key] end |
#[]=(key, value) ⇒ Object
Set document attribute
Set or update the attribute in the document hash
159 160 161 |
# File 'lib/couchbase/view_row.rb', line 159 def []=(key, value) @doc[key] = value end |
#has_key?(key) ⇒ true, false
Check attribute existence
145 146 147 |
# File 'lib/couchbase/view_row.rb', line 145 def has_key?(key) @doc.has_key?(key) end |
#inspect ⇒ Object
172 173 174 175 176 177 178 179 |
# File 'lib/couchbase/view_row.rb', line 172 def inspect desc = "#<#{self.class.name}:#{self.object_id}" [:@id, :@key, :@value, :@doc, :@meta].each do |iv| desc << " #{iv}=#{instance_variable_get(iv).inspect}" end desc << ">" desc end |
#last? ⇒ true, false
Signals if this row is last in a stream
168 169 170 |
# File 'lib/couchbase/view_row.rb', line 168 def last? @last end |