Sha256: b9765884e6cb9f44b2b4816b28f126abffc384f1234ab1f09bc2e7ae5a7030bc
Contents?: true
Size: 1.33 KB
Versions: 19
Compression:
Stored size: 1.33 KB
Contents
module Resque # The stat subsystem. Used to keep track of integer counts. # # Get a stat: Stat[name] # Incr a stat: Stat.incr(name) # Decr a stat: Stat.decr(name) # Kill a stat: Stat.clear(name) module Stat extend self extend Helpers # Returns the int value of a stat, given a string stat name. def get(stat) value = mongo_stats.find_one :stat => stat value.nil? ? 0 : value['value'] end # Alias of `get` def [](stat) get(stat) end # For a string stat name, increments the stat by one. # # Can optionally accept a second int parameter. The stat is then # incremented by that amount. def incr(stat, by = 1) mongo_stats.update({:stat => stat}, {'$inc' => {:value => by}}, :upsert => true) end # Increments a stat by one. def <<(stat) incr stat end # For a string stat name, decrements the stat by one. # # Can optionally accept a second int parameter. The stat is then # decremented by that amount. def decr(stat, by = 1) mongo_stats.update({ :stat => stat}, { '$inc' => { :value => -by}}) end # Decrements a stat by one. def >>(stat) decr stat end # Removes a stat from Redis, effectively setting it to 0. def clear(stat) mongo_stats.remove({:stat => stat}) end end end
Version data entries
19 entries across 19 versions & 2 rubygems