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 #hash 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
sleep 5
end
# [...]
cache_method :get_latest_entries
# if you wanted a different ttl...
# cache_method :get_latest_entries, 800 #seconds
end
56 57 58 59 60 61 62 |
# File 'lib/cache_method.rb', line 56 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.fetch :obj => self, :method_id => method_id, :original_method_id => original_method_id, :ttl => ttl, :args => args end end |