Module: ActiveQuery::SQLParser

Defined in:
lib/active_query/sql_parser.rb

Defined Under Namespace

Classes: Query, SyntaxError

Constant Summary collapse

WHITESPACE =
/\s+/
NAME =
/^\s*--\s*name\s*:\s*(.+)/
END_QUERY =
/;/
PARAMS =
/\(\:\s*([^)]+?)\s*\)/
ALL_COMMENTS =
/(?-m:--.*)|(?m:--\*.--?\*\/)/
PARAM =
/:\w+/

Class Method Summary collapse

Class Method Details

.parse_query(query) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_query/sql_parser.rb', line 16

def self.parse_query(query)
  @scanner = StringScanner.new(query)
  @line = 0
  @query = Query.new 

  until @scanner.eos? || @scanner.check_until(END_QUERY).nil? 
    @line += 1
    parse_line
  end
  @query.query = make_params(@query.query, @query.params)
  @query
end