Class: Couchbase::Options::Decrement

Inherits:
Base
  • Object
show all
Defined in:
lib/couchbase/options.rb,
/code/couchbase-ruby-client/lib/couchbase/options.rb

Overview

Instance Attribute Summary collapse

Attributes inherited from Base

#client_context, #parent_span, #retry_strategy, #timeout

Instance Method Summary collapse

Constructor Details

#initialize(delta: 1, initial: nil, expiry: nil, durability_level: :none, replicate_to: :none, persist_to: :none, timeout: nil, retry_strategy: nil, client_context: nil, parent_span: nil) {|self| ... } ⇒ Decrement

Creates an instance of options for BinaryCollection#decrement

Parameters:

  • delta (Integer) (defaults to: 1)

    the delta for the operation

  • initial (Integer) (defaults to: nil)

    if present, holds the initial value

  • expiry (Integer, #in_seconds, Time, nil) (defaults to: nil)

    if set, holds the expiration for the operation

  • durability_level (Symbol) (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.

  • replicate_to (Symbol) (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.

  • persist_to (Symbol) (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).

  • timeout (Integer, #in_milliseconds, nil) (defaults to: nil)
  • retry_strategy (Proc, nil) (defaults to: nil)

    the custom retry strategy, if set

  • client_context (Hash, nil) (defaults to: nil)

    the client context data, if set

  • parent_span (Span, nil) (defaults to: nil)

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

Yield Parameters:

Raises:

  • (ArgumentError)


1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
# File 'lib/couchbase/options.rb', line 1471

def initialize(delta: 1,
               initial: nil,
               expiry: nil,
               durability_level: :none,
               replicate_to: :none,
               persist_to: :none,
               timeout: nil,
               retry_strategy: nil,
               client_context: nil,
               parent_span: nil)
  raise ArgumentError, "the delta cannot be less than 0" if delta.negative?

  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
  @delta = delta
  @initial = initial
  @expiry = expiry
  if durability_level != :none && (replicate_to != :none || persist_to != :none)
    raise ArgumentError, "durability_level conflicts with replicate_to and persist_to options"
  end

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

Instance Attribute Details

#deltaInteger

Returns:

  • (Integer)


1429
1430
1431
# File 'lib/couchbase/options.rb', line 1429

def delta
  @delta
end

#durability_levelSymbol

Returns:

  • (Symbol)


1432
1433
1434
# File 'lib/couchbase/options.rb', line 1432

def durability_level
  @durability_level
end

#expiryInteger, #in_seconds

Returns:

  • (Integer, #in_seconds)


1431
1432
1433
# File 'lib/couchbase/options.rb', line 1431

def expiry
  @expiry
end

#initialInteger

Returns:

  • (Integer)


1430
1431
1432
# File 'lib/couchbase/options.rb', line 1430

def initial
  @initial
end