Class: Specifier::Memoizer

Inherits:
Object
  • Object
show all
Defined in:
lib/specifier/memoizer.rb

Overview

It remembers things (used for within let statements).

Usage:

memoizer = Specifier::Memoizer.new do
  # ...
end
memoizer.evaluate

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Memoizer

Returns a new instance of Memoizer.



14
15
16
# File 'lib/specifier/memoizer.rb', line 14

def initialize(&block)
  @block = block
end

Instance Method Details

#evaluateObject



18
19
20
21
# File 'lib/specifier/memoizer.rb', line 18

def evaluate
  return @result if defined?(@result)
  @result = @block.call
end