class Trocla::Stores::Memory
a simple in memory store just as an example
Attributes
memory[R]
Public Class Methods
new(config,trocla)
click to toggle source
Calls superclass method
Trocla::Store::new
# File lib/trocla/stores/memory.rb, line 4 def initialize(config,trocla) super(config,trocla) @memory = Hash.new({}) end
Public Instance Methods
formats(key)
click to toggle source
# File lib/trocla/stores/memory.rb, line 22 def formats(key) memory[key].empty? ? nil : memory[key].keys end
get(key,format)
click to toggle source
# File lib/trocla/stores/memory.rb, line 9 def get(key,format) unless expired?(key) memory[key][format] else delete_all(key) nil end end
search(key)
click to toggle source
# File lib/trocla/stores/memory.rb, line 26 def search(key) r = memory.keys.grep(/#{key}/) r.empty? ? nil : r end
set(key,format,value,options={})
click to toggle source
Calls superclass method
Trocla::Store#set
# File lib/trocla/stores/memory.rb, line 17 def set(key,format,value,options={}) super(key,format,value,options) set_expires(key,options['expires']) end
Private Instance Methods
delete_all(key)
click to toggle source
# File lib/trocla/stores/memory.rb, line 40 def delete_all(key) memory.delete(key) end
delete_format(key,format)
click to toggle source
# File lib/trocla/stores/memory.rb, line 43 def delete_format(key,format) old_val = (h = memory[key]).delete(format) h.empty? ? memory.delete(key) : memory[key] = h set_expires(key,nil) old_val end
expired?(key)
click to toggle source
# File lib/trocla/stores/memory.rb, line 60 def expired?(key) memory.key?(key) && (a = memory[key]['_expires_at']).is_a?(Time) && \ (a < Time.now) end
set_expires(key,expires)
click to toggle source
# File lib/trocla/stores/memory.rb, line 50 def set_expires(key,expires) expires = memory[key]['_expires'] if expires.nil? if expires && expires > 0 memory[key]['_expires'] = expires memory[key]['_expires_at'] = Time.now + expires else memory[key].delete('_expires') memory[key].delete('_expires_at') end end
set_format(key,format,value,options)
click to toggle source
# File lib/trocla/stores/memory.rb, line 36 def set_format(key,format,value,options) memory[key].merge!({ format => value }) end
set_plain(key,value,options)
click to toggle source
# File lib/trocla/stores/memory.rb, line 32 def set_plain(key,value,options) memory[key] = { 'plain' => value } end