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