class Eventboss::Publisher

Attributes

configuration[R]
event_name[R]
sns_client[R]
source[R]

Public Class Methods

new(event_name, sns_client, configuration, opts = {}) click to toggle source
# File lib/eventboss/publisher.rb, line 5
def initialize(event_name, sns_client, configuration, opts = {})
  @event_name = event_name
  @sns_client = sns_client
  @configuration = configuration
  @source = configuration.eventboss_app_name unless opts[:generic]
end

Public Instance Methods

publish(payload) click to toggle source
# File lib/eventboss/publisher.rb, line 12
def publish(payload)
  topic_arn = Topic.build_arn(event_name: event_name, source_app: source)
  sns_client.publish(
    topic_arn: topic_arn,
    message: json_payload(payload)
  )
end

Private Instance Methods

json_payload(payload) click to toggle source
# File lib/eventboss/publisher.rb, line 24
def json_payload(payload)
  payload.is_a?(String) ? payload : payload.to_json
end