module Lite::Memoize::Klass

Public Instance Methods

memoize(method_name, as: nil) click to toggle source
# File lib/lite/memoize/klass.rb, line 9
def memoize(method_name, as: nil)
  inner_method = instance_method(method_name)

  define_method(method_name) do |*args|
    key = self.class.caller_key(args, as: as || method_name)

    self.class.store[key] ||= inner_method.bind_call(self, *args)
  end
end