Class: Puppet::Functions::InternalFunction Private

Inherits:
Function show all
Defined in:
lib/puppet/functions.rb

Overview

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.

Note:

WARNING: This style of creating functions is not public. It is a system under development that will be used for creating “system” functions.

This is a private, internal, system for creating functions. It supports everything that the public function definition system supports as well as a few extra features such as injection of well known parameters.

Direct Known Subclasses

Hiera::PuppetFunction, Function3x

Instance Attribute Summary

Attributes inherited from Pops::Functions::Function

#closure_scope, #loader

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Function

argument_mismatch, dispatch, local_types, new

Methods inherited from Pops::Functions::Function

#call, #call_function, dispatcher, #initialize, signatures

Constructor Details

This class inherits a constructor from Puppet::Pops::Functions::Function

Class Method Details

.builderObject

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.


663
664
665
# File 'lib/puppet/functions.rb', line 663

def self.builder
  InternalDispatchBuilder.new(dispatcher, Puppet::Pops::Types::PCallableType::DEFAULT, loader)
end

Instance Method Details

#call_function_with_scope(scope, function_name, *args, &block) ⇒ Object

Allows the implementation of a function to call other functions by name and pass the caller scope. The callable functions are those visible to the same loader that loaded this function (the calling function).

Parameters:

  • scope (Puppet::Parser::Scope)

    The caller scope

  • function_name (String)

    The name of the function

  • *args (Object)

    splat of arguments

Returns:

  • (Object)

    The result returned by the called function


677
678
679
# File 'lib/puppet/functions.rb', line 677

def call_function_with_scope(scope, function_name, *args, &block)
  internal_call_function(scope, function_name, args, &block)
end