Я бы хотел использовать template()
для объединения некоторых файлов. Я читаю этот вопрос, что нормально, если вы точно знаете, сколько файлов хотите объединить. Что, если у меня есть только массив имен входных файлов?
$files = ['mymod/a.erb', 'mymod/b.erb', 'mymod/c.erb']
file { "/var/foo/final":
content => template ($files) # <-- error, can't convert Array to String
}
Я бы не хотел писать функцию парсера.
На данный момент это невозможно. Был Кукольный выпуск представлен для этого и предложенное исправление но, похоже, нет особой спешки его реализовать.
В качестве возможного обходного пути вы можете включить в один шаблон другие:
<% @template_array.each do |val| -%>
<% scope.function_template(val) %>
<% end -%>
Предупреждаю, я не тестировал это, но считаю, что это должно работать.