Sha256: a05b0ddd56123f41971f17fd6383fb922fb84439aa7a89e02c1a7a2e43d4bdf9

Contents?: true

Size: 755 Bytes

Versions: 4

Compression:

Stored size: 755 Bytes

Contents

require "forwardable"

module GitDiff
  class Hunk
    attr_reader :lines, :range_info

    def initialize(range_info)
      @range_info = range_info
      @lines = []
    end

    def <<(string)
      Line.from_string(string).tap do |line|
        line_number_calculation.increment(line)
        lines << line
      end
    end

    def stats
      @stats ||= Stats.total(collector)
    end

    private

    def collector
      GitDiff::StatsCollector::Hunk.new(self)
    end

    def initial_line_number
      @initial_line_number ||= LineNumber.new(range_info.original_range.start, range_info.new_range.start)
    end

    def line_number_calculation
      @line_number_calculation ||= LineNumberCalculation.new(initial_line_number)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
git_diff-0.4.2 lib/git_diff/hunk.rb
git_diff-0.4.1 lib/git_diff/hunk.rb
git_diff-0.4.0 lib/git_diff/hunk.rb
git_diff-0.3.1 lib/git_diff/hunk.rb