Method: Puppet::Pops::Evaluator::DeferredResolver#resolve

Defined in:
lib/puppet/pops/evaluator/deferred_resolver.rb

#resolve(x) ⇒ Object



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/puppet/pops/evaluator/deferred_resolver.rb', line 153

def resolve(x)
  if x.class == @deferred_class
    resolve_future(x)
  elsif x.is_a?(Array)
    x.map {|v| resolve(v) }
  elsif x.is_a?(Hash)
    result = {}
    x.each_pair {|k,v| result[k] = resolve(v) }
    result
  elsif x.is_a?(Puppet::Pops::Types::PSensitiveType::Sensitive)
    # rewrap in a new Sensitive after resolving any nested deferred values
    Puppet::Pops::Types::PSensitiveType::Sensitive.new(resolve(x.unwrap))
  elsif x.is_a?(Puppet::Pops::Types::PBinaryType::Binary)
    # use the ASCII-8BIT string that it wraps
    x.binary_buffer
  else
    x
  end
end