Sha256: dbeb813c83700750d365c6e93d2084195defe21f7587b048f1e7e2d7076b0cfb
Contents?: true
Size: 553 Bytes
Versions: 2
Compression:
Stored size: 553 Bytes
Contents
module DepthFirst # Base parallel aggregator class class ParallelAggregator < Task TASKS = [].freeze KEY = nil def perform key = self.class::KEY value = self.class::TASKS.map { |task| execute_promise(task) } .reduce([]) { |a, e| resolve_promise(a, e) } { key => value } end private def execute_promise(task) Concurrent::Promise.new { task.new(options).perform }.execute end def resolve_promise(arr, result) arr.push(result.value) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
depth_first-0.0.5 | lib/depth_first/parallel_aggregator.rb |
depth_first-0.0.4 | lib/depth_first/parallel_aggregator.rb |