Method: SQLRunner::Adapters::MySQL#parse

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

#parse(query, bind_vars) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/sql_runner/adapters/mysql.rb', line 79

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