class Sorted::SQLQuery
Constants
- REGEXP
Public Class Methods
encode(set, quote_proc = ->(f) { f }
click to toggle source
# File lib/sorted/sql_query.rb, line 22 def self.encode(set, quote_proc = ->(f) { f }) set.map do |a| encoded = "#{column(a[0], quote_proc)}" if sort_has_direction?(a) encoded += " #{a[1].upcase}" encoded += encode_nulls(a[2]) unless a[2].nil? else encoded += encode_nulls(a[1]) unless a[1].nil? end encoded end.join(', ') end
parse(raw)
click to toggle source
# File lib/sorted/sql_query.rb, line 14 def self.parse(raw) split(raw, /,/) do |set, part| m = part.match(REGEXP) next unless m set << parse_match(m) end end
Private Class Methods
column(parts, quote_proc)
click to toggle source
# File lib/sorted/sql_query.rb, line 47 def self.column(parts, quote_proc) parts.split('.').map { |frag| quote_proc.call(frag) }.join('.') end
encode_nulls(raw_nulls)
click to toggle source
# File lib/sorted/sql_query.rb, line 42 def self.encode_nulls(raw_nulls) " #{raw_nulls.upcase.tr('_', ' ')}" end
sort_has_direction?(raw)
click to toggle source
# File lib/sorted/sql_query.rb, line 37 def self.sort_has_direction?(raw) raw[1].match(/ASC|DESC/i) unless raw[1].nil? end