diff options
Diffstat (limited to 'rubygem-activerecord-fix-set-order.patch')
-rw-r--r-- | rubygem-activerecord-fix-set-order.patch | 53 |
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 + |