Class: Leg::DiffTransformers::TrimBlankLines

Inherits:
BaseTransformer show all
Defined in:
lib/leg/diff_transformers/trim_blank_lines.rb

Instance Method Summary collapse

Methods inherited from BaseTransformer

#initialize

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
# File 'lib/leg/diff_transformers/trim_blank_lines.rb', line 4

def transform(diff)
  new_diff = diff.clone_empty
  diff.lines.each.with_index do |line, idx|
    line = line.clone
    if line.blank? && [:added, :removed].include?(line.type)
      prev_line = idx > 0 ? diff.lines[idx - 1] : nil
      next_line = idx < diff.lines.length - 1 ? diff.lines[idx + 1] : nil

      prev_changed = prev_line && [:added, :removed].include?(prev_line.type)
      next_changed = next_line && [:added, :removed].include?(next_line.type)

      if !prev_changed || !next_changed
        line = Leg::Line::Unchanged.new(line.source, line.line_numbers)
      end
    end
    new_diff.lines << line
  end
  new_diff
end