lib/milestoner/builders/feed.rb
# frozen_string_literal: true require "refinements/pathname" module Milestoner module Builders # Builds syndicated feed output. class Feed include Milestoner::Dependencies[:logger] using Refinements::Pathname def initialize(tagger: Tags::Enricher.new, indexer: Syndication::Indexer.new, **) super(**) @tagger = tagger @indexer = indexer end def call tagger.call .bind { |tags| indexer.call tags } .alt_map { |message| failure message } end private attr_reader :tagger, :indexer def failure message logger.error { message } message end end end end