Module ScopedSearch::QueryLanguage::AST
In: lib/scoped_search/query_language/ast.rb

Methods

Classes and Modules

Class ScopedSearch::QueryLanguage::AST::LeafNode
Class ScopedSearch::QueryLanguage::AST::LogicalOperatorNode
Class ScopedSearch::QueryLanguage::AST::Node
Class ScopedSearch::QueryLanguage::AST::OperatorNode

Public Class methods

Constructs an AST from an array notation.

[Source]

    # File lib/scoped_search/query_language/ast.rb, line 4
 4:   def self.from_array(arg)
 5:     if arg.kind_of?(Array)
 6:       operator = arg.shift
 7:       case operator
 8:       when :and, :or
 9:         LogicalOperatorNode.new(operator, arg.map { |c| from_array(c) })
10:       when Symbol
11:         OperatorNode.new(operator, arg.map { |c| from_array(c) })
12:       else
13:         raise ScopedSearch::Exception, "Not a valid array representation of an AST!"
14:       end
15:     else
16:       return LeafNode.new(arg)
17:     end
18:   end

[Validate]