Class: ExecutionDeadline::Deadline

Inherits:
Object
  • Object
show all
Defined in:
lib/execution_deadline/deadline.rb

Instance Method Summary collapse

Constructor Details

#initialize(expires_at:, raises: nil) ⇒ Deadline

Returns a new instance of Deadline.



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

def initialize(expires_at:, raises: nil)
  @expires_at = expires_at
  @raises = raises
end

Instance Method Details

#check_deadline_expiration!Object



21
22
23
# File 'lib/execution_deadline/deadline.rb', line 21

def check_deadline_expiration!
  expired? && raise(@raises || DeadlineExceeded)
end

#expired?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/execution_deadline/deadline.rb', line 29

def expired?
  @expires_at <= Time.now
end

#require_seconds_left!(seconds_left) ⇒ Object



12
13
14
15
16
17
18
19
# 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_leftObject



25
26
27
# File 'lib/execution_deadline/deadline.rb', line 25

def time_left
  @expires_at - Time.now
end