lib/release_tools/release_managers/sync_result.rb (27 lines of code) (raw):
# frozen_string_literal: true
module ReleaseTools
module ReleaseManagers
class SyncResult
def initialize(clients)
@clients = clients
end
def success?
errors.empty?
end
def formatted_error_message
return "" if success?
lines = []
clients.each do |client|
next if client.sync_errors.empty?
lines << "--> Errors syncing to #{client.target}:"
lines += errors.map { |error| " #{error.message}" }
end
lines.join("\n")
end
private
attr_accessor :clients
def errors
@errors ||= clients.flat_map(&:sync_errors)
end
end
end
end