Позвольте мне распространить вопрос также на пользовательские функции . По сути, вы вызываете пользовательские функции так же, как встроенные функции (используя префикс function_), но убедитесь, что вы передаете все параметры в массиве:
module Puppet::Parser::Functions
newfunction(:namegoeshere, :type => :rvalue) do |args|
# ...
end
end
<%= scope.function_namegoeshere(["one","two"]) %>
Обратите внимание, что это также работает без квадратных скобок в некоторых версиях Puppet. Дополнительная информация: http://docs.puppetlabs.com/guides/custom_functions.html#referencing-custom-functions-in-templates
Другая важная вещь - это ошибка (или функция) в Puppet 2.6 или более ранней версии, когда пользовательские функции не загружаются автоматически в область действия шаблона. Вам нужно загрузить их вручную , иначе функция не будет найдена!
<% Puppet::Parser::Functions::function('namegoeshere') %>
Дополнительная информация: http://projects.puppetlabs.com/issues/7991