class Temporalio::Converters::DataConverter
Data converter for converting/encoding payloads to/from Ruby values.
def self.default
-
(DataConverter)- Default data converter.
def self.default @default ||= DataConverter.new end
def from_failure(failure)
-
(Exception)- Decoded and converted Ruby error.
Parameters:
-
failure(Api::Failure::V1::Failure) -- Encoded failure.
def from_failure(failure) failure_converter.from_failure(failure, self) end
def from_payload(payload, hint: nil)
-
(Object)- Decoded and converted Ruby value.
Parameters:
-
hint(Object, nil) -- Hint, if any, to assist conversion. -
payload(Api::Common::V1::Payload) -- Encoded payload.
def from_payload(payload, hint: nil) payload = payload_codec.decode([payload]).first if payload_codec payload_converter.from_payload(payload, hint:) end
def from_payloads(payloads, hints: nil)
-
(Array- Decoded and converted Ruby values.
Parameters:
-
hints(Array) -- Hints, if any, to assist conversion. Note, when using the default converter -
payloads(Api::Common::V1::Payloads, nil) -- Encoded payload set.
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
def initialize(
-
payload_codec(PayloadCodec, nil) -- Payload codec to use. -
failure_converter(FailureConverter) -- Failure converter to use. -
payload_converter(PayloadConverter) -- Payload converter to use.
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
def to_failure(error)
-
(Api::Failure::V1::Failure)- Converted and encoded failure.
Parameters:
-
error(Exception) -- Ruby error.
def to_failure(error) failure_converter.to_failure(error, self) end
def to_payload(value, hint: nil)
-
(Api::Common::V1::Payload)- Converted and encoded payload.
Parameters:
-
hint(Object, nil) -- Hint, if any, to assist conversion. -
value(Object) -- Ruby value.
def to_payload(value, hint: nil) payload = payload_converter.to_payload(value, hint:) payload = payload_codec.encode([payload]).first if payload_codec payload end
def to_payloads(values, hints: nil)
-
(Api::Common::V1::Payloads)- Converted and encoded payload set.
Parameters:
-
hints(Array) -- Hints, if any, to assist conversion. Note, when using the default converter -
values(Object) -- Ruby values, converted to array via {::Array}.
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