Module: Sequel::Plugins::Caching::ClassMethods
- Defined in:
- lib/sequel/plugins/caching.rb
Instance Attribute Summary collapse
-
#cache_ignore_exceptions ⇒ Object
readonly
If true, ignores exceptions when gettings cached records (the memcached API).
-
#cache_store ⇒ Object
readonly
The cache store object for the model, which should implement the Ruby-Memcache (or memcached) API.
-
#cache_ttl ⇒ Object
readonly
The time to live for the cache store, in seconds.
Instance Method Summary collapse
-
#cache_delete_pk(pk) ⇒ Object
Delete the cached object with the given primary key.
-
#cache_get_pk(pk) ⇒ Object
Return the cached object with the given primary key, or nil if no such object is in the cache.
-
#cache_key(pk) ⇒ Object
Return a key string for the given primary key.
-
#cache_key_prefix ⇒ Object
Returns the prefix used to namespace this class in the cache.
-
#set_cache_ttl(ttl) ⇒ Object
Set the time to live for the cache store, in seconds (default is 3600, # so 1 hour).
Instance Attribute Details
#cache_ignore_exceptions ⇒ Object (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_store ⇒ Object (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_ttl ⇒ Object (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.
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_prefix ⇒ Object
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 |