Module: MrDarcy

Defined in:
lib/mr_darcy/promise/synchronous.rb,
lib/mr_darcy.rb,
lib/mr_darcy/role.rb,
lib/mr_darcy/context.rb,
lib/mr_darcy/drivers.rb,
lib/mr_darcy/promise.rb,
lib/mr_darcy/version.rb,
lib/mr_darcy/deferred.rb,
lib/mr_darcy/promise/em.rb,
lib/mr_darcy/promise/dsl.rb,
lib/mr_darcy/promise/base.rb,
lib/mr_darcy/promise/state.rb,
lib/mr_darcy/drivers/thread.rb,
lib/mr_darcy/promise/thread.rb,
lib/mr_darcy/drivers/celluloid.rb,
lib/mr_darcy/promise/celluloid.rb,
lib/mr_darcy/promise/collection.rb,
lib/mr_darcy/promise/state/base.rb,
lib/mr_darcy/drivers/synchronous.rb,
lib/mr_darcy/promise/child_promise.rb,
lib/mr_darcy/promise/state/rejected.rb,
lib/mr_darcy/promise/state/resolved.rb,
lib/mr_darcy/promise/state/unresolved.rb

Overview

This class implements a synchronous interface to promise execution. It’s not much use, except for unit testing.

Defined Under Namespace

Modules: Drivers, Promise Classes: Context, Deferred, Role

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.all_driversObject



19
20
21
22
23
24
# File 'lib/mr_darcy.rb', line 19

def all_drivers
  return @drivers if @drivers && !@drivers.empty?
  drivers ||= %w| synchronous thread celluloid em |.map(&:to_sym)
  drivers.delete :em if RUBY_ENGINE=='jruby'
  @drivers = drivers
end

.all_promises(opts = {}) ⇒ Object



31
32
33
# File 'lib/mr_darcy.rb', line 31

def all_promises opts={}
  MrDarcy::Promise::Collection.new yield, opts
end

.driverObject



15
16
17
# File 'lib/mr_darcy.rb', line 15

def driver
  @driver ||= :Thread
end

.driver=(driver) ⇒ Object



11
12
13
# File 'lib/mr_darcy.rb', line 11

def driver=(driver)
  @driver=driver
end

.promise(opts = {}, &block) ⇒ Object



26
27
28
29
# File 'lib/mr_darcy.rb', line 26

def promise opts={}, &block
  driver = opts[:driver] || self.driver
  MrDarcy::Promise.new driver: driver, &block
end