Sha256: 9c49bc9c446b8f3e34674cf659c0e2c093c120e5c3a1351637a7e281186697d0

Contents?: true

Size: 466 Bytes

Versions: 2

Compression:

Stored size: 466 Bytes

Contents

module DepthFirst
  # Base parallel organizer class
  class ParallelOrganizer < Task
    TASKS = [].freeze

    def perform
      self.class::TASKS
        .map { |task| execute_promise(task) }
        .reduce(options) { |a, e| resolve_promise(a, e) }
    end

    private

    def execute_promise(task)
      Concurrent::Promise.new { task.new(options).perform }.execute
    end

    def resolve_promise(hsh, result)
      hsh.merge(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_organizer.rb
depth_first-0.0.4 lib/depth_first/parallel_organizer.rb