class Trocla::Stores::Moneta

the default moneta based store

Attributes

moneta[R]

Public Class Methods

new(config,trocla) click to toggle source
Calls superclass method Trocla::Store.new
# File lib/trocla/stores/moneta.rb, line 4
def initialize(config,trocla)
  super(config,trocla)
  require 'moneta'
  # load expire support by default
  adapter_options = { :expires => true }.merge(
                        store_config['adapter_options']||{})
  @moneta = Moneta.new(store_config['adapter'],adapter_options)
end

Public Instance Methods

get(key,format) click to toggle source
# File lib/trocla/stores/moneta.rb, line 13
def get(key,format)
  moneta.fetch(key, {})[format]
end

Private Instance Methods

delete_all(key) click to toggle source
# File lib/trocla/stores/moneta.rb, line 37
def delete_all(key)
  moneta.delete(key)
end
delete_format(key,format) click to toggle source
# File lib/trocla/stores/moneta.rb, line 40
def delete_format(key,format)
  old_val = (h = moneta.fetch(key,{})).delete(format)
  h.empty? ? moneta.delete(key) : moneta.store(key,h,moneta_options(key,{}))
  old_val
end
moneta_options(key,options) click to toggle source
# File lib/trocla/stores/moneta.rb, line 45
def moneta_options(key,options)
  res = {}
  if options.key?('expires')
    res[:expires] = options['expires']
  elsif e = moneta.fetch(key, {})['_expires']
    res[:expires] = e
  end
  res
end
set_format(key,format,value,options) click to toggle source
# File lib/trocla/stores/moneta.rb, line 31
def set_format(key,format,value,options)
  moneta.store(key,
               moneta.fetch(key,{}).merge({ format => value }),
               moneta_options(key,options))
end
set_plain(key,value,options) click to toggle source
# File lib/trocla/stores/moneta.rb, line 18
def set_plain(key,value,options)
  h = { 'plain' => value }
  mo = moneta_options(key,options)
  if options['expires'] && options['expires'] > 0
    h['_expires'] = options['expires']
  else
    # be sure that we disable the existing
    # expires if nothing is set.
    mo[:expires] = false
  end
  moneta.store(key,h,mo)
end