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