Module: CompositePrimaryKeys::ActiveRecord::QueryMethods
- Defined in:
- lib/composite_primary_keys/relation/query_methods.rb
Instance Method Summary collapse
Instance Method Details
#order(*args) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/composite_primary_keys/relation/query_methods.rb', line 28 def order(*args) args.map! do |arg| if arg.is_a?(Arel::Nodes::Ordering) && arg.expr.name.is_a?(Array) arg = arg.expr.name.map do |key| cloned_node = arg.clone cloned_node.expr.name = key cloned_node end end arg end if composite? super(*args) end |
#reverse_sql_order(order_query) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/composite_primary_keys/relation/query_methods.rb', line 3 def reverse_sql_order(order_query) # CPK # order_query = ["#{quoted_table_name}.#{quoted_primary_key} ASC"] if order_query.empty? # break apart CPKs order_query = primary_key.map do |key| "#{quoted_table_name}.#{connection.quote_column_name(key)} ASC" end if order_query.empty? order_query.map do |o| case o when Arel::Nodes::Ordering o.reverse when String, Symbol o.to_s.split(',').collect do |s| s.strip! s.gsub!(/\sasc\Z/i, ' DESC') || s.gsub!(/\sdesc\Z/i, ' ASC') || s.concat(' DESC') end else o end end.flatten end |