Method: SQLRunner::Adapters::SQLite#parse

Defined in:
lib/sql_runner/adapters/sqlite.rb

#parse(query, bind_vars) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/sql_runner/adapters/sqlite.rb', line 63

def parse(query, bind_vars)
  bindings = []
  names = []

  parsed_query = query.gsub(/(:?):([a-zA-Z]\w*)/) do |match|
    next match if Regexp.last_match(1) == ":" # skip type casting

    name = match[1..-1]
    sym_name = name.to_sym
    names << sym_name
    bindings << bind_vars[sym_name]

    "?"
  end

  [parsed_query, bindings, names]
end