Class: Hiera::RecursiveGuard
- Inherits:
-
Object
- Object
- Hiera::RecursiveGuard
- Defined in:
- lib/hiera/recursive_guard.rb
Instance Method Summary collapse
- #check(value, &block) ⇒ Object
-
#initialize ⇒ RecursiveGuard
constructor
A new instance of RecursiveGuard.
Constructor Details
#initialize ⇒ RecursiveGuard
Returns a new instance of RecursiveGuard.
7 8 9 |
# File 'lib/hiera/recursive_guard.rb', line 7 def initialize @seen = [] end |
Instance Method Details
#check(value, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# 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 |