Deixe-me estender a pergunta também para funções personalizadas . Basicamente, você chama funções personalizadas da mesma maneira que as funções internas (usando o prefixo da função_), mas certifique-se de passar todos os parâmetros em uma matriz:
module Puppet::Parser::Functions
newfunction(:namegoeshere, :type => :rvalue) do |args|
# ...
end
end
<%= scope.function_namegoeshere(["one","two"]) %>
Observe que ele também funciona sem colchetes em algumas versões do Puppet. Mais informações: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Outra coisa importante é que há um bug (ou recurso) no Puppet 2.6 ou mais antigo, em que funções personalizadas não são carregadas automaticamente no escopo do modelo. Você precisa carregá-los manualmente , caso contrário, a função não será encontrada!
<% Puppet::Parser::Functions::function('namegoeshere') %>
Mais informações: http://projects.puppetlabs.com/issues/7991