2011-01-18 23 views
1

我正在使用木偶模板,它對模板文件做了erb解釋。我想知道所有可用的變量,但是,有可用的變量(例如,fqdn)沒有列出我所知道的任何反射方法,具體而言,這些變量都不是:erb變量的反射

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

是否有一個額外的反射方法的erb會揭示這些給我?

回答

0

不知道傀儡模板,但如果fqdn是局部變量,則調用local_variables(如self.local_variables)應顯示它。

+0

雖然Kernel.local_variables返回一個(小)元素列表,但self.local_variables生成一個錯誤:無法找到'local_variables'的值 – 2011-01-18 22:47:31

0

我不知道像我想什麼約僱員再培訓局的內置反射的方式,而是用木偶,我認爲scope.to_hash返回的哈希可能是你想要什麼。從the templating reference

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

或者,如果你只是想一次看變量代理節點用品,您可以運行的節點上facter;這就是Puppet首先獲取所有信息的方式。