Class: Couchbase::Options::Prepend

Inherits:
Base
  • Object
show all
Defined in:
lib/couchbase/options.rb

Overview

Constant Summary collapse

DEFAULT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

API:

  • private

Prepend.new.freeze

Instance Attribute Summary collapse

Attributes inherited from Base

#client_context, #parent_span, #retry_strategy, #timeout

Instance Method Summary collapse

Constructor Details

#initialize(cas: nil, durability_level: :none, replicate_to: :none, persist_to: :none, timeout: nil, retry_strategy: nil, client_context: nil, parent_span: nil) {|self| ... } ⇒ Prepend

Creates an instance of options for BinaryCollection#prepend

Yield Parameters:

Parameters:

  • (defaults to: nil)

    The default CAS used (0 means no CAS in this context)

  • (defaults to: :none)

    level of durability

    :none

    no enhanced durability required for the mutation

    :majority

    the mutation must be replicated to a majority of the Data Service nodes (that is, held in the memory allocated to the bucket)

    :majority_and_persist_to_active

    The mutation must be replicated to a majority of the Data Service nodes. Additionally, it must be persisted (that is, written and synchronised to disk) on the node hosting the active partition (vBucket) for the data.

    :persist_to_majority

    The mutation must be persisted to a majority of the Data Service nodes. Accordingly, it will be written to disk on those nodes.

  • (defaults to: :none)

    number of nodes to replicate

    :none

    do not apply any replication requirements.

    :one

    wait for replication to at least one node.

    :two

    wait for replication to at least two nodes.

    :three

    wait for replication to at least three nodes.

  • (defaults to: :none)

    number of nodes to persist

    :none

    do not apply any persistence requirements.

    :active

    wait for persistence to active node

    :one

    wait for persistence to at least one node.

    :two

    wait for persistence to at least two nodes.

    :three

    wait for persistence to at least three nodes.

    :four

    wait for persistence to four nodes (active and replicas).

  • (defaults to: nil)
  • (defaults to: nil)

    the custom retry strategy, if set

  • (defaults to: nil)

    the client context data, if set

  • (defaults to: nil)

    if set holds the parent span, that should be used for this request



1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
# File 'lib/couchbase/options.rb', line 1297

def initialize(cas: nil,
               durability_level: :none,
               replicate_to: :none,
               persist_to: :none,
               timeout: nil,
               retry_strategy: nil,
               client_context: nil,
               parent_span: nil)
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
  @cas = cas

  if durability_level != :none && (replicate_to != :none || persist_to != :none)
    raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
  end

  @durability_level = durability_level
  @replicate_to = replicate_to
  @persist_to = persist_to
  yield self if block_given?
end

Instance Attribute Details

#casInteger

Returns:



1257
1258
1259
# File 'lib/couchbase/options.rb', line 1257

def cas
  @cas
end

#durability_levelSymbol

Returns:



1258
1259
1260
# File 'lib/couchbase/options.rb', line 1258

def durability_level
  @durability_level
end

#persist_toSymbol

Returns:



1260
1261
1262
# File 'lib/couchbase/options.rb', line 1260

def persist_to
  @persist_to
end

#replicate_toSymbol

Returns:



1259
1260
1261
# File 'lib/couchbase/options.rb', line 1259

def replicate_to
  @replicate_to
end

Instance Method Details

#to_backendObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



1319
1320
1321
1322
1323
1324
1325
1326
1327
# File 'lib/couchbase/options.rb', line 1319

def to_backend
  {
    timeout: Utils::Time.extract_duration(@timeout),
    cas: @cas,
    durability_level: @durability_level,
    persist_to: @persist_to,
    replicate_to: @replicate_to,
  }
end