class ROM::Memoizable::Memoizer
@api private
Attributes
klass[R]
names[R]
Public Class Methods
new(klass, names)
click to toggle source
@api private
# File lib/rom/support/memoizable.rb, line 35 def initialize(klass, names) @names = names @klass = klass define_memoizable_names! end
Private Instance Methods
define_memoizable_names!()
click to toggle source
@api private
Calls superclass method
# File lib/rom/support/memoizable.rb, line 44 def define_memoizable_names! names.each do |name| meth = klass.instance_method(name) if !meth.parameters.empty? define_method(name) do |*args| __memoized__[:"#{name}_#{args.hash}"] ||= super(*args) end else define_method(name) do __memoized__[name] ||= super() end end end end