Module: Resque::Stat

Extended by:
Helpers, Stat
Included in:
Stat
Defined in:
lib/resque/stat.rb

Overview

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)

Instance Method Summary collapse

Methods included from Helpers

classify, constantize, decode, encode, mongo_stats, mongo_workers

Instance Method Details

#<<(stat) ⇒ Object

Increments a stat by one.



32
33
34
# File 'lib/resque/stat.rb', line 32

def <<(stat)
  incr stat
end

#>>(stat) ⇒ Object

Decrements a stat by one.



45
46
47
# File 'lib/resque/stat.rb', line 45

def >>(stat)
  decr stat
end

#[](stat) ⇒ Object

Alias of ‘get`



19
20
21
# File 'lib/resque/stat.rb', line 19

def [](stat)
  get(stat)
end

#clear(stat) ⇒ Object

Removes a stat from Redis, effectively setting it to 0.



50
51
52
# File 'lib/resque/stat.rb', line 50

def clear(stat)
  mongo_stats.remove({:stat => stat})
end

#decr(stat, by = 1) ⇒ Object

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.



40
41
42
# File 'lib/resque/stat.rb', line 40

def decr(stat, by = 1)
  mongo_stats.update({ :stat => stat}, { '$inc' => { :value => -by}})
end

#get(stat) ⇒ Object

Returns the int value of a stat, given a string stat name.



13
14
15
16
# File 'lib/resque/stat.rb', line 13

def get(stat)
  value = mongo_stats.find_one :stat => stat
  value.nil? ? 0 : value['value']
end

#incr(stat, by = 1) ⇒ Object

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.



27
28
29
# File 'lib/resque/stat.rb', line 27

def incr(stat, by = 1)
  mongo_stats.update({:stat => stat}, {'$inc' => {:value => by}}, :upsert => true)
end