Class: Hiera::PuppetFunction
- Inherits:
-
Puppet::Functions::InternalFunction
- Object
- Puppet::Pops::Functions::Function
- Puppet::Functions::Function
- Puppet::Functions::InternalFunction
- Hiera::PuppetFunction
- Defined in:
- lib/hiera/puppet_function.rb
Overview
Provides the base class for the puppet functions hiera, hiera_array, hiera_hash, and hiera_include. The actual function definitions will call init_dispatch and override the merge_type and post_lookup methods.
Instance Attribute Summary
Attributes inherited from Puppet::Pops::Functions::Function
Class Method Summary collapse
Instance Method Summary collapse
- #hiera_block1(scope, key, &default_block) ⇒ Object
- #hiera_block2(scope, key, override, &default_block) ⇒ Object
- #hiera_no_default(scope, key) ⇒ Object
- #hiera_splat(scope, args) ⇒ Object
- #hiera_with_default(scope, key, default, override = nil) ⇒ Object
- #lookup(scope, key, default, has_default, override, &default_block) ⇒ Object
- #merge_type ⇒ Object
- #post_lookup(scope, key, result) ⇒ Object
Methods inherited from Puppet::Functions::InternalFunction
builder, #call_function_with_scope
Methods inherited from Puppet::Functions::Function
argument_mismatch, builder, dispatch, local_types, new
Methods inherited from Puppet::Pops::Functions::Function
#call, #call_function, dispatcher, #initialize, signatures
Constructor Details
This class inherits a constructor from Puppet::Pops::Functions::Function
Class Method Details
.init_dispatch ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/hiera/puppet_function.rb', line 9 def self.init_dispatch dispatch :hiera_splat do scope_param param 'Tuple[String, Any, Any, 1, 3]', :args end dispatch :hiera_no_default do scope_param param 'String',:key end dispatch :hiera_with_default do scope_param param 'String',:key param 'Any', :default optional_param 'Any', :override end dispatch :hiera_block1 do scope_param param 'String', :key block_param 'Callable[1,1]', :default_block end dispatch :hiera_block2 do scope_param param 'String', :key param 'Any', :override block_param 'Callable[1,1]', :default_block end end |
Instance Method Details
#hiera_block1(scope, key, &default_block) ⇒ Object
53 54 55 |
# File 'lib/hiera/puppet_function.rb', line 53 def hiera_block1(scope, key, &default_block) post_lookup(scope, key, lookup(scope, key, nil, false, nil, &default_block)) end |
#hiera_block2(scope, key, override, &default_block) ⇒ Object
57 58 59 |
# File 'lib/hiera/puppet_function.rb', line 57 def hiera_block2(scope, key, override, &default_block) post_lookup(scope, key, lookup(scope, key, nil, false, override, &default_block)) end |
#hiera_no_default(scope, key) ⇒ Object
45 46 47 |
# File 'lib/hiera/puppet_function.rb', line 45 def hiera_no_default(scope, key) post_lookup(scope, key, lookup(scope, key, nil, false, nil)) end |
#hiera_splat(scope, args) ⇒ Object
41 42 43 |
# File 'lib/hiera/puppet_function.rb', line 41 def hiera_splat(scope, args) hiera(scope, *args) end |
#hiera_with_default(scope, key, default, override = nil) ⇒ Object
49 50 51 |
# File 'lib/hiera/puppet_function.rb', line 49 def hiera_with_default(scope, key, default, override = nil) post_lookup(scope, key, lookup(scope, key, default, true, override)) end |
#lookup(scope, key, default, has_default, override, &default_block) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/hiera/puppet_function.rb', line 61 def lookup(scope, key, default, has_default, override, &default_block) unless Puppet[:strict] == :off Puppet.warn_once('deprecations', self.class.name, "The function '#{self.class.name}' is deprecated in favor of using 'lookup'. See https://docs.puppet.com/puppet/#{Puppet.minor_version}/reference/deprecated_language.html") end lookup_invocation = Puppet::Pops::Lookup::Invocation.new(scope, {}, {}) adapter = lookup_invocation.lookup_adapter lookup_invocation.set_hiera_xxx_call lookup_invocation.set_global_only unless adapter.global_only? || adapter.has_environment_data_provider?(lookup_invocation) lookup_invocation.set_hiera_v3_location_overrides(override) unless override.nil? || override.is_a?(Array) && override.empty? Puppet::Pops::Lookup.lookup(key, nil, default, has_default, merge_type, lookup_invocation, &default_block) end |
#merge_type ⇒ Object
74 75 76 |
# File 'lib/hiera/puppet_function.rb', line 74 def merge_type :first end |
#post_lookup(scope, key, result) ⇒ Object
78 79 80 |
# File 'lib/hiera/puppet_function.rb', line 78 def post_lookup(scope, key, result) result end |