class Sequel::Plugins::QueryCache::Driver

Attributes

serializer[R]
store[R]

Public Class Methods

from_store(store, opts={}) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 5
def self.from_store(store, opts={})
  case store.class.name
  when 'Memcache'
    require 'sequel-query-cache/driver/memcache'
    MemcacheDriver.new(store, opts)
  when 'Dalli::Client'
    require 'sequel-query-cache/driver/dalli'
    DalliDriver.new(store, opts)
  else
    Driver.new(store, opts)
  end
end
new(store, opts={}) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 20
def initialize(store, opts={})
  @store = store
  @serializer = opts[:serializer] || _default_serializer
end

Public Instance Methods

del(key) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 36
def del(key)
  store.del(key)
  nil
end
expire(key, time) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 41
def expire(key, time)
  store.expire(key, time)
end
get(key) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 25
def get(key)
  val = store.get(key)
  val ? serializer.deserialize(val) : nil
end
set(key, val, opts={}) click to toggle source
# File lib/sequel-query-cache/driver.rb, line 30
def set(key, val, opts={})
  store.set(key, serializer.serialize(val))
  expire(key, opts[:ttl]) unless opts[:ttl].nil?
  val
end

Private Instance Methods

_default_serializer() click to toggle source
# File lib/sequel-query-cache/driver.rb, line 47
def _default_serializer
  if defined? MessagePack
    require 'sequel-query-cache/serializer/message_pack'
    Serializer::MessagePack
  else
    require 'sequel-query-cache/serializer/json'
    Serializer::JSON
  end
end