Pregunta

Estoy usando una plantilla de marionetas, que hace una interpretación erb del archivo de plantilla. Me gustaría saber todas las variables disponibles para mí, sin embargo, no son variables disponibles (por ejemplo, FQDN) que no están listados por cualquiera de los métodos de reflexión yo sepa, en concreto, ninguno de estos:

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

¿Hay un método de reflexión adicional para erb que revelará estos para mí?

¿Fue útil?

Solución

Otros consejos

No se sabe realmente acerca de las plantillas de marionetas, pero si fqdn es una variable local, a continuación, llamar local_variables (como en self.local_variables) debe mostrarlo.

No sé tanto como me gustaría incorporado en medio de la reflexión, pero con la marioneta, creo que el hash devuelto por scope.to_hash es probablemente lo que quieran de Erb. De la referencia de plantillas:

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

Como alternativa, si lo que desea es una visión en tiempo de uno en las variables de los suministros agente de nodo, puede ejecutar facter en el nodo; así es como se pone la marioneta toda esa información en el primer lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top