Sha256: 9eed1251d0d3b48c693e539f95afb57d1cd4bac1f29c92be7141fc574c4300ed
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
# -*- encoding : utf-8 -*- module Tutuf module VisualQuery class Common class << self def connection ActiveRecord::Base.connection end #delegates to PostgreSQL raw connection def quote_ident(str) connection.raw_connection.quote_ident(str) end def quote_relation_name(name) if String === name # in default schema quote_ident(name) elsif Hash === name "#{!name['schema'].blank? ? quote_ident(name['schema']) + '.' : ''}#{quote_ident(name['rel_name'])}" end end end # Parameters of the block: +schema+, +relation_name+, +column_name+, +operator+, +value+ def filters_to_a(&block) parse_filters(filters, &block) end protected def connection self.class.connection end def quote_ident(str) self.class.quote_ident(str) end def quote_relation_name(name) self.class.quote_relation_name(name) end def parse_filters(filters) return [] if filters.blank? || (Hash === filters) # old version res = [] filters.each do |filter| schema, rel_name, col_name, op, val = [filter['schema'], filter['rel_name'], filter['col_name'], filter['op'], filter['val']] if (!val.blank? || ( val.blank? && op == '=' )) val = "%#{val}%" if (op == 'LIKE' || op == 'ILIKE') res << yield(schema,rel_name,col_name,op,val) elsif op == 'IS NULL' res << yield(schema,rel_name,col_name,"IS","NULL") end end res end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
visual_query-0.3.0 | lib/tutuf/visual_query/common.rb |