aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-22 06:34:27 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-22 06:34:27 +0000
commit20aed4495bfa0a1f7844501c9118bd2369fe460b (patch)
tree9e7152bf1dd21776c173a0959cdd864721f4ed3b
parent9c38a08f2872f63076988ba8959e3b447cd4a8ce (diff)
downloadruby-20aed4495bfa0a1f7844501c9118bd2369fe460b.tar.gz
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
-rw-r--r--lib/csv.rb3
-rwxr-xr-xtest/csv/test_features.rb3
2 files changed, 5 insertions, 1 deletions
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