Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 1.19 KB

README.md

File metadata and controls

55 lines (37 loc) · 1.19 KB

memoist2

Build Status

Simple Memoization for Ruby 2.0+.

Differences between Memoist & Memoist2

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.

Memoist

  • 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.

Example

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

Licence

Licensed under the MIT licence.

See the file LICENCE.