module Chef::Knife::PartialSearch
Public Instance Methods
define_partial_search(keys)
click to toggle source
# File lib/chef/knife/partial_search/partial_search.rb, line 4 def define_partial_search(keys) Chef::Search::Query.class_eval do @@keys = keys alias_method :old_search, :search unless method_defined? :old_search def search(type, query="*:*", sort='X_CHEF_id_CHEF_X asc', start=0, rows=1000, &block) q = Chef::PartialSearch.new args = Hash.new args[:keys] = @@keys args[:sort] = sort args[:start] = start args[:rows] = rows if block_given? q.search(type, query, args) do |node_hash| n = ::Knife::PartialSearch::FakeNode.new do |h,k| h[k] = node_hash[k] end @@keys.each do |k,v| n[k] end block.call(n) end else res = q.search(type, query, args) [res.first] end end end end
search(type, query="*:*", sort='X_CHEF_id_CHEF_X asc', start=0, rows=1000, &block)
click to toggle source
# File lib/chef/knife/partial_search/partial_search.rb, line 11 def search(type, query="*:*", sort='X_CHEF_id_CHEF_X asc', start=0, rows=1000, &block) q = Chef::PartialSearch.new args = Hash.new args[:keys] = @@keys args[:sort] = sort args[:start] = start args[:rows] = rows if block_given? q.search(type, query, args) do |node_hash| n = ::Knife::PartialSearch::FakeNode.new do |h,k| h[k] = node_hash[k] end @@keys.each do |k,v| n[k] end block.call(n) end else res = q.search(type, query, args) [res.first] end end