module Memery::ClassMethods
Public Instance Methods
memoize(method_name, condition: nil, ttl: nil)
click to toggle source
# File lib/memery.rb, line 38 def memoize(method_name, condition: nil, ttl: nil) prepend_memery_module! define_memoized_method!(method_name, condition: condition, ttl: ttl) method_name end
memoized?(method_name)
click to toggle source
# File lib/memery.rb, line 44 def memoized?(method_name) return false unless defined?(@_memery_module) @_memery_module.method_defined?(method_name) || @_memery_module.private_method_defined?(method_name) end
Private Instance Methods
define_memoized_method!(method_name, **options)
click to toggle source
# File lib/memery.rb, line 59 def define_memoized_method!(method_name, **options) @_memery_module.define_memoized_method!(self, method_name, **options) end
prepend_memery_module!()
click to toggle source
# File lib/memery.rb, line 53 def prepend_memery_module! return if defined?(@_memery_module) @_memery_module = Module.new { extend MemoizationModule } prepend(@_memery_module) end