rubyでメモ化

クラス内のメソッドをメモ化するのに試行錯誤。
initialize時にメモ化しておけばいいらしいです。

gem install memoize

classA.rb

#!/usr/bin/ruby
require 'memoize'
include Memoize

class ClassA
  def initialize
    memoize :methodA
  end
  def methodA(num)
    sleep(10)
    return num+1
  end
end

で、

test.rb

#!/usr/bin/ruby
require 'classA'
obj=ClassA.new
puts Time.now
puts obj.methodA(10)
puts Time.now
puts obj.methodA(10)
puts Time.now