module Memery

Module for memoization

Constants

VERSION

Public Class Methods

method_visibility(klass, method_name) click to toggle source
# File lib/memery.rb, line 17
def method_visibility(klass, method_name)
  if klass.private_method_defined?(method_name)
    :private
  elsif klass.protected_method_defined?(method_name)
    :protected
  elsif klass.public_method_defined?(method_name)
    :public
  else
    raise ArgumentError, "Method #{method_name} is not defined on #{klass}"
  end
end
monotonic_clock() click to toggle source
# File lib/memery.rb, line 13
def monotonic_clock
  Process.clock_gettime(Process::CLOCK_MONOTONIC)
end

Public Instance Methods

clear_memery_cache!(*method_names) click to toggle source
# File lib/memery.rb, line 84
def clear_memery_cache!(*method_names)
  return unless defined? @_memery_memoized_values

  if method_names.any?
    method_names.each { |method_name| @_memery_memoized_values[method_name]&.clear }
  else
    @_memery_memoized_values.clear
  end
end