Module: Coolio::SyncDefer
- Defined in:
- lib/cool.io/sync-defer.rb
Defined Under Namespace
Classes: Defer, DeferMulti, DeferOne
Class Method Summary collapse
Class Method Details
.defer(*args, &block) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cool.io/sync-defer.rb', line 7 def defer *args, &block loop = args.find { |a| a.kind_of?(Coolio::Loop) }||Coolio::Loop.default funcs = args.reject{ |a| a.kind_of?(Coolio::Loop) } funcs << block if block_given? if funcs.empty? return elsif funcs.size == 1 DeferOne.new(funcs.first, loop).result else DeferMulti.new(funcs, loop).result end end |