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.

Methods

delete   expire_all   get   set   setup   stats   valid?  

Attributes

local_store  [RW] 

Public Instance methods

[Source]

    # 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

[Source]

    # File lib/cachetastic/adapters/local_memory.rb, line 16
16:   def expire_all
17:     self.local_store = {}
18:   end

See Cachetastic::Adapters::Base

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/cachetastic/adapters/local_memory.rb, line 12
12:   def setup
13:     self.local_store = {}
14:   end

[Source]

    # 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

[Source]

    # File lib/cachetastic/adapters/local_memory.rb, line 8
 8:   def valid?
 9:     true
10:   end

[Validate]