Module: PS

Defined in:
lib/ps-ruby/ps-ruby.rb,
lib/ps-ruby/version.rb

Class Method Summary collapse

Class Method Details

.attrsObject



70
71
72
73
74
# 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) ⇒ Object



62
63
64
# 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) ⇒ Object



66
67
68
# 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_processesObject



76
77
78
79
80
81
82
83
84
85
86
87
88
# 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_auxObject



90
91
92
# File 'lib/ps-ruby/ps-ruby.rb', line 90

def raw_aux
  %x{ps aux}
end

.simple_display(name = "", limit_process_name_len = 30) ⇒ Object



58
59
60
# 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

.VERSIONObject



4
5
6
# File 'lib/ps-ruby/version.rb', line 4

def VERSION
  "0.0.4"
end