是否可以从模板文件中调用库函数?

时间:2017-06-27 20:55:58

标签: chef

是否可以从厨师模板中调用库函数? 我知道我们可以将它作为变量传递,但我的要求是迭代模板文件中的列表可以为每个列表元素调用函数。

/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 个答案:

答案 0 :(得分:2)

删除模板中的第一行(include位)并将extend self添加到帮助程序模块的顶部,并将其称为Common::Helper.test_fun(whatever)