Class: PairSee::KnowledgeDebt

Inherits:
Object
  • Object
show all
Defined in:
lib/pair_see/knowledge_debt.rb

Instance Method Summary collapse

Constructor Details

#initialize(log_lines, card_prefixes, people) ⇒ KnowledgeDebt

Returns a new instance of KnowledgeDebt.



3
4
5
6
7
# File 'lib/pair_see/knowledge_debt.rb', line 3

def initialize(log_lines, card_prefixes, people)
  @log_lines = log_lines
  @card_prefixes = card_prefixes
  @people = people
end

Instance Method Details

#commits_per_cardObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/pair_see/knowledge_debt.rb', line 20

def commits_per_card
  card_to_commits = {}

  @log_lines.each do |ll|
    cn = ll.card_number(@card_prefixes)
    card_to_commits[cn] = [] unless card_to_commits[cn]
    card_to_commits[cn] << ll
  end
  card_to_commits
end

#knowledge_debtObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/pair_see/knowledge_debt.rb', line 9

def knowledge_debt
  # TODO: do something here with percentage knowledge per card
  commits_per_card.map do |card_name, commits|
    authors_per_commit = commits.map do |log_line|
      log_line.all_authors(@people)
    end
    authors = authors_per_commit.flatten.uniq
    CardKnowledgeSummary.new(card_name, commits.count, authors)
  end.select(&:has_debt).sort_by(&:authors_list).map(&:pretty)
end