2019-05-02 18:33:56 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-03-24 20:40:05 -04:00
|
|
|
class Pry
|
|
|
|
class Config
|
|
|
|
# LazyValue is a Proc (block) wrapper. It is meant to be used as a
|
|
|
|
# configuration value. Subsequent `#call` calls always evaluate the given
|
|
|
|
# block.
|
|
|
|
#
|
|
|
|
# @example
|
|
|
|
# num = 19
|
|
|
|
# value = Pry::Config::LazyValue.new { num += 1 }
|
|
|
|
# value.foo # => 20
|
|
|
|
# value.foo # => 21
|
|
|
|
# value.foo # => 22
|
|
|
|
#
|
|
|
|
# @api private
|
|
|
|
# @since ?.?.?
|
|
|
|
# @see Pry::Config::MemoizedValue
|
|
|
|
class LazyValue
|
|
|
|
def initialize(&block)
|
|
|
|
@block = block
|
|
|
|
end
|
|
|
|
|
|
|
|
def call
|
|
|
|
@block.call
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|