class Sponges::Store

Attributes

name[R]
pids[R]
supervisor_pid[W]

Public Class Methods

new(name) click to toggle source
# File lib/sponges/store.rb, line 9
def initialize(name)
  @pids, @name = [], name
end

Public Instance Methods

children_pids() click to toggle source
# File lib/sponges/store.rb, line 22
def children_pids
  @pids.any? ? @pids : find_childs.map(&:pid)
end
clear(name) click to toggle source
# File lib/sponges/store.rb, line 34
def clear(name)
  pids.clear
end
register(supervisor_pid) click to toggle source
# File lib/sponges/store.rb, line 30
def register(supervisor_pid)
  @supervisor_pid = supervisor_pid
end
running?() click to toggle source
# File lib/sponges/store.rb, line 26
def running?
  !!find_supervisor
end
supervisor_pid() click to toggle source
# File lib/sponges/store.rb, line 16
def supervisor_pid
  return @supervisor_pid if @supervisor_pid
  s = find_supervisor
  @supervisor_pid = s.pid if s
end

Private Instance Methods

childs_name() click to toggle source
# File lib/sponges/store.rb, line 44
def childs_name
  [name, Sponges.env, "child"].compact.join("_")
end
find_childs() click to toggle source
# File lib/sponges/store.rb, line 52
def find_childs
  Sys::ProcTable.ps.select {|f| f.cmdline =~ /^#{childs_name}/ }
end
find_supervisor() click to toggle source
# File lib/sponges/store.rb, line 48
def find_supervisor
  Sys::ProcTable.ps.select {|f| f.cmdline == supervisor_name }.first
end
supervisor_name() click to toggle source
# File lib/sponges/store.rb, line 40
def supervisor_name
  [name, Sponges.env, "supervisor"].compact.join("_")
end