class Hiera::RecursiveGuard

Public Class Methods

new() click to toggle source
# File lib/hiera/recursive_guard.rb, line 7
def initialize
  @seen = []
end

Public Instance Methods

check(value) { || ... } click to toggle source
# File lib/hiera/recursive_guard.rb, line 11
def check(value, &block)
  if @seen.include?(value)
    raise Hiera::InterpolationLoop, "Lookup recursion detected in [#{@seen.join(', ')}]"
  end
  @seen.push(value)
  ret = yield
  @seen.pop
  ret
end