Class: Q::Defer

Inherits:
Object
  • Object
show all
Defined in:
lib/q/defer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDefer

Returns a new instance of Defer.



4
5
6
7
# File 'lib/q/defer.rb', line 4

def initialize
  @promise = Q::Promise.new(self)
  @state = :active
end

Instance Attribute Details

#promiseObject (readonly)

Returns the value of attribute promise.



2
3
4
# File 'lib/q/defer.rb', line 2

def promise
  @promise
end

#stateObject (readonly)

Returns the value of attribute state.



2
3
4
# File 'lib/q/defer.rb', line 2

def state
  @state
end

Instance Method Details

#finished?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/q/defer.rb', line 35

def finished?
  @state == :resolved || @state == :rejected
end

#reject(result = nil) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/q/defer.rb', line 18

def reject(result = nil)
  unless finished?
    @state = :rejected
    @promise.fulfill(@state, result)
  end

  @promise
end

#rejected?Boolean

Returns:

  • (Boolean)


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

def rejected?
  @state == :rejected
end

#resolve(result = nil) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/q/defer.rb', line 9

def resolve(result = nil)
  unless finished?
    @state = :resolved
    @promise.fulfill(@state, result)
  end

  @promise
end

#resolved?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/q/defer.rb', line 27

def resolved?
  @state == :resolved
end