Class: MethodCache::LocalCache

Inherits:
Object
  • Object
show all
Defined in:
lib/method_cache/local_cache.rb

Instance Method Summary collapse

Constructor Details

#initializeLocalCache

Returns a new instance of LocalCache.



3
4
5
# File 'lib/method_cache/local_cache.rb', line 3

def initialize
  clear
end

Instance Method Details

#cached_at(key) ⇒ Object



51
52
53
# File 'lib/method_cache/local_cache.rb', line 51

def cached_at(key)
  @cached_at[key]
end

#clearObject



7
8
9
10
11
# File 'lib/method_cache/local_cache.rb', line 7

def clear
  @data       = {}
  @cached_at  = {}
  @expires_at = {}
end

#count(key) ⇒ Object



21
22
23
# File 'lib/method_cache/local_cache.rb', line 21

def count(key)
  get(key).to_i
end

#decr(key, amount) ⇒ Object



43
44
45
# File 'lib/method_cache/local_cache.rb', line 43

def decr(key, amount)
  incr(key, -amount)
end

#delete(key) ⇒ Object



33
34
35
36
37
# File 'lib/method_cache/local_cache.rb', line 33

def delete(key)
  @cached_at.delete(key)
  @expires_at.delete(key)
  @data.delete(key)
end

#expires_at(key) ⇒ Object



47
48
49
# File 'lib/method_cache/local_cache.rb', line 47

def expires_at(key)
  @expires_at[key]
end

#get(key) ⇒ Object Also known as: []



13
14
15
16
17
18
# File 'lib/method_cache/local_cache.rb', line 13

def get(key)
  if expires = expires_at(key)
    delete(key) if expires <= Time.now
  end
  @data[key]
end

#incr(key, amount) ⇒ Object



39
40
41
# File 'lib/method_cache/local_cache.rb', line 39

def incr(key, amount)
  @data[key] = count(key) + amount
end

#set(key, value, expiry) ⇒ Object Also known as: []=, write



25
26
27
28
29
# File 'lib/method_cache/local_cache.rb', line 25

def set(key, value, expiry)
  @cached_at[key]  = Time.now
  @expires_at[key] = expiry_to_time(expiry)
  @data[key]       = value
end