class Dry::Core::Memoizable::Memoizer
def define_memoizable_names!
- Api: - private
def define_memoizable_names! names.each do |name| meth = klass.instance_method(name) if meth.parameters.size > 0 define_method(name) do |*args| name_with_args = :"#{name}_#{args.hash}" if __memoized__.key?(name_with_args) __memoized__[name_with_args] else __memoized__[name_with_args] = super(*args) end end else define_method(name) do if __memoized__.key?(name) __memoized__[name] else __memoized__[name] = super() end end end end end