class CSVDiff::Algorithm::Diff
Holds the details of a single difference
Attributes
diff_type[RW]
fields[R]
row[R]
sibling_position[R]
Public Class Methods
new(diff_type, fields, row_idx, pos_idx)
click to toggle source
# File lib/csv-diff/algorithm.rb, line 14 def initialize(diff_type, fields, row_idx, pos_idx) @diff_type = diff_type @fields = fields @row = row_idx + 1 self.sibling_position = pos_idx end
Public Instance Methods
[](key)
click to toggle source
For backwards compatibility and access to fields with differences
# File lib/csv-diff/algorithm.rb, line 37 def [](key) case key when :action a = diff_type.to_s a[0] = a[0].upcase a when :row @row when :sibling_position @sibling_position else @fields[key] || @fields[key.to_s.intern] || @fields[key.to_s] end end
sibling_position=(pos_idx)
click to toggle source
# File lib/csv-diff/algorithm.rb, line 22 def sibling_position=(pos_idx) if pos_idx.is_a?(Array) pos_idx.compact! if pos_idx.first != pos_idx.last @sibling_position = pos_idx.map{ |pos| pos + 1 } else @sibling_position = pos_idx.first + 1 end else @sibling_position = pos_idx + 1 end end