class FastestServer::Worker

Constants

FIX_WHITESPACE
MAX_WIDTH

Attributes

name[R]

Public Class Methods

new(name, queue, checkbook) click to toggle source
# File lib/fastest_server/worker.rb, line 6
def initialize(name, queue, checkbook)
  @done = false
  @name = "Worker %02d" % name
  @queue = queue
  @checkbook = checkbook
  @pid = Thread.new { perform }
end

Public Instance Methods

current_status!() click to toggle source
# File lib/fastest_server/worker.rb, line 14
def current_status!
  return @target if @target == "Done"
  ret = @target_string[0..MAX_WIDTH]
  @target_string = "#{@target_string[1..-1]}#{@target_string[0]}"
  return ret
end
done?() click to toggle source
# File lib/fastest_server/worker.rb, line 25
def done?
  @done
end
join() click to toggle source
# File lib/fastest_server/worker.rb, line 21
def join
  @pid.join
end

Private Instance Methods

perform() click to toggle source
# File lib/fastest_server/worker.rb, line 31
def perform
  while target = @queue.shift
    @done = false
    set_status(target)
    @checkbook[target] = Ping.perform(target)
    set_status("Done")
    @done = true
    sleep(1)
  end
end
set_status(target) click to toggle source
# File lib/fastest_server/worker.rb, line 45
def set_status(target)
  @target = target
  if target.length > (MAX_WIDTH - FIX_WHITESPACE)
    @target_string = target + " " * FIX_WHITESPACE
  else
    @target_string = target.ljust(MAX_WIDTH)
  end
end