class Dizby::TimedState

Public Class Methods

new(timeout) click to toggle source
# File lib/dizby/utility/timed_state.rb, line 9
def initialize(timeout)
  @timeout = timeout
  revive
end

Public Instance Methods

alive?() click to toggle source
# File lib/dizby/utility/timed_state.rb, line 23
def alive?
  @state != :dead
end
revive() click to toggle source
# File lib/dizby/utility/timed_state.rb, line 27
def revive
  @state = :active
  @time = 0
  @last_update = Time.now.utc
end
update() click to toggle source
# File lib/dizby/utility/timed_state.rb, line 14
def update
  previous = @last_update
  @last_update = Time.now.utc
  timediff = (@last_update - previous) * 1000

  @time += timediff
  progress if @time >= @timeout
end

Private Instance Methods

progress() click to toggle source
# File lib/dizby/utility/timed_state.rb, line 35
def progress
  @time = 0
  @state =
    case @state
    when :active
      :inactive
    when :inactive
      :dead
    end
end