Method: Baza::BaseSqlDriver#sql_make_where

Defined in:
lib/baza/base_sql_driver.rb

#sql_make_where(arr_terms, _driver = nil) ⇒ Object

Internally used to generate SQL.

Examples

sql = db.sql_make_where(“Doe”, driver_obj)



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/baza/base_sql_driver.rb', line 220

def sql_make_where(arr_terms, _driver = nil)
  sql = ""

  first = true
  arr_terms.each do |key, value|
    if first
      first = false
    else
      sql << " AND "
    end

    if value.is_a?(Array)
      raise "Array for column '#{key}' was empty." if value.empty?
      values = value.map { |v| "'#{escape(v)}'" }.join(",")
      sql << "#{quote_column(key)} IN (#{values})"
    elsif value.is_a?(Hash)
      raise "Dont know how to handle hash."
    else
      sql << "#{quote_column(key)} = #{quote_value(value)}"
    end
  end

  sql
end