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.0"
Class Method Summary collapse
-
.all ⇒ Array<Process>
List of all active processes.
-
.running ⇒ Array<Process>
List of all running processes.
-
.this ⇒ Process
Requests info about current Ruby process.
-
.used_memory ⇒ Integer
Used memory in KB.
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
Requests info about current Ruby process.
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/process_observer/main.rb', line 37 def self.this pid = ::Process.pid 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 ⇒ Integer
Returns used memory in KB.
53 54 55 |
# File 'lib/process_observer/main.rb', line 53 def self.used_memory self.all.sum(0, &:memory) end |