Class: Appear::Instance
- Inherits:
-
Service
- Object
- BaseService
- Service
- Appear::Instance
- Defined in:
- lib/appear/instance.rb
Overview
Instance is the main class in Appear. It constructs all the other services and co-ordinates the actual revealing process.
Instance Method Summary collapse
-
#call(pid) ⇒ Boolean
appear the given PID.
-
#initialize(config) ⇒ Instance
constructor
A new instance of Instance.
Methods inherited from BaseService
delegate, require_service, required_services
Constructor Details
#initialize(config) ⇒ Instance
Returns a new instance of Instance.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/appear/instance.rb', line 19 def initialize(config) @config = config # provide a reference to this revealer instance so that sub-revealers can # appear other process trees, if needed. Our Tmux revealer uses this # service to appear the tmux client. @all_services = { :revealer => self } # instantiate all our various services @all_services[:output] = Appear::Output.new(@config.log_file, @config.silent) @all_services[:runner] = Appear::Runner.new(@all_services) @all_services[:runner] = Appear::RunnerRecorder.new(@all_services) if @config.record_runs @all_services[:processes] = Appear::Processes.new(@all_services) @all_services[:lsof] = Appear::Lsof.new(@all_services) @all_services[:mac_os] = Appear::MacOs.new(@all_services) @all_services[:tmux] = Appear::Tmux.new(@all_services) @all_services[:terminals] = Appear::Terminals.new([ Appear::Terminal::Iterm2.new(@all_services), Appear::Terminal::TerminalApp.new(@all_services), ]) # make sure we can use our processes service, and log stuff. super(@all_services) end |
Instance Method Details
#call(pid) ⇒ Boolean
appear the given PID.
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/appear/instance.rb', line 48 def call(pid) tree = process_tree(pid) statuses = ::Appear::REVEALERS.map do |klass| revealer = klass.new(@all_services) revealer.call(tree) end statuses.any? { |status| !status.nil? } end |