class MagicPipe::Senders::Sync

Public Instance Methods

build_message(metadata) click to toggle source
# File lib/magic_pipe/senders/sync.rb, line 20
def build_message(metadata)
  Envelope.new(body: data, **metadata)
end
build_metadata() click to toggle source
# File lib/magic_pipe/senders/sync.rb, line 24
def build_metadata
  {
    topic: @topic,
    producer: @config.producer_name,
    time: @time.to_i,
    mime: @codec::TYPE
  }
end
call() click to toggle source
# File lib/magic_pipe/senders/sync.rb, line 9
def call
  metadata = build_metadata
  envelope = build_message(metadata)
  payload = @codec.new(envelope).encode
  @transport.submit!(payload, metadata)
  track_success(@metrics, @topic)
rescue => e
  track_failure(@metrics, @topic)
  raise e
end
data() click to toggle source
# File lib/magic_pipe/senders/sync.rb, line 33
def data
  @wrapper ? @wrapper.new(@object) : @object
end