# frozen_string_literal: true module Wayfarer module Middleware class Normalize extend Base def call(task) yield if block_given? task.metadata.staged_urls = SortedSet.new(normalized_urls(task).compact) end private def normalized_urls(task) task.metadata.staged_urls.map(&method(:normalize)) end def normalize(url) NormalizeUrl.process(url) rescue NormalizeUrl::InvalidURIError nil end end end end