Method: Puppet::Pops::Lookup::ModuleDataProvider#key_lookup_in_default

Defined in:
lib/puppet/pops/lookup/module_data_provider.rb

#key_lookup_in_default(key, lookup_invocation, merge) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Performs a lookup using a module default hierarchy with an endless recursion check.

Parameters:

  • key (LookupKey)

    The key to lookup

  • lookup_invocation (Invocation)

    The current lookup invocation

  • merge (MergeStrategy, String, Hash{String=>Object}, nil)

    Merge strategy or hash with strategy and options



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/puppet/pops/lookup/module_data_provider.rb', line 25

def key_lookup_in_default(key, lookup_invocation, merge)
  dps = config(lookup_invocation).configured_data_providers(lookup_invocation, self, true)
  if dps.empty?
    lookup_invocation.report_not_found(key)
    throw :no_such_key
  end
  merge_strategy = MergeStrategy.strategy(merge)
  lookup_invocation.check(key.to_s) do
    lookup_invocation.with(:data_provider, self) do
      merge_strategy.lookup(dps, lookup_invocation) do |data_provider|
        data_provider.unchecked_key_lookup(key, lookup_invocation, merge_strategy)
      end
    end
  end
end