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