Module: Commiti::DiffSummarizer::FallbackBuilder

Included in:
Commiti::DiffSummarizer
Defined in:
lib/services/diff_summarization/fallback_builder.rb

Instance Method Summary collapse

Instance Method Details

#fallback_summary(diff, chunks: nil) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/services/diff_summarization/fallback_builder.rb', line 13

def fallback_summary(diff, chunks: nil)
  parsed_chunks = chunks || Commiti::DiffParser.split_by_file(diff)
  files = file_stats_for(parsed_chunks)
  return diff.to_s[0, FALLBACK_BYTES] if files.empty?

  render_fallback_summary(files)
end

#mechanical_summary(diff) ⇒ Object



6
7
8
9
10
11
# File 'lib/services/diff_summarization/fallback_builder.rb', line 6

def mechanical_summary(diff)
  additions = diff.to_s.each_line.count { |line| line.start_with?('+') && !line.start_with?('+++') }
  deletions = diff.to_s.each_line.count { |line| line.start_with?('-') && !line.start_with?('---') }
  hunks = diff.to_s.each_line.count { |line| line.start_with?('@@') }
  "- #{additions} additions, #{deletions} deletions across #{hunks} hunk(s)"
end