module PS

Public Instance Methods

VERSION() click to toggle source
# File lib/ps-ruby/version.rb, line 4
def VERSION
  "0.0.4"
end
attrs() click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 70
def attrs
  # ["USER", "PID", "%CPU", "%MEM", "VSZ", "RSS", "TT", "STAT", "STARTED", "TIME", "COMMAND"]
  return @ps_attrs if @ps_attrs
  @ps_attrs = raw_aux.split("\n").map{|x| x.split(/\s+/) }.shift
end
find_processes(name) click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 62
def find_processes(name)
  find_processes_by("COMMAND", name)
end
find_processes_by(attr_name, value) click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 66
def find_processes_by(attr_name, value)
  get_all_processes.find_processes_by(attr_name, value)
end
get_all_processes() click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 76
def get_all_processes
  table = raw_aux.split("\n").map{|x| x.split(/\s+/) }
  attrs =  table.shift
  is_percent = ["%CPU", "%MEM"].map{|x| attrs.index(x) }
  table = table.reduce(PsProcessList.new) {|s, x|
    if x.size > attrs.size
      x = x[0..(attrs.size-2)] + [x[(attrs.size-1)..-1].join(" ")]
    end
    is_percent.each{|k| x[k] = x[k].to_f }
    s << PsProcess[attrs.zip(x)]
  }
  table
end
raw_aux() click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 90
def raw_aux
  %x{ps aux}
end
simple_display(name = "", limit_process_name_len=30) click to toggle source
# File lib/ps-ruby/ps-ruby.rb, line 58
def simple_display(name = "", limit_process_name_len=30)
  find_processes(name).simple_display(limit_process_name_len)
end