class MrDarcy::Promise::Celluloid::Actor

Each promise gets it’s own actor thread.

Public Class Methods

new() click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 16
def initialize
  @complete = false
end

Public Instance Methods

await_completion() click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 43
def await_completion
  return if @complete
  wait :complete
end
on_failure(block) click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 39
def on_failure block
  @failure = block
end
on_success(block) click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 35
def on_success block
  @success = block
end
schedule(block) click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 20
def schedule block
  ::Celluloid::Future.new &block
end
set_status(status, value) click to toggle source
# File lib/mr_darcy/promise/celluloid.rb, line 24
def set_status status, value
  case status
  when :success
    @success.call value
  when :failure
    @failure.call value
  end
  signal :complete
  @complete = true
end