Class: PairSee::LogLines

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/pair_see/log_lines.rb

Instance Method Summary collapse

Constructor Details

#initialize(git_home, date_string) ⇒ LogLines

Returns a new instance of LogLines.



8
9
10
# File 'lib/pair_see/log_lines.rb', line 8

def initialize(git_home, date_string)
  @lines = _lines_from(git_home, date_string)
end

Instance Method Details

#_lines_from(git_home, date_string) ⇒ Object



12
13
14
15
16
17
# File 'lib/pair_see/log_lines.rb', line 12

def _lines_from(git_home, date_string)
  g = Git.open(git_home)
  g.log.since(date_string).map do |l|
    LogLine.new("#{l.date} #{l.message}")
  end
end

#active?(dev) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
# File 'lib/pair_see/log_lines.rb', line 27

def active?(dev)
  any? do |log_line|
    log_line.authored_by?(dev)
  end
end

#commits_for_pair(person1, person2) ⇒ Object



33
34
35
# File 'lib/pair_see/log_lines.rb', line 33

def commits_for_pair(person1, person2)
  select { |log_line| log_line.authored_by?(person1, person2) }
end

#commits_not_by_known_pair(devs) ⇒ Object



37
38
39
# File 'lib/pair_see/log_lines.rb', line 37

def commits_not_by_known_pair(devs)
  reject { |log_line| log_line.not_by_pair? devs }
end

#each(&block) ⇒ Object



19
20
21
# File 'lib/pair_see/log_lines.rb', line 19

def each(&block)
  lines.each &block
end

#lastObject



23
24
25
# File 'lib/pair_see/log_lines.rb', line 23

def last
  lines.last
end

#solo_commits(devs, dev) ⇒ Object



41
42
43
44
45
# File 'lib/pair_see/log_lines.rb', line 41

def solo_commits(devs, dev)
  select do |log_line|
    log_line.authored_by?(dev) && (devs - [dev]).none? { |d| log_line.authored_by?(d) }
  end
end