Sha256: f4c7a9850c2b2431722048d61cbc5d67d4b3b4c7eb63cbb5e58705e818b46d38
Contents?: true
Size: 955 Bytes
Versions: 1
Compression:
Stored size: 955 Bytes
Contents
require "suggest/version" module Suggest def suggest params column_types = self.column_types.values.map(&:type) column_names = self.column_names columns = column_names.zip(column_types).to_h where_clauses = [] params.each do |key, value| next if !columns.keys.include? key or value.nil? where_clauses << comp_exp(value,columns[key],key) end where_query = where_clauses.join(' AND ') where(where_query) end private def comp_exp value, type, name case type.to_s when 'string' comp_exp_str(value, name) when 'integer' comp_exp_num(value, name) when 'float' comp_exp_num(value, name) else "" end end def comp_exp_str value, name "#{name} ilike '%#{value.downcase.gsub(/[\s,]+/,'%')}%'" end def comp_exp_num value, name if /^[^\d]{1,2}/.match(value.to_s).nil? "#{name} = #{value}" else "#{name} #{value}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
suggest-0.1.0 | lib/suggest.rb |