Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
81 lines (61 sloc) 2.21 KB
Please do not use this gem. It has long been surpassed by other, better
memoization gems like memoizable and memoist.
= Description
A method that speeds methods up at the cost of memory (or disk space).
= Installation
gem install memoize
= Synopsis
require 'memoize'
include Memoize
# Inefficient fibonacci method
def fib(n)
return n if n < 2
fib(n-1) + fib(n-2)
fib(100) # Slow
fib(100) # Fast
# Or store the cache to a file for later use
memoize(:fib, "fib.cache")
fib(100) # Fast
= Constants
Returns the version of this package as a String.
= Methods
Memoize#memoize(method, file=nil)
Takes a +method+ (symbol) and caches the results of +method+ in a hash
table. If you call +method+ again with the same arguments, memoize gives
you the value from the table instead of letting the method compute the
value again.
If +file+ is provided, the results are cached to that file. Note that
this uses Marshal internally. Beware of changes in the Marshal format
should you happen to upgrade.
Returns the cache, which you can inspect or manipulate directly if you are
so inclined.
= Acknowledgements
Code borrowed from Nobu Nakada (ruby-talk:155159).
Code borrowed from Ara Howard (ruby-talk:173428).
Code borrowed from Andrew Johnson (
Ideas taken from Brian Buckley and Sean O'Halpin.
Tiny URL provided for Andrew Johnson because I could not find the ruby-talk
reference. The gateway may have been broken at the time.
= Alternatives
* memoist by Joshua Peek et al.
* memoizable from James Edward Gray
* simple_memoize from Jack Canty
Running "gem search -r memoize" will list more alternatives.
== Known Issues
This library is deprecated. I will no longer support it, and will
eventually yank it from the gem index.
== License
Artistic 2.0
== Warranty
This package is provided "as is" and without any express or
implied warranties, including, without limitation, the implied
warranties of merchantability and fitness for a particular purpose.
== Copyright
(C) 2005-2014 Daniel J. Berger
All Rights Reserved
= Author
Daniel J. Berger