Chef:在属性中使用库函数

时间:2014-04-03 16:50:44

标签: chef

如何在食谱的属性文件中访问自己的库函数(在以下模块中创建)?

module Gerrit
  module Helpers
    def gerrit_above?(version)
      require 'chef/version_constraint'
      Chef::VersionConstraint.new(">= #{version}").include?(node['gerrit']['version'])
    end
  end
end

Chef::Recipe.send(:include, ::Gerrit::Helpers)
Chef::Resource.send(:include, ::Gerrit::Helpers)
Chef::Provider.send(:include, ::Gerrit::Helpers)

我可以通过gerrit_above?在食谱中访问它,但是没有找到一种方法可以在属性文件中同时使用它。我尝试了以下一行

Chef::Node::Attribute.send(:include, ::Gerrit::Helpers)

但是在使用:

访问node时失败了
Undefined method or attribute `node' on `node'

有没有人有一个干净的解决方案?

0 个答案:

没有答案