Class: Leg::DiffTransformers::OmitAdjacentRemovals
- Inherits:
-
BaseTransformer
- Object
- BaseTransformer
- Leg::DiffTransformers::OmitAdjacentRemovals
- Defined in:
- lib/leg/diff_transformers/omit_adjacent_removals.rb
Instance Method Summary collapse
Methods inherited from BaseTransformer
Constructor Details
This class inherits a constructor from Leg::DiffTransformers::BaseTransformer
Instance Method Details
#transform(diff) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/leg/diff_transformers/omit_adjacent_removals.rb', line 4 def transform(diff) new_diff = diff.clone removed_lines = [] saw_added_line = false new_diff.lines.each.with_index do |line, idx| case line.type when :unchanged, :folded if saw_added_line removed_lines.each do |removed_idx| new_diff.lines[removed_idx] = nil end end removed_lines = [] saw_added_line = false when :added saw_added_line = true when :removed removed_lines << idx end end if saw_added_line removed_lines.each do |removed_idx| new_diff.lines[removed_idx] = nil end end new_diff.lines.compact! new_diff end |