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

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
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 31
def delete_all(key)
  memory.delete(key)
end
delete_format(key,format) click to toggle source
# File lib/trocla/stores/memory.rb, line 34
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 51
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 41
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 27
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 23
def set_plain(key,value,options)
  memory[key] = { 'plain' => value }
end