Skip to content

Commit c35e242

Browse files
author
Adam Gardiner
committed
Add options to ignore each kind of difference
1 parent 6065ffb commit c35e242

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lib/csv-diff/algorithm.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ def diff_sources(left, right, key_fields, diff_fields, options = {})
2222
right_keys = right_values.keys
2323
parent_fields = left.parent_fields.length
2424

25-
include_moves = options.fetch(:include_moves, true)
26-
include_deletes = options.fetch(:include_deletes, true)
25+
include_adds = !options[:ignore_adds]
26+
include_moves = !options[:ignore_moves]
27+
include_updates = !options[:ignore_updates]
28+
include_deletes = !options[:ignore_deletes]
2729

2830
diffs = Hash.new{ |h, k| h[k] = {} }
2931
right_keys.each_with_index do |key, right_row_id|
@@ -56,11 +58,11 @@ def diff_sources(left, right, key_fields, diff_fields, options = {})
5658
#puts "Move #{left_idx} -> #{right_idx}: #{key}"
5759
end
5860
end
59-
if changes = diff_row(left_values[key], right_values[key], diff_fields)
61+
if include_updates && (changes = diff_row(left_values[key], right_values[key], diff_fields))
6062
diffs[key].merge!(id.merge(changes.merge(:action => 'Update')))
6163
#puts "Change: #{key}"
6264
end
63-
elsif right_idx
65+
elsif include_adds && right_idx
6466
# Add
6567
diffs[key].merge!(id.merge(right_values[key].merge(:action => 'Add')))
6668
#puts "Add: #{key}"

0 commit comments

Comments
 (0)