Назад | Перейти на главную страницу

Итерация по ресурсам в шаблонах марионеток

Итак, у меня есть манифест марионетки с несколькими ресурсами

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 -%>

Эта средняя строка «ресурс [: комментарий]» работает неправильно, я все еще пытаюсь понять эту часть. Я спросил об этом в списке рассылки марионеток, так что посмотрим, свяжутся ли они со мной. Для справки взгляните на эта почта.