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



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 (Error.new 'Unable to publish event. No event definitions set.') unless event_definitions.present?
  event_definition = event_definitions[name] or raise (Error.new "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