class PairSee::LogLine

Attributes

card_number[R]
date[R]
line[R]

Public Class Methods

new(line) click to toggle source
# File lib/pair_see/log_line.rb, line 6
def initialize(line)
  @line = line
  @date = _get_date(line)
end

Public Instance Methods

all_authors(people) click to toggle source
# File lib/pair_see/log_line.rb, line 11
def all_authors(people)
  people.select do |person|
    _contains_any_of?(person.names)
  end
end
authored_by?(*people) click to toggle source
# File lib/pair_see/log_line.rb, line 17
def authored_by?(*people)
  return false if people.empty?
  people.map do |person|
    _contains_any_of?(person.names)
  end.all?
end
by_any?(devs) click to toggle source
# File lib/pair_see/log_line.rb, line 47
def by_any?(devs)
  return false if devs.empty?
  devs.any? { |dev| authored_by?(dev) }
end
card_name(card_prefixes) click to toggle source
# File lib/pair_see/log_line.rb, line 38
def card_name(card_prefixes)
  card_prefixes.each do |cp|
    regex = /(#{cp}\d+)/
    matcher = line.match(regex)
    return (line.match regex)[1] unless matcher.nil?
  end
  nil
end
contains_card?(card_prefix) click to toggle source
# File lib/pair_see/log_line.rb, line 52
def contains_card?(card_prefix)
  line.match(card_prefix)
end
contains_card_name?(card_name) click to toggle source
# File lib/pair_see/log_line.rb, line 32
def contains_card_name?(card_name)
  git_regex = /#{card_name}[\]\s\[,:]/
  git_matcher = line.match(git_regex)
  !git_matcher.nil?
end
to_s() click to toggle source
# File lib/pair_see/log_line.rb, line 56
def to_s
  line
end

Private Instance Methods

_contains_any_of?(names) click to toggle source
# File lib/pair_see/log_line.rb, line 68
def _contains_any_of?(names)
  names.any? { |name| _line_contains_name(name) }
end
_get_date(line) click to toggle source
# File lib/pair_see/log_line.rb, line 62
def _get_date(line)
  regex = /(\d{4}-\d{2}-\d{2})/
  matcher = line.match(regex)
  Date.parse((line.match regex)[1]) unless matcher.nil?
end
_line_contains_name(name) click to toggle source
# File lib/pair_see/log_line.rb, line 72
def _line_contains_name(name)
  /(^|\s+|\W)#{name}(\s+|$|\W)/i =~ line
end