Class: Cutlass::BashResult

Inherits:
Object
  • Object
show all
Defined in:
lib/cutlass/bash_result.rb

Overview

Value object containing the results of bash commands

result = BashResult.run(“echo ‘lol’) result.stdout # => ”lol“ result.status # => 0 result.success? # => true

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout:, stderr:, status:) ⇒ BashResult

Returns a new instance of BashResult.

Parameters:

  • stdout (String)
  • stderr (String)
  • status (Numeric)


28
29
30
31
32
# File 'lib/cutlass/bash_result.rb', line 28

def initialize(stdout:, stderr:, status:)
  @stdout = stdout
  @stderr = stderr
  @status = status.respond_to?(:exitstatus) ? status.exitstatus : status.to_i
end

Instance Attribute Details

#statusNumeric (readonly)

Returns:

  • (Numeric)


23
24
25
# File 'lib/cutlass/bash_result.rb', line 23

def status
  @status
end

#stderrString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/cutlass/bash_result.rb', line 20

def stderr
  @stderr
end

#stdoutString (readonly)

Returns:

  • (String)


17
18
19
# File 'lib/cutlass/bash_result.rb', line 17

def stdout
  @stdout
end

Class Method Details

.run(command) ⇒ Object



11
12
13
14
# File 'lib/cutlass/bash_result.rb', line 11

def self.run(command)
  stdout, stderr, status = Open3.capture3(command)
  BashResult.new(stdout: stdout, stderr: stderr, status: status)
end

Instance Method Details

#failed?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/cutlass/bash_result.rb', line 39

def failed?
  !success?
end

#include?(value) ⇒ Boolean

Testing helper methods

Returns:

  • (Boolean)


44
45
46
# File 'lib/cutlass/bash_result.rb', line 44

def include?(value)
  stdout.include?(value)
end

#match(value) ⇒ Object



52
53
54
# File 'lib/cutlass/bash_result.rb', line 52

def match(value)
  stdout.match(value)
end

#match?(value) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/cutlass/bash_result.rb', line 48

def match?(value)
  stdout.match?(value)
end

#success?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/cutlass/bash_result.rb', line 35

def success?
  @status == 0
end