class Dry::Core::Memoizable::Memoizer
def define_memoizable(method:)
- Api: - private
def define_memoizable(method:) module_eval <<~RUBY, __FILE__, __LINE__ + 1 def #{method.name}(#{to_declaration(method.parameters)}) key = [Kernel.__method__] + Kernel.local_variables.map { |var| Kernel.eval(var.to_s) } if @__memoized__.key?(key) @__memoized__[key] else @__memoized__[key] = super end end RUBY if respond_to?(:ruby2_keywords, true) ruby2_keywords(method.name) end end