Module: CacheMethod::ClassMethods
- Defined in:
- lib/cache_method.rb
Overview
All Classes (but not instances), get the .cache_method
method.
Instance Method Summary collapse
-
#cache_method(method_id, ttl = nil) ⇒ Object
Cache a method.
Instance Method Details
#cache_method(method_id, ttl = nil) ⇒ Object
Cache a method. TTL in seconds, defaults to whatever’s in CacheMethod.config.default_ttl
Note: Remember to define #as_cache_key
on any object whose instance methods might get cached.
Note 2: Check out CacheMethod.config.default_ttl… the default is 24 hours.
Example:
class Blog
def get_latest_entries
# [...]
end
cache_method :get_latest_entries
end
59 60 61 62 63 64 65 |
# File 'lib/cache_method.rb', line 59 def cache_method(method_id, ttl = nil) original_method_id = "_uncached_#{method_id}" alias_method original_method_id, method_id define_method method_id do |*args| ::CacheMethod::CachedResult.new(self, method_id, original_method_id, ttl, args).fetch end end |