Module: GmailSearchSyntax

Defined in:
lib/gmail_search_syntax.rb,
lib/gmail_search_syntax/ast.rb,
lib/gmail_search_syntax/parser.rb,
lib/gmail_search_syntax/version.rb,
lib/gmail_search_syntax/tokenizer.rb,
lib/gmail_search_syntax/sql_visitor.rb

Overview

Gmail Search Syntax Parser

Parses Gmail search queries into an Abstract Syntax Tree (AST). Based on the official Gmail search operators documentation: support.google.com/mail/answer/7190

Example:

ast = GmailSearchSyntax.parse!("from:boss subject:meeting")
# => #<And #<Operator from: "boss"> AND #<Operator subject: "meeting">>

Defined Under Namespace

Modules: AST Classes: EmptyQueryError, Parser, PostgresVisitor, Query, SQLiteVisitor, Token, Tokenizer

Constant Summary collapse

VERSION =
"0.1.4"

Class Method Summary collapse

Class Method Details

.const_missing(name) ⇒ Object

Backward compatibility alias (defined lazily)



20
21
22
23
24
25
26
# File 'lib/gmail_search_syntax.rb', line 20

def self.const_missing(name)
  if name == :SqlVisitor
    const_set(:SqlVisitor, SQLiteVisitor)
  else
    super
  end
end

.parse!(query) ⇒ Object



30
31
32
33
# File 'lib/gmail_search_syntax.rb', line 30

def self.parse!(query)
  tokens = Tokenizer.new(query).tokenize
  Parser.new(tokens).parse!
end