module Unparser::Adamantium::ModuleMethods
Methods mixed in to adamantium modules
Public Instance Methods
memoize(*methods)
click to toggle source
Memoize a list of methods
@param [Array<#to_s>] methods
a list of methods to memoize
@return [self]
@api public
# File lib/unparser/adamantium.rb, line 94 def memoize(*methods) methods.each(&method(:memoize_method)) self end
memoized?(method_name)
click to toggle source
Test if method is memoized
@param [Symbol] name
@return [Bool]
# File lib/unparser/adamantium.rb, line 104 def memoized?(method_name) memoized_methods.key?(method_name) end
unmemoized_instance_method(method_name)
click to toggle source
Return unmemoized instance method
@param [Symbol] name
@return [UnboundMethod]
the memoized method
@raise [NameError]
raised if the method is unknown
@api public
# File lib/unparser/adamantium.rb, line 119 def unmemoized_instance_method(method_name) memoized_methods.fetch(method_name) do fail ArgumentError, "##{method_name} is not memoized" end end
Private Instance Methods
memoize_method(method_name)
click to toggle source
# File lib/unparser/adamantium.rb, line 127 def memoize_method(method_name) if memoized_methods.key?(method_name) fail ArgumentError, "##{method_name} is already memoized" end memoized_methods[method_name] = MethodBuilder.new(self, method_name).call end
memoized_methods()
click to toggle source
# File lib/unparser/adamantium.rb, line 135 def memoized_methods @memoized_methods ||= {} end