module MethodCachable::ClassMethods
Public Instance Methods
acts_as_cachable()
click to toggle source
# File lib/method_cachable.rb, line 24 def acts_as_cachable klass = self [:after_touch, :before_destroy, :after_save].each { |callback| klass.send(callback, :clear_cache) } end
cached_methods(*methods)
click to toggle source
# File lib/method_cachable.rb, line 29 def cached_methods(*methods) name = self.name eval_string = "" methods.each do |method| method = method.to_s eval_string += " alias_method :old_#{method}, :#{method} def #{method}(*args) sig = createsig(args || self.id) with_env \"#{name}:#{method}:\#{self.id}:\#{sig}\", cache_list_key do old_#{method}(*args) end end " end class_eval(eval_string) end