module MethodCacher
Helper module for caching methods inside a class To use, extend your class with MethodCacher
Then, in initialize, call enable_caching
Public Instance Methods
enable_caching(methods, cache = nil)
click to toggle source
Enable caching for the listed methods
# File lib/basiccache/methodcacher.rb, line 9 def enable_caching(methods, cache = nil) cache ||= BasicCache.new methods.each do |name| uncached_name = "#{name}_uncached".to_sym (class << self; self; end).class_eval do alias_method uncached_name, name define_method(name) do |*a, &b| cache.cache(name) { send uncached_name, *a, &b } end end end end