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.
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/couchbase/view_row.rb', line 122 def initialize(bucket, data) @bucket = bucket @data = data @key = data.key @last = false case data when ViewRowWithDocs, SpatialViewRowWithDocs @id = data.id @doc = data.document when ViewRowReduced @value = MultiJson.load(data.value) when SpatialViewRowNoDocs, SpatialViewRowWithDocs @geometry = data.geometry @bbox = data.bbox end end |
Instance Attribute Details
#data ⇒ Hash
The hash built from JSON document.
This is complete response from the Couchbase
67 68 69 |
# File 'lib/couchbase/view_row.rb', line 67 def data @data end |
#doc ⇒ Hash
The document hash.
It usually available when view executed with :include_doc argument.
97 98 99 |
# File 'lib/couchbase/view_row.rb', line 97 def doc @doc end |
#id ⇒ String
The identificator of the document
104 105 106 |
# File 'lib/couchbase/view_row.rb', line 104 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.
79 80 81 |
# File 'lib/couchbase/view_row.rb', line 79 def key @key end |
#meta ⇒ Hash
The meta data linked to the document
111 112 113 |
# File 'lib/couchbase/view_row.rb', line 111 def end |
#value ⇒ Object
The value which was emitted by map function
88 89 90 |
# File 'lib/couchbase/view_row.rb', line 88 def value @value end |
Class Method Details
.wrap(bucket, data) ⇒ ViewRow
Wraps data hash into ViewRow instance
151 152 153 |
# File 'lib/couchbase/view_row.rb', line 151 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
164 165 166 |
# File 'lib/couchbase/view_row.rb', line 164 def [](key) @doc[key] end |
#[]=(key, value) ⇒ Object
Set document attribute
Set or update the attribute in the document hash
190 191 192 |
# File 'lib/couchbase/view_row.rb', line 190 def []=(key, value) @doc[key] = value end |
#has_key?(key) ⇒ true, false
Check attribute existence
176 177 178 |
# File 'lib/couchbase/view_row.rb', line 176 def has_key?(key) @doc.has_key?(key) end |
#inspect ⇒ Object
203 204 205 206 207 208 209 210 |
# File 'lib/couchbase/view_row.rb', line 203 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
199 200 201 |
# File 'lib/couchbase/view_row.rb', line 199 def last? @last end |