class Temporal::Client::Converter::Composite

Attributes

payload_converters[R]
payload_converters_by_encoding[R]

Public Class Methods

new(payload_converters:) click to toggle source
# File lib/temporal/client/converter/composite.rb, line 10
def initialize(payload_converters:)
  @payload_converters = payload_converters
  @payload_converters_by_encoding = {}

  @payload_converters.each do |converter|
    @payload_converters_by_encoding[converter.encoding] = converter
  end
end

Public Instance Methods

from_payload(payload) click to toggle source
# File lib/temporal/client/converter/composite.rb, line 19
def from_payload(payload)
  encoding = payload.metadata['encoding']
  if encoding.nil?
    raise MetadataNotSet
  end

  converter = payload_converters_by_encoding[encoding]

  if converter.nil?
    raise ConverterNotFound
  end

  converter.from_payload(payload)
end
to_payload(data) click to toggle source
# File lib/temporal/client/converter/composite.rb, line 34
def to_payload(data)
  payload_converters.each do |converter|
    payload = converter.to_payload(data)
    return payload unless payload.nil?
  end

  raise ConverterNotFound
end