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
Instance Method Summary collapse
- #create_function_context(lookup_invocation) ⇒ 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
Methods included from DataProvider
ensure_types_initialized, #key_lookup, key_type, #lookup, #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.
13 14 15 16 17 18 19 20 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 13 def initialize(name, parent_data_provider, function_name, , locations) @name = name @parent_data_provider = parent_data_provider @function_name = function_name = @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.
11 12 13 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 11 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.
11 12 13 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 11 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.
11 12 13 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 11 def parent_data_provider @parent_data_provider 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.
27 28 29 30 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 27 def create_function_context(lookup_invocation) scope = lookup_invocation.scope FunctionContext.new(EnvironmentContext.adapt(scope.compiler.environment), module_name, function(scope)) 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.
23 24 25 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 23 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.
32 33 34 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 32 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.
36 37 38 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 36 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
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 48 def (location = nil) case location when nil when Pathname .merge(HieraConfig::KEY_PATH => location.to_s) when URI .merge(HieraConfig::KEY_URI => location.to_s) else 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.
40 41 42 |
# File 'lib/puppet/pops/lookup/function_provider.rb', line 40 def to_s name end |