Class: BooleanTermParser::Query
- Defined in:
- lib/doing/boolean_term_parser.rb
Instance Attribute Summary collapse
- 
  
    
      #must_not_terms  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute must_not_terms. 
- 
  
    
      #must_terms  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute must_terms. 
- 
  
    
      #should_terms  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute should_terms. 
Instance Method Summary collapse
- 
  
    
      #initialize(clauses)  ⇒ Query 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Query. 
- #match(term) ⇒ Object
- #to_elasticsearch ⇒ Object
Constructor Details
#initialize(clauses) ⇒ Query
Returns a new instance of Query.
| 51 52 53 54 55 56 | # File 'lib/doing/boolean_term_parser.rb', line 51 def initialize(clauses) grouped = clauses.chunk { |c| c.operator }.to_h self.should_terms = grouped.fetch(:should, []).map(&:term) self.must_not_terms = grouped.fetch(:must_not, []).map(&:term) self.must_terms = grouped.fetch(:must, []).map(&:term) end | 
Instance Attribute Details
#must_not_terms ⇒ Object
Returns the value of attribute must_not_terms.
| 49 50 51 | # File 'lib/doing/boolean_term_parser.rb', line 49 def must_not_terms @must_not_terms end | 
#must_terms ⇒ Object
Returns the value of attribute must_terms.
| 49 50 51 | # File 'lib/doing/boolean_term_parser.rb', line 49 def must_terms @must_terms end | 
#should_terms ⇒ Object
Returns the value of attribute should_terms.
| 49 50 51 | # File 'lib/doing/boolean_term_parser.rb', line 49 def should_terms @should_terms end | 
Instance Method Details
#match(term) ⇒ Object
| 82 83 84 | # File 'lib/doing/boolean_term_parser.rb', line 82 def match(term) term end | 
#to_elasticsearch ⇒ Object
| 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | # File 'lib/doing/boolean_term_parser.rb', line 58 def to_elasticsearch query = {} if should_terms.any? query[:should] = should_terms.map do |term| match(term) end end if must_terms.any? query[:must] = must_terms.map do |term| match(term) end end if must_not_terms.any? query[:must_not] = must_not_terms.map do |term| match(term) end end query end |