lib/wayfarer/middleware/normalize.rb in wayfarer-0.4.6 vs lib/wayfarer/middleware/normalize.rb in wayfarer-0.4.7

- old
+ new

@@ -2,26 +2,27 @@ module Wayfarer module Middleware class Normalize extend Base + include Wayfarer::Logging.emit( + invalid: [:info, "Failed to normalize HTTP(S) URL"] + ) - def call(task) - yield if block_given? + def self.normalize(uri) + return uri.to_s unless %w[http https].include?(uri.scheme) - task.metadata.staged_urls = SortedSet.new(normalized_urls(task).compact) + NormalizeUrl.process(uri) + rescue NormalizeUrl::InvalidURIError + nil end - private + def call(task) + return (yield if block_given?) if task[:normalized_url] - def normalized_urls(task) - task.metadata.staged_urls.map(&method(:normalize)) - end + return log(:invalid, task) unless (task[:normalized_url] = self.class.normalize(task[:uri])) - def normalize(url) - NormalizeUrl.process(url) - rescue NormalizeUrl::InvalidURIError - nil + yield if block_given? end end end end