class InOurTime::Tic

Public Class Methods

new() click to toggle source
# File lib/iot/iot.rb, line 28
def initialize
  Thread.abort_on_exception = true
  @flag = false
  init_processes
  run
end

Public Instance Methods

ended() click to toggle source
# File lib/iot/iot.rb, line 72
def ended
  timeout? :ended
end
inc_processes() click to toggle source
# File lib/iot/iot.rb, line 49
def inc_processes
  @processes.each { |process| process[:value] += 1 }
end
init_processes() click to toggle source
# File lib/iot/iot.rb, line 35
def init_processes
  @processes =
    { process: {
        timeout: 5,
        value:   0 },
      playing_time: {
        timeout: 1,
        value:   0 },
      ended: {
        timeout: 1,
        value:   0 }
    }
end
kill() click to toggle source
# File lib/iot/iot.rb, line 53
def kill
  Thread.kill(@th_tic) if @th_tic
end
playing_time() click to toggle source
# File lib/iot/iot.rb, line 68
def playing_time
  timeout? :playing_time
end
process() click to toggle source
# File lib/iot/iot.rb, line 64
def process
  timeout? :process
end
run() click to toggle source
# File lib/iot/iot.rb, line 76
def run
  Thread.abort_on_exception = true
  @th_tic = Thread.new do
    loop do
      sleep 0.2
      @processes[:process][:value] += 1
      @processes[:playing_time][:value] += 1
      @processes[:ended][:value] += 1
      @flag = true
    end
  end
end
timeout?(type) click to toggle source
# File lib/iot/iot.rb, line 57
def timeout? type
  @processes[type]
  return unless @processes[type][:value] > @processes[type][:timeout]
  @processes[type][:value] = 0
  true
end
toc() click to toggle source
# File lib/iot/iot.rb, line 89
def toc
  ret_val = @flag
  @flag = false
  ret_val
end