Class: Sunspot::Query::Restriction::Base
- Inherits:
-
Object
- Object
- Sunspot::Query::Restriction::Base
- Defined in:
- lib/sunspot/query/restriction.rb
Overview
Subclasses of this class represent restrictions that can be applied to a Sunspot query. The Sunspot::DSL::Restriction class presents a builder API for instances of this class.
Implementations of this class must respond to #to_params and #to_negative_params. Instead of implementing those methods, they may choose to implement any of:
-
#to_positive_boolean_phrase, and optionally #to_negative_boolean_phrase
-
#to_solr_conditional
Instance Method Summary collapse
-
#initialize(field, value, negative = false) ⇒ Base
constructor
:nodoc:.
-
#to_boolean_phrase ⇒ Object
Return the boolean phrase associated with this restriction object.
-
#to_negative_boolean_phrase ⇒ Object
Boolean phrase representing this restriction in the negative.
-
#to_params ⇒ Object
A hash representing this restriction in solr-ruby’s parameter format.
-
#to_positive_boolean_phrase ⇒ Object
Boolean phrase representing this restriction in the positive.
Constructor Details
#initialize(field, value, negative = false) ⇒ Base
:nodoc:
36 37 38 |
# File 'lib/sunspot/query/restriction.rb', line 36 def initialize(field, value, negative = false) @field, @value, @negative = field, value, negative end |
Instance Method Details
#to_boolean_phrase ⇒ Object
Return the boolean phrase associated with this restriction object. Differentiates between positive and negative boolean phrases depending on whether this restriction is negated.
60 61 62 63 64 65 66 |
# File 'lib/sunspot/query/restriction.rb', line 60 def to_boolean_phrase unless negative? to_positive_boolean_phrase else to_negative_boolean_phrase end end |
#to_negative_boolean_phrase ⇒ Object
Boolean phrase representing this restriction in the negative. Subclasses may choose to implement this method, but it is not necessary, as the base implementation delegates to #to_positive_boolean_phrase.
Returns
- String
-
Boolean phrase for restriction in the negative
94 95 96 |
# File 'lib/sunspot/query/restriction.rb', line 94 def to_negative_boolean_phrase "-#{to_positive_boolean_phrase}" end |
#to_params ⇒ Object
A hash representing this restriction in solr-ruby’s parameter format. All restriction implementations must respond to this method; however, the base implementation delegates to the #to_positive_boolean_phrase method, so subclasses may (and probably should) choose to implement that method instead.
Returns
- Hash
-
Representation of this restriction as solr-ruby parameters
51 52 53 |
# File 'lib/sunspot/query/restriction.rb', line 51 def to_params { :filter_queries => [to_boolean_phrase] } end |
#to_positive_boolean_phrase ⇒ Object
Boolean phrase representing this restriction in the positive. Subclasses may choose to implement this method rather than #to_params; however, this method delegates to the abstract #to_solr_conditional method, which in most cases will be what subclasses will want to implement. #to_solr_conditional contains the boolean phrase representing the condition but leaves out the field name (see built-in implementations for examples)
Returns
- String
-
Boolean phrase for restriction in the positive
81 82 83 |
# File 'lib/sunspot/query/restriction.rb', line 81 def to_positive_boolean_phrase "#{Solr::Util.query_parser_escape(@field.indexed_name)}:#{to_solr_conditional}" end |