Module: CounterCachier

Defined in:
lib/counter_cachier/cachier.rb,
lib/counter_cachier/mounter.rb,
lib/counter_cachier/version.rb,
lib/counter_cachier/counter_cachier.rb

Defined Under Namespace

Modules: ClassMethods Classes: Cachier, Mounter

Constant Summary collapse

VERSION =
"0.0.3"

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



29
30
31
32
33
34
# File 'lib/counter_cachier/counter_cachier.rb', line 29

def self.included(base)
  base.extend ClassMethods
  class << base
    attr_accessor :cachiers
  end
end

.key(object, name) ⇒ Object



12
13
14
# File 'lib/counter_cachier/counter_cachier.rb', line 12

def key(object, name)
  "counter_cachier::#{object.class.to_s}::#{object.id}::#{name}"
end

.read(object, cachier) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/counter_cachier/counter_cachier.rb', line 16

def read(object, cachier)
  value = redis.get(key(object, cachier.name))
  if value.nil?
    value = cachier.write(object)
  end
  value.to_i
end

.redisObject



8
9
10
# File 'lib/counter_cachier/counter_cachier.rb', line 8

def redis
  @redis ||= $redis
end

.redis=(r) ⇒ Object



4
5
6
# File 'lib/counter_cachier/counter_cachier.rb', line 4

def redis=(r)
  @redis = r
end

.write(object, name, value) ⇒ Object



24
25
26
# File 'lib/counter_cachier/counter_cachier.rb', line 24

def write(object, name, value)
  redis.set key(object, name), value
end