Class: Rooibos::Message::System::Batch

Inherits:
Data
  • Object
show all
Includes:
Predicates
Defined in:
lib/rooibos/message/system/batch.rb

Overview

Response from a system command (batch mode).

Shell commands capture output and status. Without structured responses, handling success vs error requires manual parsing of arrays.

This response includes predicates for common checks and deconstructs for pattern matching. Include Predicates for safe predicate calls.

Use it to handle Command.system completions (batch mode).

Example

case msg
in { type: :system, envelope: :build, status: 0, stdout: }
  model.with(output: stdout)
in { type: :system, envelope: :build, status: }
  model.with(error: "Build failed with exit #{status}")
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Predicates

#==, #method_missing, #respond_to_missing?, #to_sym

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rooibos::Message::Predicates

Instance Attribute Details

#envelopeObject (readonly)

Returns the value of attribute envelope

Returns:

  • (Object)

    the current value of envelope



33
34
35
# File 'lib/rooibos/message/system/batch.rb', line 33

def envelope
  @envelope
end

#statusObject (readonly)

Returns the value of attribute status

Returns:

  • (Object)

    the current value of status



33
34
35
# File 'lib/rooibos/message/system/batch.rb', line 33

def status
  @status
end

#stderrObject (readonly)

Returns the value of attribute stderr

Returns:

  • (Object)

    the current value of stderr



33
34
35
# File 'lib/rooibos/message/system/batch.rb', line 33

def stderr
  @stderr
end

#stdoutObject (readonly)

Returns the value of attribute stdout

Returns:

  • (Object)

    the current value of stdout



33
34
35
# File 'lib/rooibos/message/system/batch.rb', line 33

def stdout
  @stdout
end

Instance Method Details

#deconstruct_keys(_keys) ⇒ Object

Deconstructs for pattern matching.

Returns a hash with :type, :envelope, :stdout, :stderr, and :status.



55
56
57
# File 'lib/rooibos/message/system/batch.rb', line 55

def deconstruct_keys(_keys)
  { type: :system, envelope:, stdout:, stderr:, status: }
end

#error?Boolean

Returns true if status is non-zero.

Returns:

  • (Boolean)


47
48
49
# File 'lib/rooibos/message/system/batch.rb', line 47

def error?
  status != 0
end

#success?Boolean

Returns true if status is 0.

Returns:

  • (Boolean)


42
43
44
# File 'lib/rooibos/message/system/batch.rb', line 42

def success?
  status == 0
end

#system?Boolean

Returns true for system responses.

Returns:

  • (Boolean)


37
38
39
# File 'lib/rooibos/message/system/batch.rb', line 37

def system?
  true
end