Permítanme extender la pregunta también a funciones personalizadas . Básicamente, llama a las funciones personalizadas de la misma manera que a las funciones integradas (usando function_ prefix), pero asegúrese de pasar todos los parámetros en una matriz:
module Puppet::Parser::Functions
newfunction(:namegoeshere, :type => :rvalue) do |args|
# ...
end
end
<%= scope.function_namegoeshere(["one","two"]) %>
Tenga en cuenta que también funciona sin los corchetes en algunas versiones de Puppet. Más información: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Otra cosa importante es que hay un error (o característica) en Puppet 2.6 o anterior donde las funciones personalizadas no se cargan automáticamente en el alcance de la plantilla. ¡Necesita cargarlos manualmente , de lo contrario no se encontrará la función!
<% Puppet::Parser::Functions::function('namegoeshere') %>
Más información: http://projects.puppetlabs.com/issues/7991