Module: ProcessObserver
- Includes:
- Exceptions
- Defined in:
- lib/process_observer.rb,
lib/process_observer/os.rb,
lib/process_observer/log.rb,
lib/process_observer/main.rb,
lib/process_observer/linux.rb,
lib/process_observer/process.rb,
lib/process_observer/version.rb,
lib/process_observer/windows.rb,
lib/process_observer/exceptions.rb
Overview
Module containing everything.
Defined Under Namespace
Modules: Exceptions, Linux, Log, OS, Windows Classes: LinuxProcess, Process, WindowsProcess
Constant Summary collapse
- VERSION =
Module version.
"0.1.1"
Class Method Summary collapse
-
.all ⇒ Array<Process>
List of all active processes.
-
.running ⇒ Array<Process>
List of all running processes.
-
.this(process_list = nil) ⇒ Process?
Requests info about current Ruby process.
-
.used_memory(process_list = nil) ⇒ Integer
Get total used memory.
Class Method Details
.all ⇒ Array<Process>
List of all active processes.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/process_observer/main.rb', line 7 def self.all case when OS.windows? Windows.call when OS.linux? Linux.call else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end end |
.running ⇒ Array<Process>
List of all running processes.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/process_observer/main.rb', line 22 def self.running case when OS.windows? Windows.call(fi: "STATUS eq RUNNING") when OS.linux? Linux.call.select { |process| process.status.include?("R") } else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end end |
.this(process_list = nil) ⇒ Process?
Requests info about current Ruby process.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/process_observer/main.rb', line 40 def self.this(process_list = nil) pid = ::Process.pid if process_list return process_list.find { |process| process.pid == pid } end case when OS.windows? arr = Windows.call(fi: "PID eq #{pid}") when OS.linux? arr = Linux.call.select { |process| process.pid == pid } else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end raise MultipleProcessError, "Expected single process, got: #{arr.size}", caller if arr.size != 1 arr[0] end |
.used_memory(process_list = nil) ⇒ Integer
Get total used memory.
66 67 68 69 |
# File 'lib/process_observer/main.rb', line 66 def self.used_memory(process_list = nil) arr = process_list ? process_list : self.all arr.sum(0, &:memory) end |