class Assistor::AssistantGroup
Attributes
size[R]
Public Class Methods
new(size)
click to toggle source
# File lib/assistor/assistant_group.rb, line 5 def initialize(size) @size = size @assistants = [] end
Public Instance Methods
add(assistant)
click to toggle source
# File lib/assistor/assistant_group.rb, line 10 def add(assistant) @assistants << assistant end
decrease()
click to toggle source
# File lib/assistor/assistant_group.rb, line 46 def decrease @size -= 1 if @size > 0 end
filled?()
click to toggle source
# File lib/assistor/assistant_group.rb, line 18 def filled? @assistants.size >= size end
flush()
click to toggle source
# File lib/assistor/assistant_group.rb, line 14 def flush @assistants.delete_if { |assistant| !assistant.assists? } end
increase()
click to toggle source
# File lib/assistor/assistant_group.rb, line 42 def increase @size += 1 end
stop()
click to toggle source
# File lib/assistor/assistant_group.rb, line 32 def stop @assistants.each do |assistant| begin Process.kill(:INT, assistant.pid) rescue Errno::ESRCH next end end end
wait()
click to toggle source
# File lib/assistor/assistant_group.rb, line 22 def wait @assistants.each do |assistant| begin Process.wait(assistant.pid) rescue Errno::ECHILD next end end end