diff --git a/em_promise.rb b/em_promise.rb index 9968885523a65ec36804516030ed4d102c9e5ddb..853594b1e349efc43009fa76b4825ed6bec0fa53 100644 --- a/em_promise.rb +++ b/em_promise.rb @@ -50,6 +50,16 @@ class EMPromise < Promise def self.reject(e) new.tap { |promise| promise.reject(e) } end + + def self.all(enumerable) + super(enumerable.map { |input| + if input.respond_to?(:promise) + input.promise + else + input + end + }) + end end module EventMachine