class ProgressMonitor::Display

Attributes

task[RW]

Public Class Methods

new(task) click to toggle source
# File lib/progress_monitor/display.rb, line 13
def initialize(task)
  @task = task
  @queue = Queue.new
end

Public Instance Methods

display() click to toggle source
# File lib/progress_monitor/display.rb, line 18
def display
  @current_task = task

  @renderer = Renderer.new(task)
  @renderer.refresh

  task.add_observer TaskObserver.new(queue)

  @main_thread = Thread.current
  Thread.new { InputLoop.new(queue).perform }
  Thread.new { TimerLoop.new(queue).perform }
  Thread.new { MessageLoop.new(queue, @main_thread, @renderer).perform }
end