Class: Philiprehberger::ChangelogParser::VersionEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/changelog_parser/version_entry.rb

Overview

Represents a single version entry in a changelog

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version:, date: nil, categories: {}) ⇒ VersionEntry

Returns a new instance of VersionEntry.

Parameters:

  • version (String)

    the version string

  • date (String, nil) (defaults to: nil)

    the release date

  • categories (Hash<String, Array<String>>) (defaults to: {})

    category to entries mapping



10
11
12
13
14
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 10

def initialize(version:, date: nil, categories: {})
  @version = version
  @date = date
  @categories = categories
end

Instance Attribute Details

#categoriesHash<String, Array<String>> (readonly)

Returns category to entries mapping.

Returns:

  • (Hash<String, Array<String>>)

    category to entries mapping



23
24
25
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 23

def categories
  @categories
end

#dateString? (readonly)

Returns the release date.

Returns:

  • (String, nil)

    the release date



20
21
22
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 20

def date
  @date
end

#versionString (readonly)

Returns the version string.

Returns:

  • (String)

    the version string



17
18
19
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 17

def version
  @version
end

Instance Method Details

#add_entry(category, entry) ⇒ void

This method returns an undefined value.

Add an entry under a category

Parameters:

  • category (String)

    the category name

  • entry (String)

    the entry text



37
38
39
40
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 37

def add_entry(category, entry)
  @categories[category] ||= []
  @categories[category] << entry
end

#empty?Boolean

Check if this version has no entries

Returns:

  • (Boolean)

    true if no entries exist in any category



28
29
30
# File 'lib/philiprehberger/changelog_parser/version_entry.rb', line 28

def empty?
  @categories.empty? || @categories.values.all?(&:empty?)
end