Class: Rooibos::Message::System::Batch
- Inherits:
-
Data
- Object
- Data
- Rooibos::Message::System::Batch
- 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
-
#envelope ⇒ Object
readonly
Returns the value of attribute envelope.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#stderr ⇒ Object
readonly
Returns the value of attribute stderr.
-
#stdout ⇒ Object
readonly
Returns the value of attribute stdout.
Instance Method Summary collapse
-
#deconstruct_keys(_keys) ⇒ Object
Deconstructs for pattern matching.
-
#error? ⇒ Boolean
Returns
trueif status is non-zero. -
#success? ⇒ Boolean
Returns
trueif status is 0. -
#system? ⇒ Boolean
Returns
truefor system responses.
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
#envelope ⇒ Object (readonly)
Returns the value of attribute envelope
33 34 35 |
# File 'lib/rooibos/message/system/batch.rb', line 33 def envelope @envelope end |
#status ⇒ Object (readonly)
Returns the value of attribute status
33 34 35 |
# File 'lib/rooibos/message/system/batch.rb', line 33 def status @status end |
#stderr ⇒ Object (readonly)
Returns the value of attribute stderr
33 34 35 |
# File 'lib/rooibos/message/system/batch.rb', line 33 def stderr @stderr end |
#stdout ⇒ Object (readonly)
Returns the value of attribute 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.
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.
42 43 44 |
# File 'lib/rooibos/message/system/batch.rb', line 42 def success? status == 0 end |
#system? ⇒ Boolean
Returns true for system responses.
37 38 39 |
# File 'lib/rooibos/message/system/batch.rb', line 37 def system? true end |