Class: ChatNotifier::FailureGroups

Inherits:
Object
  • Object
show all
Defined in:
lib/chat_notifier/failure_groups.rb

Overview

Groups test failures by file and packs them into reasonably sized batches suitable for posting as individual Slack thread replies.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(failures, group_size: 10, char_limit: 3000) ⇒ FailureGroups

Returns a new instance of FailureGroups.



7
8
9
10
11
# File 'lib/chat_notifier/failure_groups.rb', line 7

def initialize(failures, group_size: 10, char_limit: 3000)
  @failures = failures
  @group_size = group_size
  @char_limit = char_limit
end

Instance Attribute Details

#char_limitObject (readonly)

Returns the value of attribute char_limit.



13
14
15
# File 'lib/chat_notifier/failure_groups.rb', line 13

def char_limit
  @char_limit
end

#failuresObject (readonly)

Returns the value of attribute failures.



13
14
15
# File 'lib/chat_notifier/failure_groups.rb', line 13

def failures
  @failures
end

#group_sizeObject (readonly)

Returns the value of attribute group_size.



13
14
15
# File 'lib/chat_notifier/failure_groups.rb', line 13

def group_size
  @group_size
end

Instance Method Details

#reply_textsObject

One rendered string per thread reply: file blocks packed into batches bounded by group_size (file count) and char_limit (rendered length).



17
18
19
# File 'lib/chat_notifier/failure_groups.rb', line 17

def reply_texts
  batches.map { |blocks| blocks.join("\n") }
end