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):

   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.
   cache_store.delete(key)         # Remove key from cache

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.

Note that only Model.[] method calls with a primary key argument are cached using this plugin.

Usage:

  # Make all subclasses use the same cache (called before loading subclasses)
  # using the Ruby-Memcache API, with the cache stored in the CACHE constant
  Sequel::Model.plugin :caching, CACHE

  # Make the Album class use the cache with a 30 minute time-to-live
  Album.plugin :caching, CACHE, :ttl=>1800

  # Make the Artist class use a cache with the memcached protocol
  Artist.plugin :caching, MEMCACHED_CACHE, :ignore_exceptions=>true

Methods

configure  

Classes and Modules

Module Sequel::Plugins::Caching::ClassMethods
Module Sequel::Plugins::Caching::InstanceMethods

Public Class methods

Set the cache_store and cache_ttl attributes for the given model. If the :ttl option is not given, 3600 seconds is the default.

[Source]

    # File lib/sequel/plugins/caching.rb, line 37
37:       def self.configure(model, store, opts=OPTS)
38:         model.instance_eval do
39:           @cache_store = store
40:           @cache_ttl = opts[:ttl] || 3600
41:           @cache_ignore_exceptions = opts[:ignore_exceptions]
42:         end
43:       end

[Validate]