Module: Moneta::IncrementSupport Private

Overview

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

API:

  • private

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

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



12
13
14
# File 'lib/moneta/increment_support.rb', line 12

def self.included(base)
  base.supports(:increment) if base.respond_to?(:supports)
end

Instance Method Details

#increment(key, amount = 1, options = {}) ⇒ Object

Note:

Not every Moneta store implements this method, a NotImplementedError is raised if it is not supported.

Atomically increment integer value with key

This method also accepts negative amounts.

Parameters:

  • (defaults to: 1)
  • (defaults to: {})

Options Hash (options):

  • :prefix (String)

    Prefix key (See Transformer)

  • Other (Object)

    options as defined by the adapters or middleware

Returns:

  • value from store

API:

  • public



5
6
7
8
9
10
# File 'lib/moneta/increment_support.rb', line 5

def increment(key, amount = 1, options = {})
  existing = load(key, options)
  value = (existing == nil ? 0 : Integer(existing)) + amount
  store(key, value.to_s, options)
  value
end