Question

J'utilise un modèle de marionnettes, qui fait une interprétation erb du fichier modèle. Je voudrais connaître toutes les variables disponibles pour moi, cependant, il y a des variables disponibles (par exemple, fqdn) qui ne sont pas répertoriés par l'une des méthodes de réflexion que je connais, en particulier, aucune de ces:

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

Y at-il une méthode de réflexion supplémentaire pour erb qui va révéler ce pour moi?

Était-ce utile?

La solution

Le "Voir toutes les variables du client" devrait faire ce vous voulez

Autres conseils

Je ne sais pas vraiment sur les modèles de marionnettes, mais si fqdn est une variable locale, puis en appelant local_variables (comme dans self.local_variables) doit l'afficher.

Je ne sais pas autant que je le voudrais sur Erb intégré au moyen de la réflexion, mais avec marionnettes, je pense que le hachage retourné par scope.to_hash est probablement ce que vous voulez. De la référence templating:

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

Sinon, si vous voulez juste un regard unique sur les variables les fournitures de noeud d'agent, vous pouvez exécuter facter sur le nœud; voilà comment marionnettes obtient toutes ces informations en premier lieu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top