Sha256: aacdf0384458922113652cbe4671b935e34f75cb59bb4ee73b0049094ac0baee

Contents?: true

Size: 1.27 KB

Versions: 14

Compression:

Stored size: 1.27 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|
          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
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
composite_primary_keys-12.0.9 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.8 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.6 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.5 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.4 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.3 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.2 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.1 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0.rc5 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0.rc4 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0.rc3 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0.rc2 lib/composite_primary_keys/relation/query_methods.rb
composite_primary_keys-12.0.0.rc1 lib/composite_primary_keys/relation/query_methods.rb