Module: Sequel::Plugins::Caching

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.

### Methods

configure

### Classes and Modules

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

### Public Class methods

configure(model, store, opts={})

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

[Validate]