Sha256: d015939584528642c28e717da60096a26030473b8be85e315e620422375a5ae6

Contents?: true

Size: 831 Bytes

Versions: 3

Compression:

Stored size: 831 Bytes

Contents

module PrettyDiff
  class Chunk
    attr_reader :diff, :meta_info, :lines, :contents

    def initialize(diff, meta_info, contents)
      @diff = diff
      @meta_info = meta_info
      @contents = contents
      @lines = find_lines
    end

    def line_numbers
      @_line_numbers ||= LineNumbers.new(diff, meta_info)
    end

  private

    def wdiff(lines)
      PrettyDiff::WordDiffFinder.find_word_diffs(lines)
    end

    def find_lines
      [].tap do |lines|
        wdiff(contents.split(/\r?\n|\r/)).each do |line_str|
          line = Line.new(self, line_str)
          next if line.ignored?
          lines << line
          line_numbers.act_on_line(line)
          line.left_number = line_numbers.left_column.last
          line.right_number = line_numbers.right_column.last
        end
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pretty_diff-2.1.2 lib/pretty_diff/chunk.rb
pretty_diff-2.1.1 lib/pretty_diff/chunk.rb
pretty_diff-2.1.0 lib/pretty_diff/chunk.rb