summaryrefslogtreecommitdiffstats
path: root/rubygem-activerecord-fix-set-order.patch
diff options
context:
space:
mode:
Diffstat (limited to 'rubygem-activerecord-fix-set-order.patch')
-rw-r--r--rubygem-activerecord-fix-set-order.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/rubygem-activerecord-fix-set-order.patch b/rubygem-activerecord-fix-set-order.patch
new file mode 100644
index 0000000..411d9a7
--- /dev/null
+++ b/rubygem-activerecord-fix-set-order.patch
@@ -0,0 +1,53 @@
+From 515251513259787f4c679299a1c379dc19ad4921 Mon Sep 17 00:00:00 2001
+From: Evan Phoenix <ephoenix@engineyard.com>
+Date: Mon, 22 Mar 2010 09:51:44 -0700
+Subject: [PATCH] Don't depend on order of elements in Set
+
+(cherry picked from commit a307fd6bd37d12d8ad6baa7e7fcfd0207e8b354a)
+---
+ activerecord/test/cases/finder_test.rb | 21 ++++++++++++++++-----
+ 1 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb
+index 871fdc3..8fd7d08 100644
+--- a/activerecord/test/cases/finder_test.rb
++++ b/activerecord/test/cases/finder_test.rb
+@@ -494,6 +494,18 @@ class FinderTest < ActiveRecord::TestCase
+ assert_kind_of Time, Topic.find(:first, :conditions => ["id = :id", { :id => 1 }]).written_on
+ end
+
++ class SimpleEnumerable
++ include Enumerable
++
++ def initialize(ary)
++ @ary = ary
++ end
++
++ def each(&b)
++ @ary.each(&b)
++ end
++ end
++
+ def test_bind_enumerable
+ quoted_abc = %(#{ActiveRecord::Base.connection.quote('a')},#{ActiveRecord::Base.connection.quote('b')},#{ActiveRecord::Base.connection.quote('c')})
+
+@@ -503,12 +515,11 @@ class FinderTest < ActiveRecord::TestCase
+ assert_equal '1,2,3', bind(':a', :a => [1, 2, 3])
+ assert_equal quoted_abc, bind(':a', :a => %w(a b c)) # '
+
+- require 'set'
+- assert_equal '1,2,3', bind('?', Set.new([1, 2, 3]))
+- assert_equal quoted_abc, bind('?', Set.new(%w(a b c)))
++ assert_equal '1,2,3', bind('?', SimpleEnumerable.new([1, 2, 3]))
++ assert_equal quoted_abc, bind('?', SimpleEnumerable.new(%w(a b c)))
+
+- assert_equal '1,2,3', bind(':a', :a => Set.new([1, 2, 3]))
+- assert_equal quoted_abc, bind(':a', :a => Set.new(%w(a b c))) # '
++ assert_equal '1,2,3', bind(':a', :a => SimpleEnumerable.new([1, 2, 3]))
++ assert_equal quoted_abc, bind(':a', :a => SimpleEnumerable.new(%w(a b c))) # '
+ end
+
+ def test_bind_empty_enumerable
+--
+1.7.1
+