Class: Temporalio::FailureConverter::Basic Private
- Defined in:
- lib/temporalio/failure_converter/basic.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
A default implementation of a FailureConverter.
Use DataConverter for the set of helper method for interaction with converters.
Instance Method Summary collapse
- #from_failure(failure, payload_converter) ⇒ Object private
-
#initialize(encode_common_attributes: false) ⇒ Basic
constructor
private
A new instance of Basic.
- #to_failure(error, payload_converter) ⇒ Object private
Constructor Details
#initialize(encode_common_attributes: false) ⇒ Basic
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Basic.
16 17 18 19 20 |
# File 'lib/temporalio/failure_converter/basic.rb', line 16 def initialize(encode_common_attributes: false) super() @encode_common_attributes = encode_common_attributes end |
Instance Method Details
#from_failure(failure, payload_converter) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/temporalio/failure_converter/basic.rb', line 64 def from_failure(failure, payload_converter) failure = apply_from_encoded_attributes(failure, payload_converter) cause = failure.cause ? from_failure(failure.cause, payload_converter) : nil error = if failure.application_failure_info from_application_failure(failure, failure.application_failure_info, cause, payload_converter) elsif failure.timeout_failure_info from_timeout_failure(failure, failure.timeout_failure_info, cause, payload_converter) elsif failure.canceled_failure_info from_cancelled_failure(failure, failure.canceled_failure_info, cause, payload_converter) elsif failure.terminated_failure_info from_terminated_failure(failure, failure.terminated_failure_info, cause, payload_converter) elsif failure.server_failure_info from_server_failure(failure, failure.server_failure_info, cause, payload_converter) elsif failure.reset_workflow_failure_info from_reset_workflow_failure(failure, failure.reset_workflow_failure_info, cause, payload_converter) elsif failure.activity_failure_info from_activity_failure(failure, failure.activity_failure_info, cause, payload_converter) elsif failure.child_workflow_execution_failure_info from_child_workflow_execution_failure( failure, failure.child_workflow_execution_failure_info, cause, payload_converter, ) else from_generic_failure(failure, cause, payload_converter) end unless failure.stack_trace.empty? error.set_backtrace(failure.stack_trace.split("\n")) end error end |
#to_failure(error, payload_converter) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/temporalio/failure_converter/basic.rb', line 22 def to_failure(error, payload_converter) return error.raw if error.is_a?(Temporalio::Error::Failure) && error.raw failure = case error when Temporalio::Error::ApplicationError to_application_failure(error, payload_converter) when Temporalio::Error::TimeoutError to_timeout_failure(error, payload_converter) when Temporalio::Error::CancelledError to_cancelled_failure(error, payload_converter) when Temporalio::Error::TerminatedError to_terminated_failure(error, payload_converter) when Temporalio::Error::ServerError to_server_failure(error, payload_converter) when Temporalio::Error::ResetWorkflowError to_reset_workflow_failure(error, payload_converter) when Temporalio::Error::ActivityError to_activity_failure(error, payload_converter) when Temporalio::Error::ChildWorkflowError to_child_workflow_execution_failure(error, payload_converter) else to_generic_failure(error, payload_converter) end failure. = error. failure.stack_trace = error.backtrace&.join("\n") || '' # RBS: StandardError fallback is only needed to satisfy steep - https://github.com/soutaro/steep/issues/477 failure.cause = to_failure(error.cause || StandardError.new, payload_converter) if error.cause if encode_common_attributes? failure.encoded_attributes = payload_converter.to_payload( 'message' => failure., 'stack_trace' => failure.stack_trace, ) failure. = 'Encoded failure' failure.stack_trace = '' end failure end |