Class: Temporalio::Converters::DataConverter
- Inherits:
-
Object
- Object
- Temporalio::Converters::DataConverter
- Defined in:
- lib/temporalio/converters/data_converter.rb
Overview
Data converter for converting/encoding payloads to/from Ruby values.
Instance Attribute Summary collapse
-
#failure_converter ⇒ FailureConverter
readonly
Failure converter.
-
#payload_codec ⇒ PayloadCodec?
readonly
Optional codec for encoding/decoding payload bytes such as for encryption.
-
#payload_converter ⇒ PayloadConverter
readonly
Payload converter.
Class Method Summary collapse
-
.default ⇒ DataConverter
Default data converter.
Instance Method Summary collapse
-
#from_failure(failure) ⇒ Exception
Decode and convert a Temporal failure to a Ruby error.
-
#from_payload(payload, hint: nil) ⇒ Object
Decode and convert a payload to a Ruby value.
-
#from_payloads(payloads, hints: nil) ⇒ Array<Object>
Decode and convert a payload set to Ruby values.
-
#initialize(payload_converter: PayloadConverter.default, failure_converter: FailureConverter.default, payload_codec: nil) ⇒ DataConverter
constructor
Create data converter.
-
#to_failure(error) ⇒ Api::Failure::V1::Failure
Convert a Ruby error to a Temporal failure and encode it.
-
#to_payload(value, hint: nil) ⇒ Api::Common::V1::Payload
Convert a Ruby value to a payload and encode it.
-
#to_payloads(values, hints: nil) ⇒ Api::Common::V1::Payloads
Convert multiple Ruby values to a payload set and encode it.
Constructor Details
#initialize(payload_converter: PayloadConverter.default, failure_converter: FailureConverter.default, payload_codec: nil) ⇒ DataConverter
Create data converter.
31 32 33 34 35 36 37 38 39 |
# File 'lib/temporalio/converters/data_converter.rb', line 31 def initialize( payload_converter: PayloadConverter.default, failure_converter: FailureConverter.default, payload_codec: nil ) @payload_converter = payload_converter @failure_converter = failure_converter @payload_codec = payload_codec end |
Instance Attribute Details
#failure_converter ⇒ FailureConverter (readonly)
Returns Failure converter.
16 17 18 |
# File 'lib/temporalio/converters/data_converter.rb', line 16 def failure_converter @failure_converter end |
#payload_codec ⇒ PayloadCodec? (readonly)
Returns Optional codec for encoding/decoding payload bytes such as for encryption.
19 20 21 |
# File 'lib/temporalio/converters/data_converter.rb', line 19 def payload_codec @payload_codec end |
#payload_converter ⇒ PayloadConverter (readonly)
Returns Payload converter.
13 14 15 |
# File 'lib/temporalio/converters/data_converter.rb', line 13 def payload_converter @payload_converter end |
Class Method Details
.default ⇒ DataConverter
Returns Default data converter.
22 23 24 |
# File 'lib/temporalio/converters/data_converter.rb', line 22 def self.default @default ||= DataConverter.new end |
Instance Method Details
#from_failure(failure) ⇒ Exception
Decode and convert a Temporal failure to a Ruby error.
105 106 107 |
# File 'lib/temporalio/converters/data_converter.rb', line 105 def from_failure(failure) failure_converter.from_failure(failure, self) end |
#from_payload(payload, hint: nil) ⇒ Object
Decode and convert a payload to a Ruby value.
71 72 73 74 |
# File 'lib/temporalio/converters/data_converter.rb', line 71 def from_payload(payload, hint: nil) payload = payload_codec.decode([payload]).first if payload_codec payload_converter.from_payload(payload, hint:) end |
#from_payloads(payloads, hints: nil) ⇒ Array<Object>
Decode and convert a payload set to Ruby values.
84 85 86 87 88 89 90 91 |
# File 'lib/temporalio/converters/data_converter.rb', line 84 def from_payloads(payloads, hints: nil) return [] unless payloads && !payloads.payloads.empty? if payload_codec && !payloads.payloads.empty? payloads = Api::Common::V1::Payloads.new(payloads: payload_codec.decode(payloads.payloads)) end payload_converter.from_payloads(payloads, hints:) end |
#to_failure(error) ⇒ Api::Failure::V1::Failure
Convert a Ruby error to a Temporal failure and encode it.
97 98 99 |
# File 'lib/temporalio/converters/data_converter.rb', line 97 def to_failure(error) failure_converter.to_failure(error, self) end |
#to_payload(value, hint: nil) ⇒ Api::Common::V1::Payload
Convert a Ruby value to a payload and encode it.
46 47 48 49 50 |
# File 'lib/temporalio/converters/data_converter.rb', line 46 def to_payload(value, hint: nil) payload = payload_converter.to_payload(value, hint:) payload = payload_codec.encode([payload]).first if payload_codec payload end |
#to_payloads(values, hints: nil) ⇒ Api::Common::V1::Payloads
Convert multiple Ruby values to a payload set and encode it.
60 61 62 63 64 |
# File 'lib/temporalio/converters/data_converter.rb', line 60 def to_payloads(values, hints: nil) payloads = payload_converter.to_payloads(values, hints:) payloads.payloads.replace(payload_codec.encode(payloads.payloads)) if payload_codec && !payloads.payloads.empty? payloads end |