# File lib/mindi.rb, line 106 def multikey_multiton(name, &impl) # :yields: arg0, arg1, ... impl_name = Container.impl_method_name(name) define_method(impl_name, &impl) ivname = Container.iv(name) define_method(name) do |*key| map = instance_variable_get(ivname) map ||= instance_variable_set(ivname, {}) map[key] ||= send(impl_name, *key) end end