class Milestoner::Builders::ASCIIDoc

Builds ASCII Doc output.

Attributes

tagger[R]
view[R]

Public Class Methods

new(tagger: Commits::Tagger.new, view: Views::Milestones::Show.new, **) click to toggle source
Calls superclass method
# File lib/milestoner/builders/ascii_doc.rb, line 13
def initialize(tagger: Commits::Tagger.new, view: Views::Milestones::Show.new, **)
  @tagger = tagger
  @view = view
  super(**)
end

Public Instance Methods

call() click to toggle source
# File lib/milestoner/builders/ascii_doc.rb, line 19
def call
  tagger.call
        .fmap { |tags| build tags }
        .alt_map { |message| failure message }
end

Private Instance Methods

build(tags) click to toggle source
# File lib/milestoner/builders/ascii_doc.rb, line 29
def build tags
  tags.each { |tag| write tag }
  settings.build_root
end
failure(message) click to toggle source
# File lib/milestoner/builders/ascii_doc.rb, line 46
def failure message
  logger.error { message }
  message
end
make_path(tag) click to toggle source
# File lib/milestoner/builders/ascii_doc.rb, line 41
def make_path tag
  version = settings.build_max == 1 ? "" : tag.version
  settings.build_root.join(version, settings.build_basename).make_ancestors.sub_ext ".adoc"
end
write(tag) click to toggle source
# File lib/milestoner/builders/ascii_doc.rb, line 34
def write tag
  path = make_path tag

  path.write view.call(tag:, layout: settings.build_layout, format: :adoc)
  logger.info { "Built: #{path}." }
end