Bug #7528
closedCSV.== fails to check object type
Description
CSV::Row's equality method presumes it is comparing another CSV::Row. It fails when the object to be compared doesn't support the 'row' method:
/usr/lib/ruby/1.9.1/csv.rb:478:in ==': undefined method row' for nil:NilClass (NoMethodError)
from test.rb:7:in `'
Files
        
           Updated by SteveW (Stephen Wattam) almost 13 years ago
          Updated by SteveW (Stephen Wattam) almost 13 years ago
          
          
        
        
      
      This seems to fix it:
478c478,479
<       @row == other.row
---
>       return @row == other.row if other.class == CSV::Row
>       @row == other
        
           Updated by Anonymous almost 13 years ago
          Updated by Anonymous almost 13 years ago
          
          
        
        
      
      It would probably be better to perform an is_a? check rather than
checking the class of the other object.
        
           Updated by SteveW (Stephen Wattam) almost 13 years ago
          Updated by SteveW (Stephen Wattam) almost 13 years ago
          
          
        
        
      
      - File csv.rb.patch csv.rb.patch added
I concur. Patch attached for easy application.
It's probably worth noting that the current, unpatched, behaviour seems to break foreach too.
        
           Updated by drbrain (Eric Hodel) almost 13 years ago
          Updated by drbrain (Eric Hodel) almost 13 years ago
          
          
        
        
      
      - Category set to lib
- Status changed from Open to Assigned
- Assignee set to JEG2 (James Gray)
- Target version set to 2.0.0
        
           Updated by JEG2 (James Gray) almost 13 years ago
          Updated by JEG2 (James Gray) almost 13 years ago
          
          
        
        
      
      - Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r38265.
Stephen, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- lib/csv.rb: A fix for row comparison by Stephen Wattam. [Bug #7528]
        
           Updated by zzak (zzak _) almost 13 years ago
          Updated by zzak (zzak _) almost 13 years ago
          
          
        
        
      
      James, I think your editor may have committed a bunch of whitespace changes