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