Class: Tire::Search::BooleanQuery
- Inherits:
-
Object
- Object
- Tire::Search::BooleanQuery
- Defined in:
- lib/tire/search/query.rb
Instance Method Summary collapse
-
#initialize(options = {}, &block) ⇒ BooleanQuery
constructor
TODO: Try to get rid of multiple
should,must, etc invocations, and wrap queries directly:. - #must(&block) ⇒ Object
- #must_not(&block) ⇒ Object
- #should(&block) ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(options = {}, &block) ⇒ BooleanQuery
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.
111 112 113 114 115 |
# File 'lib/tire/search/query.rb', line 111 def initialize(={}, &block) @options = @value = {} block.arity < 1 ? self.instance_eval(&block) : block.call(self) if block_given? end |
Instance Method Details
#must(&block) ⇒ Object
117 118 119 120 |
# File 'lib/tire/search/query.rb', line 117 def must(&block) (@value[:must] ||= []) << Query.new(&block).to_hash @value end |
#must_not(&block) ⇒ Object
122 123 124 125 |
# File 'lib/tire/search/query.rb', line 122 def must_not(&block) (@value[:must_not] ||= []) << Query.new(&block).to_hash @value end |
#should(&block) ⇒ Object
127 128 129 130 |
# File 'lib/tire/search/query.rb', line 127 def should(&block) (@value[:should] ||= []) << Query.new(&block).to_hash @value end |
#to_hash ⇒ Object
132 133 134 |
# File 'lib/tire/search/query.rb', line 132 def to_hash @value.update(@options) end |