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