Class: GmailSearchSyntax::SQLiteVisitor

Inherits:
Object
  • Object
show all
Defined in:
lib/gmail_search_syntax/sql_visitor.rb

Direct Known Subclasses

PostgresVisitor

Instance Method Summary collapse

Constructor Details

#initialize(current_user_email: nil, alias_counter: (1..).each) ⇒ SQLiteVisitor



40
41
42
43
# File 'lib/gmail_search_syntax/sql_visitor.rb', line 40

def initialize(current_user_email: nil, alias_counter: (1..).each)
  @current_user_email = current_user_email
  @query = Query.new(alias_counter:)
end

Instance Method Details

#to_queryObject



68
69
70
# File 'lib/gmail_search_syntax/sql_visitor.rb', line 68

def to_query
  @query
end

#visit(node) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/gmail_search_syntax/sql_visitor.rb', line 45

def visit(node)
  case node
  when AST::Operator
    visit_operator(node)
  when AST::StringToken
    visit_string_token(node)
  when AST::Substring
    visit_substring(node)
  when AST::And
    visit_and(node)
  when AST::Or
    visit_or(node)
  when AST::Not
    visit_not(node)
  when AST::Group
    visit_group(node)
  when AST::Around
    visit_around(node)
  else
    raise "Unknown node type: #{node.class}"
  end
end