Module: Mongory::Utils::ClassMethods

Defined in:
lib/mongory/utils.rb

Overview

Class-level methods injected via Utils.

Instance Method Summary collapse

Instance Method Details

#define_instance_cache_method(name) { ... } ⇒ void

This method returns an undefined value.

Defines a lazily-evaluated, memoized instance method.

Examples:

define_instance_cache_method(:expensive_thing) { compute_something }

Parameters:

  • name (Symbol)

    the method name

Yields:

  • block to compute the value



66
67
68
69
70
71
72
73
# File 'lib/mongory/utils.rb', line 66

def define_instance_cache_method(name, &block)
  instance_key = :"@#{name}"
  define_method(name) do
    return instance_variable_get(instance_key) if instance_variable_defined?(instance_key)

    instance_variable_set(instance_key, instance_exec(&block))
  end
end