2011-01-18 7 views
1

私はテンプレートファイルを解釈するpuppetテンプレートを使用しています。私は利用可能なすべての変数を知りたいと思いますが、私が知っているリフレクション方法には列挙されていない変数(例: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_variablesself.local_variablesなど)を呼び出すと表示されます。

+0

Kernel.local_variablesは要素のリスト(小)を返しますが、self.local_variablesはエラーを生成します: 'local_variables'の値を見つけることができませんでした。 –

0

を望むものを、私は反射のERBの組み込み手段について、私はしたいな限り多くを知らないが、人形で、私はscope.to_hashによって返されたハッシュがおそらくあると思いますかなければなりませんあなたが欲しいもの。 the templating referenceから:

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

代わりに、あなただけの変数で1回の外観は、エージェントノードの電源が、あなたがノード上でfacterを実行することができますしたい場合。これは、人形劇が最初にすべての情報を取得する方法です。

関連する問題