Class: Stefon::Surveyor::AddedLines

Inherits:
Base
  • Object
show all
Defined in:
lib/stefon/surveyor/added_lines.rb

Overview

This class gives points to the top author of a file in which a user deleted lines

Instance Attribute Summary

Attributes inherited from Base

#scores, #weight

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Stefon::Surveyor::Base

Instance Method Details

#added_lines_by_fileObject



31
32
33
34
35
36
37
# File 'lib/stefon/surveyor/added_lines.rb', line 31

def added_lines_by_file
  lines_per_file_store = Hash.new(0)
  GitUtil.added_lines_by_file do |filename, line_in_file|
    lines_per_file_store[filename] += 1
  end
  lines_per_file_store
end

#callObject



8
9
10
# File 'lib/stefon/surveyor/added_lines.rb', line 8

def call
  score_added_lines.weight_scores(@weight)
end

#call_verboseObject



12
13
14
15
16
17
18
19
# File 'lib/stefon/surveyor/added_lines.rb', line 12

def call_verbose
  array_version = score_added_lines.to_a.map do |pair|
    desc = "Added #{pair.last} #{pair.last == 1 ? 'line' : 'lines' } " +
      "to files written by: #{pair.first}"
    [pair.first, [desc]]
  end
  Surveyor::SurveyorStore[array_version]
end

#score_added_linesObject



21
22
23
24
25
26
27
28
29
# File 'lib/stefon/surveyor/added_lines.rb', line 21

def score_added_lines
  # give credit to the most frequent commiter in the file
  added_lines_by_file.each_pair do |filename, numlines|
    blame = @grit.blame_for(filename)
    top_author = @grit.file_valid_top_author(blame, filename)
    @scores[top_author] += numlines
  end
  @scores
end