Sha256: 01a86d74e2a721af559db6de4205f02e7a5623d9d4f1c3f5d272a80b453a3ff6
Contents?: true
Size: 507 Bytes
Versions: 2
Compression:
Stored size: 507 Bytes
Contents
module MonkeySupport module Memoizable # This is faster than AS::Memoizeable. # Less featureful, however. def monkey_memoize(*methods) methods.each do |method| class_eval <<EOS @__#{method} = {} alias_method :__#{method}, :#{method} if method(:#{method}).arity == 1 def #{method}(arg) @__#{method}[arg] ||= __#{method}(arg) end else def #{method}(*args) @__#{method}[args] ||= __#{method}(*args) end end EOS end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
burke-monkeysupport-0.0.7 | lib/monkeysupport/memoizable.rb |
burke-monkeysupport-0.1.1 | lib/monkeysupport/memoizable.rb |