class Milestoner::Builders::Feed
Builds syndicated feed output.
Attributes
syndicator[R]
tagger[R]
Public Class Methods
new(tagger: Commits::Tagger.new, syndicator: Syndication::Builder.new, **)
click to toggle source
Calls superclass method
# File lib/milestoner/builders/feed.rb, line 13 def initialize(tagger: Commits::Tagger.new, syndicator: Syndication::Builder.new, **) @tagger = tagger @syndicator = syndicator super(**) end
Public Instance Methods
call()
click to toggle source
# File lib/milestoner/builders/feed.rb, line 19 def call tagger.call .bind { |tags| syndicator.call tags } .fmap { |body| write body } .alt_map { |message| failure message } end
Private Instance Methods
failure(message)
click to toggle source
# File lib/milestoner/builders/feed.rb, line 38 def failure message logger.error { message } message end
write(body)
click to toggle source
# File lib/milestoner/builders/feed.rb, line 30 def write body root = settings.build_root path = root.join(settings.build_basename).make_ancestors.sub_ext(".xml").write body logger.info { "Built: #{path}." } root end