class Sequel::Plugins::Cacheable::Driver

Public Class Methods

factory(*args) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 6
def self.factory(*args)
  case args[0].class.name
  when 'Memcache'
    MemcacheDriver.new(*args)
  when 'Dalli::Client'
    DalliDriver.new(*args)
  when 'Redis'
    RedisDriver.new(*args)
  else
    Driver.new(*args)
  end
end
new(store, pack_lib = MessagePackPacker) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 19
def initialize(store, pack_lib = MessagePackPacker)
  @store = store
  @packer = pack_lib
end

Public Instance Methods

del(key) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 37
def del(key)
  @store.del(key)

  return nil
end
expire(key, time) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 43
def expire(key, time)
  @store.expire(key, time)
end
fetch(key, ttl = nil, &block) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 47
def fetch(key, ttl = nil, &block)
  get(key) || set(key, block.call, ttl)
end
get(key) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 24
def get(key)
  val = @store.get(key)

  return val.nil? || val.empty? ? nil : @packer.unpack(val)
end
set(key, val, expire = nil) click to toggle source
# File lib/sequel-cacheable/driver.rb, line 30
def set(key, val, expire = nil)
  @store.set(key, @packer.pack(val))
  expire(key, expire) unless expire.nil?

  return val
end