class ThomasUtils::MultiFutureWrapper

Public Class Methods

new(futures, leader = nil, &callback) click to toggle source
# File lib/thomas_utils/multi_future_wrapper.rb, line 3
def initialize(futures, leader = nil, &callback)
  @futures = futures
  @leader = leader
  @callback = callback
end

Public Instance Methods

get() click to toggle source
# File lib/thomas_utils/multi_future_wrapper.rb, line 13
def get
  @futures.map(&:get).map(&@callback)
end
join() click to toggle source
# File lib/thomas_utils/multi_future_wrapper.rb, line 9
def join
  @futures.map(&:join)
end
on_failure(&block) click to toggle source
# File lib/thomas_utils/multi_future_wrapper.rb, line 17
def on_failure(&block)
  if @leader
    @leader.on_failure(&block)
  else
    @futures.each { |future| future.on_failure(&block) }
  end
end
on_success() { |call| ... } click to toggle source
# File lib/thomas_utils/multi_future_wrapper.rb, line 25
def on_success
  if @leader
    @leader.on_success { |result| yield @callback.call(result) }
  else
    @futures.each { |future| future.on_success { |result| yield @callback.call(result) } }
  end
end