Sha256: d05cd04115d246abb58b84490007282b12c1eac4c4560c63997ccc1d4eedce72

Contents?: true

Size: 1.29 KB

Versions: 8

Compression:

Stored size: 1.29 KB

Contents

# This monkey patch allows you to customize the message format that you publish to your broker.
# By default, Outboxable publishes a CloudEvent message to your broker.
module Outboxable
  module RabbitMq
    class Publisher
      # Override this method to customize the message format that you publish to your broker
      # DO NOT CHANGE THE METHOD SIGNATURE
      def to_envelope(resource:)
        {
          id: resource.id,
          source: 'http://localhost:3000',
          specversion: '1.0',
          type: resource.routing_key,
          datacontenttype: 'application/json',
          data: resource.payload
        }.to_json
      end
    end
  end
end

Outboxable.configure do |config|
  # Specify the ORM you are using. For now, only ActiveRecord is supported.
  config.orm = :activerecord

  # Specify the message broker you are using. For now, only RabbitMQ is supported.
  config.message_broker = :rabbitmq

  # RabbitMQ configurations
  config.rabbitmq_host = ENV.fetch('RABBITMQ__HOST')
  config.rabbitmq_port = ENV.fetch('RABBITMQ__PORT', 5672)
  config.rabbitmq_user = ENV.fetch('RABBITMQ__USERNAME')
  config.rabbitmq_password = ENV.fetch('RABBITMQ__PASSWORD')
  config.rabbitmq_vhost = ENV.fetch('RABBITMQ__VHOST')
  config.rabbitmq_event_bus_exchange = ENV.fetch('EVENTBUS__EXCHANGE_NAME')
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
outboxable-1.0.2 lib/templates/activerecord_initializer.rb
outboxable-1.0.0 lib/templates/activerecord_initializer.rb
outboxable-0.1.8 lib/templates/initializer.rb
outboxable-0.1.7 lib/templates/initializer.rb
outboxable-0.1.6 lib/templates/initializer.rb
outboxable-0.1.5 lib/templates/initializer.rb
outboxable-0.1.4 lib/templates/initializer.rb
outboxable-0.1.3 lib/templates/initializer.rb