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

Defined in:
lib/sequel/plugins/caching.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#cache_ignore_exceptionsObject (readonly)

If true, ignores exceptions when gettings cached records (the memcached API).



49
50
51
# File 'lib/sequel/plugins/caching.rb', line 49

def cache_ignore_exceptions
  @cache_ignore_exceptions
end

#cache_storeObject (readonly)

The cache store object for the model, which should implement the Ruby-Memcache (or memcached) API



53
54
55
# File 'lib/sequel/plugins/caching.rb', line 53

def cache_store
  @cache_store
end

#cache_ttlObject (readonly)

The time to live for the cache store, in seconds.



56
57
58
# File 'lib/sequel/plugins/caching.rb', line 56

def cache_ttl
  @cache_ttl
end

Instance Method Details

#cache_delete_pk(pk) ⇒ Object

Delete the cached object with the given primary key.



59
60
61
# File 'lib/sequel/plugins/caching.rb', line 59

def cache_delete_pk(pk)
  cache_delete(cache_key(pk))
end

#cache_get_pk(pk) ⇒ Object

Return the cached object with the given primary key, or nil if no such object is in the cache.



65
66
67
# File 'lib/sequel/plugins/caching.rb', line 65

def cache_get_pk(pk)
  cache_get(cache_key(pk))
end

#cache_key(pk) ⇒ Object

Return a key string for the given primary key.

Raises:



75
76
77
78
# File 'lib/sequel/plugins/caching.rb', line 75

def cache_key(pk)
  raise(Error, 'no primary key for this record') unless pk.is_a?(Array) ? pk.all? : pk
  "#{cache_key_prefix}:#{Array(pk).join(',')}"
end

#cache_key_prefixObject

Returns the prefix used to namespace this class in the cache.



70
71
72
# File 'lib/sequel/plugins/caching.rb', line 70

def cache_key_prefix
  "#{self}"
end

#set_cache_ttl(ttl) ⇒ Object

Set the time to live for the cache store, in seconds (default is 3600, # so 1 hour).



83
84
85
# File 'lib/sequel/plugins/caching.rb', line 83

def set_cache_ttl(ttl)
  @cache_ttl = ttl
end