module RubyMemoized::ClassMethods
Public Instance Methods
memoized()
click to toggle source
# File lib/ruby_memoized.rb, line 10 def memoized @memoized = true end
method_added(method_name)
click to toggle source
# File lib/ruby_memoized.rb, line 18 def method_added(method_name) if @memoized @memoized = false unmemoized_method_name = :"unmemoized_#{method_name}" memoizer_name = :"memoizer_for_#{method_name}" define_method memoizer_name do memoizer = instance_variable_get "@#{memoizer_name}" if memoizer memoizer else instance_variable_set "@#{memoizer_name}", Memoizer.new(self, unmemoized_method_name) end end alias_method unmemoized_method_name, method_name define_method method_name do |*args, **kwargs, &block| send(memoizer_name).call(*args, **kwargs, &block) end @memoized = true end end
unmemoized()
click to toggle source
# File lib/ruby_memoized.rb, line 14 def unmemoized @memoized = false end