Class: TagChangelog::MessageList

Inherits:
Object
  • Object
show all
Defined in:
lib/tag_changelog/message_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(messages = [], grouped = true) ⇒ MessageList

Returns a new instance of MessageList.



5
6
7
8
# File 'lib/tag_changelog/message_list.rb', line 5

def initialize(messages = [], grouped = true)
  @messages = messages
  @grouped = grouped
end

Instance Attribute Details

#groupedObject (readonly)

Returns the value of attribute grouped.



3
4
5
# File 'lib/tag_changelog/message_list.rb', line 3

def grouped
  @grouped
end

#messagesObject (readonly)

Returns the value of attribute messages.



3
4
5
# File 'lib/tag_changelog/message_list.rb', line 3

def messages
  @messages
end

Instance Method Details



20
21
22
23
24
25
# File 'lib/tag_changelog/message_list.rb', line 20

def print_category(category)
  [
    "#### #{category['header']}",
    print_lines(category["messages"]).join(""),
  ].join("\n")
end


27
28
29
# File 'lib/tag_changelog/message_list.rb', line 27

def print_lines(lines)
  lines.map { |line| "* #{line}\n" }
end

#to_textObject



10
11
12
13
14
15
16
17
18
# File 'lib/tag_changelog/message_list.rb', line 10

def to_text
  if grouped
    messages.map do |category|
      category["messages"].any? ? print_category(category) : nil
    end.reject(&:nil?).join("")
  else
    print_lines(messages).reject(&:nil?).join("")
  end
end