class Trifle::Stats::Driver::Process

Public Class Methods

new() click to toggle source
# File lib/trifle/stats/driver/process.rb, line 10
def initialize
  @data = {}
  @separator = '::'
end

Public Instance Methods

get(key:) click to toggle source
# File lib/trifle/stats/driver/process.rb, line 31
def get(key:)
  self.class.unpack(
    hash: @data.fetch(key.join(@separator), {})
  )
end
inc(key:, **values) click to toggle source
# File lib/trifle/stats/driver/process.rb, line 15
def inc(key:, **values)
  self.class.pack(hash: values).each do |k, c|
    d = @data.fetch(key.join(@separator), {})
    d[k] = d[k].to_i + c
    @data[key.join(@separator)] = d
  end
end
set(key:, **values) click to toggle source
# File lib/trifle/stats/driver/process.rb, line 23
def set(key:, **values)
  self.class.pack(hash: values).each do |k, c|
    d = @data.fetch(key.join(@separator), {})
    d[k] = c
    @data[key.join(@separator)] = d
  end
end