module ScopedSearch::QueryLanguage::AST
Public Class Methods
Source
# File lib/scoped_search/query_language/ast.rb 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
Constructs an AST
from an array notation.