Module: RabbitFeed::Producer

Extended by:
Producer
Included in:
Producer
Defined in:
lib/rabbit_feed/producer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#event_definitionsObject

Returns the value of attribute event_definitions.



5
6
7
# File 'lib/rabbit_feed/producer.rb', line 5

def event_definitions
  @event_definitions
end

Instance Method Details

#publish_event(name, payload) ⇒ Object

Raises:



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/rabbit_feed/producer.rb', line 7

def publish_event(name, payload)
  raise RabbitFeed::Error, 'Unable to publish event. No event definitions set.' unless event_definitions.present?
  (event_definition = event_definitions[name]) || (raise RabbitFeed::Error, "definition for event: #{name} not found")
  timestamp         = Time.now.utc
            = ( event_definition.version, name, timestamp)
  event             = Event.new , payload, event_definition.schema, event_definition.sensitive_fields
  RabbitFeed.log.info { { event: :publish_start, metadata: event. } }
  ProducerConnection.instance.publish event.serialize, (options name, timestamp)
  RabbitFeed.log.info { { event: :publish_end, metadata: event. } }
  event
end