отражение переменных erb - PullRequest
1 голос
/ 19 января 2011

Я использую шаблон марионетки, который делает erb-интерпретацию файла шаблона.Я хотел бы знать все доступные мне переменные, однако, есть доступные переменные (например, fqdn), которые не перечислены ни одним из методов отражения, о которых я знаю, в частности, ни один из них:

<% Module.constants.each do |v| %># module constant: <%= v %>
<% end %>
<% Kernel.local_variables.each do |v| %># local variable: <%= v %>
<% end %>
<% Kernel.instance_variables.each do |v| %># instance variable: <%= v %>
<% end %>
<% Module.class_variables.each do |v| %># class variable: <%= v %>
<% end %>
<% Kernel.global_variables.each do |v| %># global variable: <%= v %>
<% end %>

Есть ли у Эрба дополнительный метод отражения, который откроет это мне?

Ответы [ 3 ]

1 голос
/ 25 января 2011

"Просмотреть все переменные клиента" должен делать то, что вы хотите

0 голосов
/ 08 февраля 2011

Я не так много знаю о встроенных средствах отражения в erb, но с Puppet я думаю, что хэш, возвращаемый scope.to_hash, вероятно, то, что вы хотите.Начиная с шаблонной ссылки :

<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>

В качестве альтернативы, если вы просто хотите один раз просмотреть переменные, которые предоставляет узел агента, вы можете запустить facter на узле;вот как Puppet получает всю эту информацию в первую очередь.

0 голосов
/ 19 января 2011

На самом деле не знаю о шаблонах кукол, но если fqdn - локальная переменная, то вызов local_variables (как в self.local_variables) должен отобразить ее.

...