Skip to content
This repository has been archived by the owner. It is now read-only.
A Ruby library that lets you memoize methods, making them much faster at the expense of memory or disk space
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Thread safety Apr 29, 2012
test Initial conversion to git. Jan 16, 2010
Rakefile Updated gemspec and Rakefile. Added namespaces to Rake tasks, and gem… Jan 16, 2010


  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
You can’t perform that action at this time.