Issue #12422 has been reported by Felix Kenton.

----------------------------------------
Bug #12422: CSV.Table.== fails to check object type
https://bugs.ruby-lang.org/issues/12422

* Author: Felix Kenton
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
`CSV::Table`'s equality method presumes it is comparing another `CSV::Table`. It fails when the object to be compared doesn't support the `table` method.

This is more or less the same issue as reported and fixed in Bug #7528 (https://bugs.ruby-lang.org/issues/7528).

### Test Case

```
require 'csv'
CSV.parse("test", headers: true) == nil
# => NoMethodError: undefined method `table' for nil:NilClass
```

### Suggested Patch

Following the implementation used in `CSV::Row`, a suggested patch would be:

```
def ==(other)
  return @table == other.table if other.is_a? CSV::Table
  @table == other
end
```



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>