module Delayer::Deferred::Deferredable::Trigger

Promiseなど、親を持たず、自身がWorkerを作成できるもの。

Public Instance Methods

call(value = nil) click to toggle source

Deferredを直ちに実行する。 このメソッドはスレッドセーフです。

# File lib/delayer/deferred/deferredable/trigger.rb, line 15
def call(value = nil)
  execute(Delayer::Deferred::Response::Ok.new(value))
end
fail(exception = nil) click to toggle source

Deferredを直ちに失敗させる。 このメソッドはスレッドセーフです。

# File lib/delayer/deferred/deferredable/trigger.rb, line 21
def fail(exception = nil)
  execute(Delayer::Deferred::Response::Ng.new(exception))
end

Private Instance Methods

execute(value) click to toggle source
# File lib/delayer/deferred/deferredable/trigger.rb, line 27
def execute(value)
  worker = Delayer::Deferred::Worker.new(delayer: self.class.delayer,
                                         initial: value)
  worker.push(self)
end