Module: Lite::Memoize::Klass
- Includes:
- Table
- Defined in:
- lib/lite/memoize/klass.rb
Instance Method Summary collapse
Methods included from Table
Instance Method Details
#memoize(method_name, as: nil) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# 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(self).call(*args) end end |