Class: Puppet::Pops::Lookup::FunctionProvider Private
- Includes:
- DataProvider
- Defined in:
- lib/puppet/pops/lookup/function_provider.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Direct Known Subclasses
DataDigFunctionProvider, DataHashFunctionProvider, LookupKeyFunctionProvider
Instance Attribute Summary collapse
- #function_name ⇒ Object readonly private
- #locations ⇒ Object readonly private
- #parent_data_provider ⇒ Object readonly private
Class Method Summary collapse
-
.trusted_return_type ⇒ Type
private
Returns the type that all the return type of all functions must be assignable to.
Instance Method Summary collapse
- #create_function_context(lookup_invocation) ⇒ Object private
- #full_name ⇒ Object private
-
#function_context(lookup_invocation, location) ⇒ FunctionContext
private
The function context associated with this provider.
-
#initialize(name, parent_data_provider, function_name, options, locations) ⇒ FunctionProvider
constructor
private
A new instance of FunctionProvider.
- #module_name ⇒ Object private
- #name ⇒ Object private
-
#options(location = nil) ⇒ Hash{String => Object}
private
Obtains the options to send to the function, optionally merged with a ‘path’ or ‘uri’ option.
- #to_s ⇒ Object private
- #value_is_validated? ⇒ Boolean private
Methods included from DataProvider
#key_lookup, #key_lookup_in_default, key_type, #lookup, register_types, #unchecked_key_lookup, #validate_data_hash, #validate_data_value, value_type
Constructor Details
#initialize(name, parent_data_provider, function_name, options, locations) ⇒ FunctionProvider
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.
Returns a new instance of FunctionProvider.
24 25 26 27 28 29 30 31 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 24 def initialize(name, parent_data_provider, function_name, , locations) @name = name @parent_data_provider = parent_data_provider @function_name = function_name @options = @locations = locations || [nil] @contexts = {} end |
Instance Attribute Details
#function_name ⇒ Object (readonly)
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.
13 14 15 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 13 def function_name @function_name end |
#locations ⇒ Object (readonly)
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.
13 14 15 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 13 def locations @locations end |
#parent_data_provider ⇒ Object (readonly)
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.
13 14 15 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 13 def parent_data_provider @parent_data_provider end |
Class Method Details
.trusted_return_type ⇒ Type
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.
Returns the type that all the return type of all functions must be assignable to. For ‘lookup_key` and `data_dig`, that will be the `Puppet::LookupValue` type. For `data_hash` it will be a Hash`
20 21 22 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 20 def self.trusted_return_type DataProvider.value_type end |
Instance Method Details
#create_function_context(lookup_invocation) ⇒ 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.
38 39 40 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 38 def create_function_context(lookup_invocation) FunctionContext.new(EnvironmentContext.adapt(lookup_invocation.scope.compiler.environment), module_name, function(lookup_invocation)) end |
#full_name ⇒ 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.
50 51 52 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 50 def full_name "#{self.class::TAG} function '#{@function_name}'" end |
#function_context(lookup_invocation, location) ⇒ FunctionContext
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.
Returns the function context associated with this provider.
34 35 36 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 34 def function_context(lookup_invocation, location) @contexts[location] ||= create_function_context(lookup_invocation) end |
#module_name ⇒ 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.
42 43 44 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 42 def module_name @parent_data_provider.module_name end |
#name ⇒ 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.
46 47 48 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 46 def name "Hierarchy entry \"#{@name}\"" end |
#options(location = nil) ⇒ Hash{String => 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.
Obtains the options to send to the function, optionally merged with a ‘path’ or ‘uri’ option
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 62 def (location = nil) location = location.location unless location.nil? case location when Pathname @options.merge(HieraConfig::KEY_PATH => location.to_s) when URI @options.merge(HieraConfig::KEY_URI => location.to_s) else @options end end |
#to_s ⇒ 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.
54 55 56 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 54 def to_s name end |
#value_is_validated? ⇒ Boolean
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.
74 75 76 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 74 def value_is_validated? @value_is_validated end |