Итак, у меня есть манифест марионетки с несколькими ресурсами
class foo {
Custom::Resource {'resource1':
attr1 => 'val1',
attr2 => 'val2',
}
Custom::Resource {'resource2':
attr1 => 'val3',
attr2 => 'val4',
}
Custom::Resource {'resource3':
attr1 => 'val5',
attr2 => 'val6',
}
}
Если бы я хотел перебрать имена ресурсов Custom :: Resource в шаблоне .erb, которые определены в классе foo, как мне получить к ним доступ? Итак, если бы я хотел написать шаблон, который выглядел бы так:
ThisLine = resource1
ThisLine = resource2
ThisLine = resource3
На всякий случай, если вы все еще хотите знать, я понял, как перебирать ресурсы внутри шаблонов марионеток без каких-либо дополнительных модулей. Вот пример, где у меня есть модуль межсетевого экрана с определенным типом правила (firewall :: rule). Я хочу перебрать все экземпляры этого типа в шаблоне, поэтому использую:
<% scope.compiler.catalog.vertices.each do |resource| -%>
<% if resource.type == "Firewall::Rule" -%>
# <%= resource[:comment] %>
<% end -%>
<% end -%>
Эта средняя строка «ресурс [: комментарий]» работает неправильно, я все еще пытаюсь понять эту часть. Я спросил об этом в списке рассылки марионеток, так что посмотрим, свяжутся ли они со мной. Для справки взгляните на эта почта.