Mem
Memoize any method call.
Installation
gem install mem
Usage
class Foo
include Mem
def initialize
@count = 0
end
def
baz
end
# `memoize` defines bar_with_memoize & bar_without_memoize,
# and the result of the 1st method call is stored into @memoized_table.
memoize :bar
private
def baz
@count += 1
end
end
foo = Foo.new
foo. #=> 1
foo. #=> 1
foo. #=> 1
foo.has_memoized?(:bar) #=> true
foo.memoized(:bar) #=> 1
foo.memoized_table #=> { bar: 1 }
core ext
If that makes you feel better, you can require "mem/core_ext"
to avoid include Mem
,
while this extends Object class.