2017-06-27 11 views
0

シェフテンプレート内からライブラリ関数を呼び出すことはできますか? 私は変数として渡すことができますが、私の要件はテンプレートファイル内のリストを反復することで、各リスト要素の関数を呼び出すことができます。テンプレートファイルからライブラリ関数を呼び出すことはできますか?

/libraries/default.rb

module Common 
    module Helper 
     def test_fun(receiver) 
      if receiver['bla_bla'] 
      return <something meaningful> 
     end 

/templates/default.rb

<% Chef::Resource::User.send(:include, Common::Helper) -%> 
<% node['receivers'].each do |receiver| -%> 
<% test_fun([receiver]) -%> 
<% end -%> 

答えて

1

テンプレート(includeビット)の最初の行を削除しての上部にextend selfを追加ヘルパーモジュールをCommon::Helper.test_fun(whatever)と呼んでください。

+0

これは機能しました。どうもありがとう! –

関連する問題