Method: Moneta::Adapters::LMDB#increment

Defined in:
lib/moneta/adapters/lmdb.rb

#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:

  • key (Object)
  • amount (Integer) (defaults to: 1)
  • options (Hash) (defaults to: {})

Options Hash (options):

  • :prefix (String)

    Prefix key (See Transformer)

  • Other (Object)

    options as defined by the adapters or middleware

Returns:

  • (Object)

    value from store



65
66
67
68
69
70
71
72
# File 'lib/moneta/adapters/lmdb.rb', line 65

def increment(key, amount = 1, options = {})
  @backend.transaction do
    value = @db.get(key)
    value = Utils.to_int(value) + amount
    @db.put(key, value.to_s, Utils.only(options, *PUT_FLAGS))
    value
  end
end