Class: PairSee::LogLine

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(line) ⇒ LogLine

Returns a new instance of LogLine.



6
7
8
9
# File 'lib/pair_see/log_line.rb', line 6

def initialize(line)
  @line = line
  @date = _get_date(line)
end

Instance Attribute Details

#card_number(card_prefixes) ⇒ Object (readonly)

Returns the value of attribute card_number.



4
5
6
# File 'lib/pair_see/log_line.rb', line 4

def card_number
  @card_number
end

#dateObject (readonly)

Returns the value of attribute date.



4
5
6
# File 'lib/pair_see/log_line.rb', line 4

def date
  @date
end

#lineObject (readonly)

Returns the value of attribute line.



4
5
6
# File 'lib/pair_see/log_line.rb', line 4

def line
  @line
end

Instance Method Details

#all_authors(people) ⇒ Object



11
12
13
14
15
# 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) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
# 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) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
# 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) ⇒ Object



38
39
40
41
42
43
44
45
# 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) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/pair_see/log_line.rb', line 52

def contains_card?(card_prefix)
  line.match(card_prefix)
end

#contains_card_name?(card_name) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
# 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_sObject



56
57
58
# File 'lib/pair_see/log_line.rb', line 56

def to_s
  line
end