Sha256: 2328e0641c8eb2c7b2147d2057d0cf28950456c34d789e952bbcefe0a620296b

Contents?: true

Size: 429 Bytes

Versions: 4

Compression:

Stored size: 429 Bytes

Contents

class Kredis::Types::Counter < Kredis::Types::Proxying
  proxying :multi, :set, :incrby, :decrby, :get, :del, :exists?

  attr_accessor :expires_in

  def increment(by: 1)
    multi do
      set 0, ex: expires_in, nx: true
      incrby by
    end[-1]
  end

  def decrement(by: 1)
    multi do
      set 0, ex: expires_in, nx: true
      decrby by
    end[-1]
  end

  def value
    get.to_i
  end

  def reset
    del
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kredis-1.5.0 lib/kredis/types/counter.rb
kredis-1.4.0 lib/kredis/types/counter.rb
kredis-1.3.0.1 lib/kredis/types/counter.rb
kredis-1.3.0 lib/kredis/types/counter.rb