Class: Explorer::ProcessManager

Inherits:
Object
  • Object
show all
Defined in:
lib/explorer/process_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(log_watcher = nil) ⇒ ProcessManager

Returns a new instance of ProcessManager.



5
6
7
8
# File 'lib/explorer/process_manager.rb', line 5

def initialize log_watcher = nil
  @log_watcher = log_watcher
  @processes = {}
end

Instance Method Details

#add(label, command, working_dir: ENV['PWD']) ⇒ Object



16
17
18
19
# File 'lib/explorer/process_manager.rb', line 16

def add(label, command, working_dir: ENV['PWD'])
  env = load_env(working_dir)
  @processes[label] = Process.new(label, command, working_dir: working_dir, log_watcher: @log_watcher, env: env)
end

#exists?(label) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/explorer/process_manager.rb', line 42

def exists?(label)
  !!@processes[label]
end

#labelsObject



55
56
57
# File 'lib/explorer/process_manager.rb', line 55

def labels
  @processes.keys
end

#processesObject



51
52
53
# File 'lib/explorer/process_manager.rb', line 51

def processes
  @processes.values
end

#remove(label) ⇒ Object



21
22
23
24
25
# File 'lib/explorer/process_manager.rb', line 21

def remove(label)
  fail "Label is unknown" unless @processes[label]
  @processes[label].terminate
  @processes.delete label
end

#restart(label) ⇒ Object



37
38
39
40
# File 'lib/explorer/process_manager.rb', line 37

def restart(label)
  stop(label)
  start(label)
end

#running?(label) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
49
# File 'lib/explorer/process_manager.rb', line 46

def running?(label)
  fail "Label is unknown" unless @processes[label]
  @processes[label].started?
end

#start(label) ⇒ Object



27
28
29
30
# File 'lib/explorer/process_manager.rb', line 27

def start(label)
  fail "Label is unknown" unless @processes[label]
  @processes[label].start
end

#stop(label) ⇒ Object



32
33
34
35
# File 'lib/explorer/process_manager.rb', line 32

def stop(label)
  fail "Label is unknown" unless @processes[label]
  @processes[label].stop
end

#terminateObject



10
11
12
13
14
# File 'lib/explorer/process_manager.rb', line 10

def terminate
  labels.each do |label|
    remove(label)
  end
end