Project

General

Profile

Bug #12422

Updated by nobu (Nobuyoshi Nakada) almost 8 years ago

`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 

 ```ruby ``` 
 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: 

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

Back