class Pry::Config::MemoizedValue

MemoizedValue is a Proc (block) wrapper. It is meant to be used as a configuration value. Subsequent `#call` calls return the same memoized result.

@example

num = 19
value = Pry::Config::MemoizedValue.new { num += 1 }
value.call # => 20
value.call # => 20
value.call # => 20

@api private @since v0.13.0 @see Pry::Config::LazyValue

Public Class Methods

new(&block) click to toggle source
# File lib/pry/config/memoized_value.rb, line 20
def initialize(&block)
  @block = block
  @called = false
  @call = nil
end

Public Instance Methods

call() click to toggle source
# File lib/pry/config/memoized_value.rb, line 26
def call
  return @call if @called

  @called = true
  @call = @block.call
end