TODO: Try to get rid of multiple `should`, `must`, etc invocations, and wrap queries directly:
boolean do should do string 'foo' string 'bar' end end
Inherit from Query, implement `encode` method there, and overload it here, so it puts queries in an Array instead of hash.
# File lib/tire/search/query.rb, line 131 def initialize(options={}, &block) @options = options @value = {} block.arity < 1 ? self.instance_eval(&block) : block.call(self) if block_given? end
# File lib/tire/search/query.rb, line 137 def must(&block) (@value[:must] ||= []) << Query.new(&block).to_hash @value end
# File lib/tire/search/query.rb, line 142 def must_not(&block) (@value[:must_not] ||= []) << Query.new(&block).to_hash @value end
# File lib/tire/search/query.rb, line 147 def should(&block) (@value[:should] ||= []) << Query.new(&block).to_hash @value end
# File lib/tire/search/query.rb, line 152 def to_hash @value.update(@options) end