class Trifle::Stats::Driver::Redis

Attributes

client[RW]
prefix[RW]
separator[RW]

Public Class Methods

new(client = ::Redis.current, prefix: 'trfl') click to toggle source
# File lib/trifle/stats/driver/redis.rb, line 13
def initialize(client = ::Redis.current, prefix: 'trfl')
  @client = client
  @prefix = prefix
  @separator = '::'
end

Public Instance Methods

get(key:) click to toggle source
# File lib/trifle/stats/driver/redis.rb, line 33
def get(key:)
  pkey = ([prefix] + key).join(separator)

  self.class.unpack(
    hash: client.hgetall(pkey)
  )
end
inc(key:, **values) click to toggle source
# File lib/trifle/stats/driver/redis.rb, line 19
def inc(key:, **values)
  pkey = ([prefix] + key).join(separator)

  self.class.pack(hash: values).each do |k, c|
    client.hincrby(pkey, k, c)
  end
end
set(key:, **values) click to toggle source
# File lib/trifle/stats/driver/redis.rb, line 27
def set(key:, **values)
  pkey = ([prefix] + key).join(separator)

  client.hmset(pkey, *self.class.pack(hash: values))
end