Class: Whenner::Promise

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/whenner/promise.rb

Overview

A promise represents the public face of a Deferred object. You can use it to add more callbacks to the deferred or inspect its state -- but you cannot resolve it.

The methods and attributes of the promise are basically forwarded to the deferred.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(deferred) ⇒ Promise

Returns a new instance of Promise.



36
37
38
# File 'lib/whenner/promise.rb', line 36

def initialize(deferred)
  @deferred = deferred
end

Instance Attribute Details

#fulfilled?Boolean (readonly)

Returns whether the deferred was successfully resolved.

Returns:

  • (Boolean)

    whether the deferred was successfully resolved.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#pending?Boolean (readonly)

Returns whether the deferred has not been resolved yet.

Returns:

  • (Boolean)

    whether the deferred has not been resolved yet.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#reasonObject (readonly)

Returns the reason for the deferred to be rejected.

Returns:

  • (Object)

    the reason for the deferred to be rejected.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#rejected?Boolean (readonly)

Returns whether the deferred was rejected.

Returns:

  • (Boolean)

    whether the deferred was rejected.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#resolved?Boolean (readonly)

Returns whether the deferred was either fulfilled or rejected.

Returns:

  • (Boolean)

    whether the deferred was either fulfilled or rejected.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#valueObject (readonly)

Returns the value that the deferred was fulfilled with.

Returns:

  • (Object)

    the value that the deferred was fulfilled with.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

Instance Method Details

#always(&block) ⇒ Promise

Register a callback to fire when the deferred is resolved.

Returns:

  • (Promise)

    a new promise for the return value of the block.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#done(&block) ⇒ Promise

Register a callback to fire when the deferred is fulfilled.

Returns:

  • (Promise)

    a new promise for the return value of the block.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#fail(&block) ⇒ Promise

Register a callback to fire when the deferred is rejected.

Returns:

  • (Promise)

    a new promise for the return value of the block.



32
33
34
# File 'lib/whenner/promise.rb', line 32

def_delegators :@deferred, *i[
  reason value pending? fulfilled? resolved? rejected? fail done always
]

#to_promiseObject



40
41
42
# File 'lib/whenner/promise.rb', line 40

def to_promise
  self
end