Sha256: cd7b158c4145207b2cc56af37005a8f2aad790392f4b04182464d952d58a54b4
Contents?: true
Size: 1.21 KB
Versions: 12
Compression:
Stored size: 1.21 KB
Contents
module CompositePrimaryKeys module ActiveRecord module QueryMethods def reverse_sql_order(order_query) if order_query.empty? # CPK # return [arel_attribute(primary_key).desc] if primary_key if primary_key # break apart CPKs return primary_key.map do |key| arel_attribute(key).desc end else raise IrreversibleOrderError, "Relation has no current order and table has no primary key to be used as default order" end end order_query.flat_map do |o| case o when Arel::Attribute o.desc when Arel::Nodes::Ordering o.reverse when String if does_not_support_reverse?(o) raise IrreversibleOrderError, "Order #{o.inspect} can not be reversed automatically" end o.split(",").map! do |s| s.strip! s.gsub!(/\sasc\Z/i, " DESC") || s.gsub!(/\sdesc\Z/i, " ASC") || (s << " DESC") end else o end end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems