Module | Sequel::Plugins::Caching |
In: |
lib/sequel/plugins/caching.rb
|
Sequel‘s built-in caching plugin supports caching to any object that implements the Ruby-Memcache API (or memcached API with the :ignore_exceptions option). You can add caching for any model or for all models via:
Model.plugin :caching, store # Cache all models MyModel.plugin :caching, store # Just cache MyModel
The cache store should implement the Ruby-Memcache API:
cache_store.set(key, obj, time) # Associate the obj with the given key # in the cache for the time (specified # in seconds). cache_store.get(key) => obj # Returns object set with same key. cache_store.get(key2) => nil # nil returned if there isn't an object # currently in the cache with that key.
If the :ignore_exceptions option is true, exceptions raised by cache_store.get are ignored and nil is returned instead. The memcached API is to raise an exception for a missing record, so if you use memcached, you will want to use this option.
Set the cache_store and cache_ttl attributes for the given model. If the :ttl option is not given, 3600 seconds is the default.
# File lib/sequel/plugins/caching.rb, line 26 26: def self.configure(model, store, opts={}) 27: model.instance_eval do 28: @cache_store = store 29: @cache_ttl = opts[:ttl] || 3600 30: @cache_ignore_exceptions = opts[:ignore_exceptions] 31: end 32: end