Class: Processes::Snapshot

Inherits:
Object
  • Object
show all
Defined in:
lib/w-stdlib/processes.rb

Instance Method Summary collapse

Constructor Details

#initialize(procs) ⇒ Snapshot

Returns a new instance of Snapshot.



13
14
15
16
# File 'lib/w-stdlib/processes.rb', line 13

def initialize(procs)
  @procs = procs
  @pid_to_proc = @procs.map { [_1.pid, _1] }.to_h
end

Instance Method Details

#allObject



18
19
20
# File 'lib/w-stdlib/processes.rb', line 18

def all
  @procs.map { Processes::Process.new self, _1 }
end

#for_pid(pid) ⇒ Object



22
23
24
25
26
# File 'lib/w-stdlib/processes.rb', line 22

def for_pid(pid)
  proc = @pid_to_proc[pid]
  return nil unless proc
  Processes::Process.new self, proc
end

#search_cmdline(name) ⇒ Object



28
29
30
31
32
33
# File 'lib/w-stdlib/processes.rb', line 28

def search_cmdline(name)
  @procs
    .select { _1.cmdline.downcase.include? name.downcase }
    .reject { _1.pid == ::Process.pid }
    .map { Processes::Process.new self, _1 }
end