Class: JayAPI::Elasticsearch::QueryBuilder::QueryClauses::Negator
- Inherits:
-
Object
- Object
- JayAPI::Elasticsearch::QueryBuilder::QueryClauses::Negator
- Defined in:
- lib/jay_api/elasticsearch/query_builder/query_clauses/negator.rb
Overview
A class capable of negating any QueryClause object
Constant Summary collapse
- INVERSE_CLAUSES =
A mapping between QueryClause classes and their corresponding inverse clauses. Only some of the clauses can be directly inverted.
{ ::JayAPI::Elasticsearch::QueryBuilder::QueryClauses::MatchAll => ::JayAPI::Elasticsearch::QueryBuilder::QueryClauses::MatchNone, ::JayAPI::Elasticsearch::QueryBuilder::QueryClauses::MatchNone => ::JayAPI::Elasticsearch::QueryBuilder::QueryClauses::MatchAll }.freeze
Instance Attribute Summary collapse
-
#query_clause ⇒ Object
readonly
Returns the value of attribute query_clause.
Instance Method Summary collapse
-
#initialize(query_clause) ⇒ Negator
constructor
A new instance of Negator.
-
#negate ⇒ JayAPI::Elasticsearch::QueryBuilder::QueryClauses::QueryClause
The negated version of the given
QueryClause
.
Constructor Details
#initialize(query_clause) ⇒ Negator
Returns a new instance of Negator.
26 27 28 |
# File 'lib/jay_api/elasticsearch/query_builder/query_clauses/negator.rb', line 26 def initialize(query_clause) @query_clause = query_clause end |
Instance Attribute Details
#query_clause ⇒ Object (readonly)
Returns the value of attribute query_clause.
22 23 24 |
# File 'lib/jay_api/elasticsearch/query_builder/query_clauses/negator.rb', line 22 def query_clause @query_clause end |
Instance Method Details
#negate ⇒ JayAPI::Elasticsearch::QueryBuilder::QueryClauses::QueryClause
Returns The negated version of the given QueryClause
.
32 33 34 35 36 37 |
# File 'lib/jay_api/elasticsearch/query_builder/query_clauses/negator.rb', line 32 def negate @negate ||= INVERSE_CLAUSES[query_clause.class]&.new || ::JayAPI::Elasticsearch::QueryBuilder::QueryClauses::Bool.new.must_not do |bool_query| bool_query << query_clause end end |