class ExecutionDeadline::Deadline

Public Class Methods

new(expires_at:, raises: nil) click to toggle source
# File lib/execution_deadline/deadline.rb, line 7
def initialize(expires_at:, raises: nil)
  @expires_at = expires_at
  @raises = raises
end

Public Instance Methods

check_deadline_expiration!() click to toggle source
# File lib/execution_deadline/deadline.rb, line 21
def check_deadline_expiration!
  expired? && raise(@raises || DeadlineExceeded)
end
expired?() click to toggle source
# File lib/execution_deadline/deadline.rb, line 29
def expired?
  @expires_at <= Time.now
end
require_seconds_left!(seconds_left) click to toggle source
# File lib/execution_deadline/deadline.rb, line 12
def require_seconds_left!(seconds_left)
  time_left < seconds_left &&
    raise(
      @raises || OutOfTime,
      "Unable to run method expected run time #{seconds_left} " \
      "but only #{time_left}s left"
    )
end
time_left() click to toggle source
# File lib/execution_deadline/deadline.rb, line 25
def time_left
  @expires_at - Time.now
end