Sha256: 91936294591cfa58c823a0038ec082273caf3f17835b12564c37106e085f804b
Contents?: true
Size: 1011 Bytes
Versions: 34
Compression:
Stored size: 1011 Bytes
Contents
module Messaging class Publish include MethodObject option :message option :message_store, default: -> { Messaging.message_store } option :dispatcher, default: -> { Messaging.dispatcher } option :middlewares, default: -> { Config.dispatcher.middlewares } class << self # @!method call(message:, stream:) # Publishes the message # # This will persist the message first (if given a stream), # if that succeeds it will be dispatched to the configured # dispatcher and all handlers configured in the routes. # @param message [Message] The message to publish # @return [Message] the message just published end # @see .call # @!visibility private def call persisted_message = message_store.call(message) Middleware.run(middlewares, persisted_message) do dispatcher.call(persisted_message) Messaging.routes.handle persisted_message end persisted_message end end end
Version data entries
34 entries across 34 versions & 1 rubygems