| Class | Cachetastic::Adapters::LocalMemory |
| In: |
lib/cachetastic/adapters/local_memory.rb
|
| Parent: | Cachetastic::Adapters::Base |
An adapter/store that keeps objects in local memory. This is great for development/testing, but probably shouldn‘t be put into production. It‘s also a very good example of how to write a adapter.
| local_store | [RW] |
# File lib/cachetastic/adapters/local_memory.rb, line 37
37: def delete(key, delay = 0)
38: if delay <= 0
39: self.local_store.delete(key.to_s)
40: else
41: so = self.get(key)
42: if so
43: self.set(so.key, so.value, delay)
44: end
45: end
46: end
# File lib/cachetastic/adapters/local_memory.rb, line 16
16: def expire_all
17: self.local_store = {}
18: end
See Cachetastic::Adapters::Base
# File lib/cachetastic/adapters/local_memory.rb, line 21
21: def get(key)
22: so = self.local_store[key.to_s]
23: if so
24: if so.invalid?
25: self.delete(key)
26: return nil
27: end
28: return so.value
29: end
30: return nil
31: end
# File lib/cachetastic/adapters/local_memory.rb, line 33
33: def set(key, value, expiry = 0)
34: self.local_store[key.to_s] = Cachetastic::Adapters::StoreObject.new(key.to_s, value, expiry)
35: end
# File lib/cachetastic/adapters/local_memory.rb, line 12
12: def setup
13: self.local_store = {}
14: end
# File lib/cachetastic/adapters/local_memory.rb, line 48
48: def stats
49: super
50: num_keys = self.local_store.size
51: s = "Number of Entries: #{num_keys}\n"
52: if num_keys > 0
53: expiries = []
54: keys = []
55: self.local_store.each do |key,value|
56: keys << key
57: expiries << value.expires_at
58: end
59: expiries.sort! {|x, y| x <=> y}
60: oldest_expiry = expiries.first
61: newest_expiry = expiries.last
62: s += "Oldest Entry: #{oldest_expiry}\nNewest Entry: #{newest_expiry}\nKeys: #{keys.inspect}\n"
63: end
64: puts s + "\n"
65: end