Simple Memoization for Ruby 2.0+.
Unlike Memoist, this is not a drop-in replacement for old ActiveSupport::Memoizable. Memoist will still work just fine for that if you're using Ruby 2.0+. This project, on the other hand, is just me playing using Module#prepend which makes this stuff very simple.
- Works on all Rubies.
- Is quite complicated.
- Has the exact same api as
ActiveSupport::Memoizable
.
Memoist2
- Only works on
Ruby >= 2.0.0
. - Is deliberately much simpler.
- Has a slightly different API that could totally change.
Memoize an instance method
class Foo
include Memoist2
def bar
sleep 1 && 2**10
end
memoize :bar
end
Memoize a class method
class Foo
include Memoist2
def self.bar
# something expensive
end
memoize_class_method :bar
end
Licensed under the MIT licence.
See the file LICENCE.