Sha256: f5ceba398f4912c8f95de6e00c2288134e85ab5217200679055c348ad7ec39ed
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
module PairSee class CardsPerPerson attr_reader :people, :cards_per_person, :dev_pairs def initialize(log_lines, card_prefix, people) @people = _active(people, log_lines) @cards_per_person = _cards_per_person(log_lines, card_prefix) @dev_pairs = @people.combination(2) end private def _cards_per_person(log_lines, card_prefix) all = _people_hash _populate_card_numbers(all, log_lines, card_prefix) _unique_cards_per_person(all) _sort_by_cards_count(all) end def _sort_by_cards_count(all) all.sort_by { |_, card_names| card_names.count }.map do |person, card_names| sorted = card_names.compact.sort_by(&:to_i) "#{person}: [#{card_names.size} cards] #{sorted.join(', ')}" end end def _unique_cards_per_person(all) all.each { |_, card_names| card_names.uniq! } end def _populate_card_numbers(all, log_lines, card_prefix) log_lines.each do |log_line| # loop through the biggest list only once all.each do |person, _| if log_line.authored_by? person all[person] << log_line.card_number(card_prefix) end end end end def _people_hash Hash[people.map { |key, _| [key, []] }] end def _active(people, log_lines) people.select do |person| log_lines.active? person end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pair_see-0.1.6 | lib/pair_see/cards_per_person.rb |