Module: ExecutionDeadline

Defined in:
lib/execution_deadline.rb,
lib/execution_deadline/errors.rb,
lib/execution_deadline/helpers.rb,
lib/execution_deadline/version.rb,
lib/execution_deadline/deadline.rb

Defined Under Namespace

Modules: Helpers Classes: Deadline, DeadlineError, DeadlineExceeded, OutOfTime

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.clear_deadline!Object



11
12
13
# File 'lib/execution_deadline.rb', line 11

def self.clear_deadline!
  Thread.current[:deadline] = nil
end

.current_deadlineObject



7
8
9
# File 'lib/execution_deadline.rb', line 7

def self.current_deadline
  Thread.current[:deadline]
end

.set_deadline(expires_at:, raises: nil) ⇒ Boolean|Deadline

Returns false if a deadline is already set, and returns a deadline object if it was successfully set

Parameters:

  • expires_at (Time)

    The time at which to set the current deadline to expire

Returns:

  • (Boolean|Deadline)

    returns false if a deadline is already set, and returns a deadline object if it was successfully set



19
20
21
22
# File 'lib/execution_deadline.rb', line 19

def self.set_deadline(expires_at:, raises: nil)
  !current_deadline &&
    Thread.current[:deadline] = Deadline.new(expires_at: expires_at, raises: raises)
end