module BinaryParser::Memorize::Extension

Attributes

memorize_methods[RW]

Public Instance Methods

memorize(method_name) click to toggle source
# File lib/binary_parser/general_class/memorize.rb, line 15
def memorize(method_name)
  pure_method_name = "pure_#{method_name}".to_sym
  alias_method pure_method_name, method_name
  define_method(method_name) do |arg|
    @memo ||= Hash.new
    @memo[method_name] ||= Hash.new
    @memo[method_name][arg] ||= send(pure_method_name, arg)
  end
end
method_added(method_name) click to toggle source
# File lib/binary_parser/general_class/memorize.rb, line 7
def method_added(method_name)
  @memorized ||= Hash.new
  if @memorize_methods.include?(method_name) && !@memorized[method_name]
    @memorized[method_name] = true
    memorize(method_name) 
  end
end