lib/resque/stat.rb
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 def redis warn '[Resque] [Deprecation] Resque::Stat #redis method is deprecated (please use #data_store)' data_store end def data_store @data_store ||= Resque.redis end def data_store=(data_store) @data_store = data_store end # Returns the int value of a stat, given a string stat name. def get(stat) data_store.stat(stat) 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, **opts) data_store.increment_stat(stat, by, **opts) 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) data_store.decrement_stat(stat,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, **opts) data_store.clear_stat(stat, **opts) end end end