class ReleasesDocument < Document
- Inherits from
Document: #root, #title, #first_child, #replace_section, #to_markdown, #to_html, #paragraph_node, #html_node, #inline_html_node, #text_node, #link_node, #code_node
Represents project release notes organized by release headings.
Nested Classes and Modules
class SummaryRepresents a section within a release.
class ReleaseRepresents a single release and its notes.
Definitions
def release_names
Enumerate release names in document order.
Signature
-
yields
{|name| ...} If a block is given.
-
parameter
nameString A release name.
-
parameter
-
returns
Enumerator(String) If no block is given.
Implementation
def release_names
return to_enum(:release_names) unless block_given?
self.root.each do |node|
if node.type == :header and node.header_level == 2
yield node.to_plaintext.chomp
end
end
end
def release(name)
Find a release by name.
Signature
-
parameter
nameString The release name.
-
returns
Release | Nil The matching release.
Implementation
def release(name)
self.root.each do |node|
if node.type == :header and node.header_level == 2 and node.to_plaintext.chomp == name
return Release.new(node)
end
end
end
def latest_release
Get the first release in the document.
Signature
-
returns
Release | Nil The latest release.
Implementation
def latest_release
if name = release_names.first
release(name)
end
end
def releases
Enumerate releases in document order.
Signature
-
yields
{|release| ...} If a block is given.
-
parameter
releaseRelease A release.
-
parameter
-
returns
Enumerator(Release) If no block is given.
Implementation
def releases
return to_enum(:releases) unless block_given?
release_names.each do |name|
yield release(name)
end
end