class DynamicQuery::Querier

Constants

STMT_SUFFIX_DICT

Public Class Methods

statement(conditions) click to toggle source
# File lib/dynamic_query.rb, line 92
def self.statement(conditions)
  conditions ||= []
  statement = []
  values = []
  
  conditions.each do |conds|
    and_conds = []
    conds.each do |key, val|
      col, op = key.to_s.split(/\./)
      op = STMT_SUFFIX_DICT[op]
      and_conds << "#{col} #{op}"
      if ['BETWEEN ? AND ?', 'NOT BETWEEN ? AND ?'].include? op
        values << val[0] << val[1]
      else
        values << val
      end
    end
    statement << and_conds.join(' AND ')
  end
  
  values.unshift statement.map { |s| "(#{s})" }.join(' OR ')
end