Object
Allow for safe recursive lookup of values during variable interpolation.
@api private
# File lib/hiera/recursive_lookup.rb, line 5 def initialize(scope, extra_data) @seen = [] @scope = scope @extra_data = extra_data end
# File lib/hiera/recursive_lookup.rb, line 21 def current_value name = @seen.last scope_val = @scope[name] if scope_val.nil? || scope_val == :undefined @extra_data[name] else scope_val end end
# File lib/hiera/recursive_lookup.rb, line 11 def lookup(name, &block) if @seen.include?(name) raise Exception, "Interpolation loop detected in [#{@seen.join(', ')}]" end @seen.push(name) ret = yield(current_value) @seen.pop ret end
[Validate]
Generated with the Darkfish Rdoc Generator 2.