class DelayedResult
Public Class Methods
new(&resolver)
click to toggle source
# File lib/master_loader.rb, line 4 def initialize(&resolver) @resolver = resolver end
zip(*results, &block)
click to toggle source
# File lib/master_loader.rb, line 14 def self.zip(*results, &block) DelayedResult.new do results = results.map(&:value!) block.(*results) end end
Public Instance Methods
then(&block)
click to toggle source
# File lib/master_loader.rb, line 8 def then(&block) DelayedResult.new do block.(value!) end end
value()
click to toggle source
# File lib/master_loader.rb, line 31 def value value! end
value!()
click to toggle source
# File lib/master_loader.rb, line 21 def value! @value ||= @resolver.().yield_self do |val| if val&.is_a?(DelayedResult) val.value! else val end end end