Sha256: ea5bc25ce0a58cf5109da8e664b572b369f400b334ac9c29cfaafc2a2807a454
Contents?: true
Size: 737 Bytes
Versions: 3
Compression:
Stored size: 737 Bytes
Contents
# frozen_string_literal: true module Wayfarer module Middleware class Dedup extend Base def call(task) # Was task routed by a previous controller already? return yield if task.metadata.action return if task.barrier.seen?(task.url) begin yield if block_given? rescue StandardError => e task.barrier.unsee(task.url) raise e end staged_urls = task.metadata.staged_urls return if staged_urls.none? inclusion = task.barrier.peek(staged_urls.to_a) unseen = staged_urls.zip(inclusion).reject { |_, seen| seen }.map(&:first) task.metadata.staged_urls = SortedSet.new(unseen) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wayfarer-0.4.6 | lib/wayfarer/middleware/dedup.rb |
wayfarer-0.4.5 | lib/wayfarer/middleware/dedup.rb |
wayfarer-0.4.4 | lib/wayfarer/middleware/dedup.rb |