Sha256: a5eedbd69df1fb2a9e81e6bac516d8bc7c077c27326e469b18f52ed87ebefa27
Contents?: true
Size: 1.17 KB
Versions: 6
Compression:
Stored size: 1.17 KB
Contents
# frozen_string_literal: true module HermesMessengerOfTheGods module Endpoints class Local < Base class << self def clear_queue! @received = nil end def received @received ||= Hash.new { |h, k| h[k] = [] } end end attr_accessor :on_receive def received self.class.received[endpoint] end def to_transmit_payload(message, raw_message, dispatch_options = {}) { message: message, raw_message: raw_message, options: dispatch_options } end def transmit(payload) bulk_transmit([payload]) end def bulk_transmit(payloads) payloads.each do |msg| pub_opts = fetch_option(:publish_options, msg[:raw_message]) || {} new_msg = { message: msg[:message], options: msg[:options].merge(pub_opts) } received << new_msg on_receive&.call(new_msg) "Recorded msg ##{self.class.received[endpoint].length} for #{endpoint}" end end end end end if defined?(RSpec) RSpec.configure do |config| config.after(:each) do HermesMessengerOfTheGods::Endpoints::Local.clear_queue! end end end
Version data entries
6 entries across 6 versions & 1 rubygems