Class: Kuby::CLIBase

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/kuby/cli_base.rb

Direct Known Subclasses

Docker::CLI

Instance Method Summary collapse

Instance Method Details

#after_execute(&block) ⇒ Object



23
24
25
26
27
# File 'lib/kuby/cli_base.rb', line 23

def after_execute(&block)
  @after_execute = T.let(@after_execute, T.nilable(T::Array[T.proc.params(cmd: String).void]))
  @after_execute ||= []
  @after_execute << block
end

#before_execute(&block) ⇒ Object



16
17
18
19
20
# File 'lib/kuby/cli_base.rb', line 16

def before_execute(&block)
  @before_execute = T.let(@before_execute, T.nilable(T::Array[T.proc.params(cmd: String).void]))
  @before_execute ||= []
  @before_execute << block
end

#last_statusObject



11
12
13
# File 'lib/kuby/cli_base.rb', line 11

def last_status
  Thread.current[status_key]
end

#stderrObject



58
59
60
# File 'lib/kuby/cli_base.rb', line 58

def stderr
  Thread.current[stderr_key] || STDERR
end

#stderr=(new_stderr) ⇒ Object



63
64
65
# File 'lib/kuby/cli_base.rb', line 63

def stderr=(new_stderr)
  Thread.current[stderr_key] = new_stderr
end

#stdoutObject



48
49
50
# File 'lib/kuby/cli_base.rb', line 48

def stdout
  Thread.current[stdout_key] || STDOUT
end

#stdout=(new_stdout) ⇒ Object



53
54
55
# File 'lib/kuby/cli_base.rb', line 53

def stdout=(new_stdout)
  Thread.current[stdout_key] = new_stdout
end

#with_pipes(out = STDOUT, err = STDERR, &block) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/kuby/cli_base.rb', line 36

def with_pipes(out = STDOUT, err = STDERR, &block)
  previous_stdout = self.stdout
  previous_stderr = self.stderr
  self.stdout = out
  self.stderr = err
  yield
ensure
  self.stdout = previous_stdout
  self.stderr = previous_stderr
end