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.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/couchbase/view_row.rb', line 103 def initialize(bucket, data) @bucket = bucket @data = data @key = data.key @value = data.value @id = data.id @last = false case data when ViewRowWithDocs, SpatialViewRowWithDocs @doc = data.document 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
48 49 50 |
# File 'lib/couchbase/view_row.rb', line 48 def data @data end |
#doc ⇒ Hash
The document hash.
It usually available when view executed with :include_doc
argument.
78 79 80 |
# File 'lib/couchbase/view_row.rb', line 78 def doc @doc end |
#id ⇒ String
The identificator of the document
85 86 87 |
# File 'lib/couchbase/view_row.rb', line 85 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.
60 61 62 |
# File 'lib/couchbase/view_row.rb', line 60 def key @key end |
#meta ⇒ Hash
The meta data linked to the document
92 93 94 |
# File 'lib/couchbase/view_row.rb', line 92 def @meta end |
#value ⇒ Object
The value which was emitted by map function
69 70 71 |
# File 'lib/couchbase/view_row.rb', line 69 def value @value end |
Class Method Details
.wrap(bucket, data) ⇒ ViewRow
Wraps data hash into ViewRow instance
131 132 133 |
# File 'lib/couchbase/view_row.rb', line 131 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
144 145 146 |
# File 'lib/couchbase/view_row.rb', line 144 def [](key) @doc[key] end |
#[]=(key, value) ⇒ Object
Set document attribute
Set or update the attribute in the document hash
170 171 172 |
# File 'lib/couchbase/view_row.rb', line 170 def []=(key, value) @doc[key] = value end |
#has_key?(key) ⇒ true, false
Check attribute existence
156 157 158 |
# File 'lib/couchbase/view_row.rb', line 156 def has_key?(key) @doc.has_key?(key) end |
#inspect ⇒ Object
183 184 185 186 187 188 189 190 |
# File 'lib/couchbase/view_row.rb', line 183 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
179 180 181 |
# File 'lib/couchbase/view_row.rb', line 179 def last? @last end |