module Lite::Memoize::Table
Public Instance Methods
memoize(method_name, args: nil, reload: false) { || ... }
click to toggle source
# File lib/lite/memoize/table.rb, line 11 def memoize(method_name, args: nil, reload: false) key = "#{method_name}:#{args}" if reload store[key] = yield else store[key] ||= yield end end
store()
click to toggle source
# File lib/lite/memoize/table.rb, line 7 def store @_memoized_methods ||= {} end
Private Instance Methods
caller_key(block, as: nil)
click to toggle source
# File lib/lite/memoize/table.rb, line 23 def caller_key(block, as: nil) name = as ? [as] : block.source_location return name.concat(block) if block.is_a?(Array) block.binding.local_variables.each_with_object(name) do |local_name, array| array << local_name array << block.binding.local_variable_get(local_name) end end