class PairSee::KnowledgeDebt

Public Class Methods

new(log_lines, card_prefixes, people) click to toggle source
# 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

Public Instance Methods

commits_per_card() click to toggle source
# 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_debt() click to toggle source
# 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