2011-01-18 3 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'에 대한 값을 찾을 수 없습니다. –

0

내가만큼 내가 원하는만큼 모르는 원하는 일을해야 반사 ERB에 내장 된 수단 약하지만, 꼭두각시, 나는 scope.to_hash에 의해 반환되는 해시 아마 생각 당신이 원하는. the templating reference에서 :

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

또는, 당신은 그냥 변수에 한 번 모습 에이전트 노드 공급, 당신은 노드에서 facter를 실행하려는 경우, 이것이 처음 인형극이 모든 정보를 얻는 방법입니다.