class SleepRoom::Record::WriteStatus
Attributes
queue[RW]
Public Class Methods
new()
click to toggle source
# File lib/sleeproom/record/write_status.rb, line 8 def initialize @queue = Async::Queue.new end
Public Instance Methods
add(status)
click to toggle source
# File lib/sleeproom/record/write_status.rb, line 29 def add(status) Async do @queue.enqueue(status) end end
run()
click to toggle source
# File lib/sleeproom/record/write_status.rb, line 12 def run Async do while status = @queue.dequeue status[:update] = Time.now old_status = SleepRoom.load_config(:status) room = status[:room] if old_status.find { |h| h[:room] == room } new_status = old_status.delete_if { |h| h[:room] == room } new_status.push(status) else new_status = old_status.push(status) end SleepRoom.write_config_file(:status, new_status) end end end