reflet de variables erb
-
12-10-2019 - |
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?
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.