From e174923d29328be9e5373d334ebdb25390687983 Mon Sep 17 00:00:00 2001 From: Oriol Gual Date: Wed, 8 Jun 2011 20:54:27 +0200 Subject: Add failing test --- activerecord/test/cases/relation_scoping_test.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'activerecord') diff --git a/activerecord/test/cases/relation_scoping_test.rb b/activerecord/test/cases/relation_scoping_test.rb index 77b7648576..5a309af7f7 100644 --- a/activerecord/test/cases/relation_scoping_test.rb +++ b/activerecord/test/cases/relation_scoping_test.rb @@ -15,6 +15,10 @@ class RelationScopingTest < ActiveRecord::TestCase assert_equal Developer.order("id DESC").to_a.reverse, Developer.order("id DESC").reverse_order end + def test_reverse_order_with_arel_node + assert_equal Developer.order("id DESC").to_a.reverse, Developer.order(Developer.arel_table[:id].desc).reverse_order + end + def test_double_reverse_order_produces_original_order assert_equal Developer.order("name DESC"), Developer.order("name DESC").reverse_order.reverse_order end -- cgit v1.2.3 From eb933f0154f5e10a794552086cf18d1b29b90081 Mon Sep 17 00:00:00 2001 From: Oriol Gual Date: Wed, 8 Jun 2011 21:08:29 +0200 Subject: Add more test cases --- activerecord/test/cases/relation_scoping_test.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'activerecord') diff --git a/activerecord/test/cases/relation_scoping_test.rb b/activerecord/test/cases/relation_scoping_test.rb index 5a309af7f7..f2d177d834 100644 --- a/activerecord/test/cases/relation_scoping_test.rb +++ b/activerecord/test/cases/relation_scoping_test.rb @@ -19,6 +19,14 @@ class RelationScopingTest < ActiveRecord::TestCase assert_equal Developer.order("id DESC").to_a.reverse, Developer.order(Developer.arel_table[:id].desc).reverse_order end + def test_reverse_order_with_multiple_arel_nodes + assert_equal Developer.order("id DESC").order("name DESC").to_a.reverse, Developer.order(Developer.arel_table[:id].desc).order(Developer.arel_table[:name].desc).reverse_order + end + + def test_reverse_order_with_arel_nodes_and_strings + assert_equal Developer.order("id DESC").order("name DESC").to_a.reverse, Developer.order("id DESC").order(Developer.arel_table[:name].desc).reverse_order + end + def test_double_reverse_order_produces_original_order assert_equal Developer.order("name DESC"), Developer.order("name DESC").reverse_order.reverse_order end -- cgit v1.2.3 From 2e0840dd0450b883800d6115a18d8867159c9812 Mon Sep 17 00:00:00 2001 From: Oriol Gual Date: Tue, 28 Jun 2011 22:22:26 +0200 Subject: Update reverse order with new Arel Nodes --- activerecord/lib/active_record/relation/query_methods.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index d17861f407..01d1ab2de2 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -307,7 +307,8 @@ module ActiveRecord order_query.map do |o| case o - when Arel::Nodes::Ordering + when Arel::Nodes::Ascending + when Arel::Nodes::Descending o.reverse when String, Symbol o.to_s.split(',').collect do |s| -- cgit v1.2.3 From 56ac32ad51b0c46bc3034b7cf0d7ff58e24bbbd5 Mon Sep 17 00:00:00 2001 From: Oriol Gual Date: Tue, 28 Jun 2011 22:31:24 +0200 Subject: Fix case --- activerecord/lib/active_record/relation/query_methods.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index 01d1ab2de2..ec2e4d4dcd 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -307,8 +307,7 @@ module ActiveRecord order_query.map do |o| case o - when Arel::Nodes::Ascending - when Arel::Nodes::Descending + when Arel::Nodes::Ascending, Arel::Nodes::Descending o.reverse when String, Symbol o.to_s.split(',').collect do |s| -- cgit v1.2.3