From 20aed4495bfa0a1f7844501c9118bd2369fe460b Mon Sep 17 00:00:00 2001 From: hsbt Date: Tue, 22 Aug 2017 06:34:27 +0000 Subject: Fixed equality method fails when given the object that doesn't support table method. [Bug #12422][ruby-core:75707] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/csv.rb | 3 ++- test/csv/test_features.rb | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/csv.rb b/lib/csv.rb index 45a087ff0f..b16e817d09 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -870,7 +870,8 @@ class CSV # Returns +true+ if all rows of this table ==() +other+'s rows. def ==(other) - @table == other.table + return @table == other.table if other.is_a? CSV::Table + @table == other end # diff --git a/test/csv/test_features.rb b/test/csv/test_features.rb index 3f9359faaf..8acd744b73 100755 --- a/test/csv/test_features.rb +++ b/test/csv/test_features.rb @@ -374,4 +374,7 @@ class TestCSV::Features < TestCSV assert_equal [["line", "1", "a"], ["line", "2", "b"]], c.each.to_a end + def test_table_nil_equality + assert_nothing_raised(NoMethodError) { CSV.parse("test", headers: true) == nil } + end end -- cgit v1.2.3