class Delayer::DelayedProcedure
Attributes
delayer[R]
reserve_at[R]
state[R]
Public Class Methods
new(delayer, delay:, &proc)
click to toggle source
# File lib/delayer/delayed_procedure.rb, line 8 def initialize(delayer, delay:, &proc) @delayer = delayer @proc = proc case delay when Time @reserve_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + delay.to_f - Time.now.to_f else @reserve_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) + delay.to_f end @cancel = false @procedure = nil @delayer.class.reserve(self) end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/delayer/delayed_procedure.rb, line 29 def <=>(other) @reserve_at <=> other.reserve_at end
cancel()
click to toggle source
Cancel this job
Exception¶ ↑
Delayer::TooLate
-
if already called run()
Return¶ ↑
self
# File lib/delayer/delayed_procedure.rb, line 38 def cancel @procedure&.cancel @cancel = true self end
canceled?()
click to toggle source
register()
click to toggle source
# File lib/delayer/delayed_procedure.rb, line 22 def register if !canceled? @procedure = Procedure.new(@delayer, &@proc) end self end