Frage

Ich bin mit einer Puppe Vorlage, die eine erb Interpretation der Vorlagendatei der Fall ist. Ich möchte alle die Variablen zur Verfügung, mich kennen, aber es gibt Variablen zur Verfügung (beispielsweise fqdn), die nicht durch eine der Reflexionsmethoden aufgeführt sind, ich bin mir dessen bewusst, und zwar keiner von diesen:

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

Gibt es ein zusätzlichen Reflexionsverfahren für erb, dass diese mich offenbaren wird?

War es hilfreich?

Lösung

Andere Tipps

Sie wissen nicht wirklich über Puppen Vorlagen, aber wenn fqdn eine lokale Variable ist, dann local_variables Aufruf (wie in self.local_variables) sollte es angezeigt werden soll.

Ich weiß nicht so viel wie ich das über erb möchten eingebaute Mittel der Reflexion, aber mit Puppet, ich denke, die Hash von scope.to_hash zurückgegeben wird, ist wahrscheinlich das, was Sie wollen. Aus Templat Referenz :

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

Alternativ kann, wenn Sie wollen einfach nur einen einmaligen Blick auf den Variablen die Agentenknoten liefern, Sie facter auf dem Knoten ausgeführt werden kann; Das ist, wie Puppet alle, dass Informationen an erster Stelle kommt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top