如何在库代码中使用 Chef "search" 方法(在模块方法中)?
How to use Chef "search" method in library code (in module method)?
我在库代码中使用 "search" 方法时遇到问题:
libraries/helpers.rb
Bcpc
Helper
extend self
def help(node=node)
search(:node, "....")
end
end
end
Chef::Recipe.send(:include, Bcpc::Helper)
Chef::Resource.send(:include, Bcpc::Helper) 使用模块方法的食谱。
然后像这样在食谱中使用这个模块方法:
Bcpc::Helper.帮助(节点)
当我运行的时候,报错search method is not defined in Bcpc::Helper:Module
我发现搜索方法在 Chef::Search::Query class 中定义。然后我尝试在我的库代码中使用搜索的全名,如:Chef::Search::Query.search(:node, "....")。
但它报告搜索在 Chef::Search::Query 中未定义。
此搜索方法是否应该是可以使用其 class 名称调用的静态方法?
在这种情况下,如何在我的库代码中使用 Chef 提供的 "search" 方法?
谢谢!
你想要这样的东西。
Chef::Search::Query.new.search(:node, 'foo:bar') do |n|
# something with n
end
我在库代码中使用 "search" 方法时遇到问题: libraries/helpers.rb
Bcpc
Helper
extend self
def help(node=node)
search(:node, "....")
end
end
end
Chef::Recipe.send(:include, Bcpc::Helper)
Chef::Resource.send(:include, Bcpc::Helper) 使用模块方法的食谱。
然后像这样在食谱中使用这个模块方法: Bcpc::Helper.帮助(节点) 当我运行的时候,报错search method is not defined in Bcpc::Helper:Module
我发现搜索方法在 Chef::Search::Query class 中定义。然后我尝试在我的库代码中使用搜索的全名,如:Chef::Search::Query.search(:node, "....")。 但它报告搜索在 Chef::Search::Query 中未定义。 此搜索方法是否应该是可以使用其 class 名称调用的静态方法?
在这种情况下,如何在我的库代码中使用 Chef 提供的 "search" 方法? 谢谢!
你想要这样的东西。
Chef::Search::Query.new.search(:node, 'foo:bar') do |n|
# something with n
end