Class: DuoRuby::Socket::TestPromise

Inherits:
Object
  • Object
show all
Defined in:
lib/duoruby/socket/test_promise.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTestPromise

Returns a new instance of TestPromise.



8
9
10
11
12
13
# File 'lib/duoruby/socket/test_promise.rb', line 8

def initialize
  @resolved = false
  @rejected = false
  @then_handlers = []
  @fail_handlers = []
end

Instance Attribute Details

#errorObject (readonly)

Returns the value of attribute error.



6
7
8
# File 'lib/duoruby/socket/test_promise.rb', line 6

def error
  @error
end

#valueObject (readonly)

Returns the value of attribute value.



6
7
8
# File 'lib/duoruby/socket/test_promise.rb', line 6

def value
  @value
end

Instance Method Details

#fail(&handler) ⇒ Object Also known as: rescue



34
35
36
37
# File 'lib/duoruby/socket/test_promise.rb', line 34

def fail(&handler)
  @rejected ? handler.call(error) : @fail_handlers << handler
  self
end

#reject(error = nil) ⇒ Object



22
23
24
25
26
27
# File 'lib/duoruby/socket/test_promise.rb', line 22

def reject(error = nil)
  @rejected = true
  @error = error
  @fail_handlers.each { |handler| handler.call(error) }
  self
end

#resolve(value = nil) ⇒ Object



15
16
17
18
19
20
# File 'lib/duoruby/socket/test_promise.rb', line 15

def resolve(value = nil)
  @resolved = true
  @value = value
  @then_handlers.each { |handler| handler.call(value) }
  self
end

#then(&handler) ⇒ Object



29
30
31
32
# File 'lib/duoruby/socket/test_promise.rb', line 29

def then(&handler)
  @resolved ? handler.call(value) : @then_handlers << handler
  self
end