Class: Couchbase::MutateInSpec
- Inherits:
-
Object
- Object
- Couchbase::MutateInSpec
- Defined in:
- lib/couchbase/subdoc.rb
Constant Summary collapse
- CAS =
"${Mutation.CAS}"
- SEQ_NO =
"${Mutation.seqno}"
- VALUE_CRC32C =
"${Mutation.value_crc32c}"
Instance Attribute Summary collapse
-
#param ⇒ Object
readonly
Returns the value of attribute param.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Class Method Summary collapse
-
.array_add_unique(path, value) ⇒ MutateInSpec
Creates a command with the intent of inserting a value into an existing JSON array, but only if the value is not already contained in the array (by way of string comparison).
-
.array_append(path, values) ⇒ MutateInSpec
Creates a command with the intention of appending a value to an existing JSON array.
-
.array_insert(path, values) ⇒ MutateInSpec
Creates a command with the intention of inserting a value into an existing JSON array.
-
.array_prepend(path, values) ⇒ MutateInSpec
Creates a command with the intention of prepending a value to an existing JSON array.
-
.decrement(path, delta) ⇒ MutateInSpec
Creates a command with the intent of decrementing a numerical field in a JSON object.
-
.increment(path, delta) ⇒ MutateInSpec
Creates a command with the intent of incrementing a numerical field in a JSON object.
-
.insert(path, value) ⇒ MutateInSpec
Creates a command with the intention of inserting a new value in a JSON object.
-
.remove(path) ⇒ MutateInSpec
Creates a command with the intention of removing an existing value in a JSON object.
-
.replace(path, value) ⇒ MutateInSpec
Creates a command with the intention of replacing an existing value in a JSON document.
-
.upsert(path, value) ⇒ MutateInSpec
Creates a command with the intention of upserting a value in a JSON object.
Instance Method Summary collapse
- #create_path ⇒ Object
- #create_path? ⇒ Boolean
- #expand_macros? ⇒ Boolean
- #xattr ⇒ Object
- #xattr? ⇒ Boolean
Instance Attribute Details
#param ⇒ Object (readonly)
Returns the value of attribute param.
256 257 258 |
# File 'lib/couchbase/subdoc.rb', line 256 def param @param end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
255 256 257 |
# File 'lib/couchbase/subdoc.rb', line 255 def path @path end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
254 255 256 |
# File 'lib/couchbase/subdoc.rb', line 254 def type @type end |
Class Method Details
.array_add_unique(path, value) ⇒ MutateInSpec
Creates a command with the intent of inserting a value into an existing JSON array, but only if the value is not already contained in the array (by way of string comparison).
Will error if the last element of the path does not exist or is not an array.
200 201 202 |
# File 'lib/couchbase/subdoc.rb', line 200 def self.array_add_unique(path, value) new(:array_add_unique, path, value) end |
.array_append(path, values) ⇒ MutateInSpec
Creates a command with the intention of appending a value to an existing JSON array.
Will error if the last element of the path does not exist or is not an array.
163 164 165 |
# File 'lib/couchbase/subdoc.rb', line 163 def self.array_append(path, values) new(:array_push_last, path, values) end |
.array_insert(path, values) ⇒ MutateInSpec
Creates a command with the intention of inserting a value into an existing JSON array.
Will error if the last element of the path does not exist or is not an array.
187 188 189 |
# File 'lib/couchbase/subdoc.rb', line 187 def self.array_insert(path, values) new(:array_insert, path, values) end |
.array_prepend(path, values) ⇒ MutateInSpec
Creates a command with the intention of prepending a value to an existing JSON array.
Will error if the last element of the path does not exist or is not an array.
175 176 177 |
# File 'lib/couchbase/subdoc.rb', line 175 def self.array_prepend(path, values) new(:array_push_first, path, values) end |
.decrement(path, delta) ⇒ MutateInSpec
Creates a command with the intent of decrementing a numerical field in a JSON object.
If the field does not exist, then it is created and takes the value of delta
* -1
224 225 226 |
# File 'lib/couchbase/subdoc.rb', line 224 def self.decrement(path, delta) new(:counter, path, -1 * delta.abs) end |
.increment(path, delta) ⇒ MutateInSpec
Creates a command with the intent of incrementing a numerical field in a JSON object.
If the field does not exist, then it is created and takes the value of delta
212 213 214 |
# File 'lib/couchbase/subdoc.rb', line 212 def self.increment(path, delta) new(:counter, path, delta.abs) end |
.insert(path, value) ⇒ MutateInSpec
Creates a command with the intention of inserting a new value in a JSON object.
Will error if the last element of the path already exists.
127 128 129 |
# File 'lib/couchbase/subdoc.rb', line 127 def self.insert(path, value) new(:dict_add, path, value) end |
.remove(path) ⇒ MutateInSpec
Creates a command with the intention of removing an existing value in a JSON object.
Will error if the path does not exist.
138 139 140 |
# File 'lib/couchbase/subdoc.rb', line 138 def self.remove(path) new(path.empty? ? :remove_doc : :remove, path, nil) end |
.replace(path, value) ⇒ MutateInSpec
Creates a command with the intention of replacing an existing value in a JSON document.
If the path is empty (“”), then the value will be used for the document’s full body. Will error if the last element of the path does not exist.
114 115 116 |
# File 'lib/couchbase/subdoc.rb', line 114 def self.replace(path, value) new(path.empty? ? :set_doc : :replace, path, value) end |
.upsert(path, value) ⇒ MutateInSpec
Creates a command with the intention of upserting a value in a JSON object.
That is, the value will be replaced if the path already exists, or inserted if not.
151 152 153 |
# File 'lib/couchbase/subdoc.rb', line 151 def self.upsert(path, value) new(:dict_upsert, path, value) end |
Instance Method Details
#create_path ⇒ Object
233 234 235 236 |
# File 'lib/couchbase/subdoc.rb', line 233 def create_path @create_path = true self end |
#create_path? ⇒ Boolean
242 243 244 |
# File 'lib/couchbase/subdoc.rb', line 242 def create_path? @create_path end |
#expand_macros? ⇒ Boolean
246 247 248 |
# File 'lib/couchbase/subdoc.rb', line 246 def @expand_macros end |
#xattr ⇒ Object
228 229 230 231 |
# File 'lib/couchbase/subdoc.rb', line 228 def xattr @xattr = true self end |
#xattr? ⇒ Boolean
238 239 240 |
# File 'lib/couchbase/subdoc.rb', line 238 def xattr? @xattr end |