module EventSource::Write
Public Class Methods
included(cls)
click to toggle source
# File lib/event_source/write.rb, line 3 def self.included(cls) cls.class_exec do include Log::Dependency cls.extend Build cls.extend Call cls.extend Configure dependency :identifier, Identifier::UUID::Random abstract :configure abstract :write end end
Public Instance Methods
call(event_data, stream_name, expected_version: nil)
click to toggle source
# File lib/event_source/write.rb, line 42 def call(event_data, stream_name, expected_version: nil) logger.trace { "Writing event data (Stream Name: #{stream_name}, Expected Version: #{expected_version.inspect})" } logger.trace(tags: [:data, :event_data]) { event_data.pretty_inspect } batch = Array(event_data) set_ids(batch) position = write(batch, stream_name, expected_version: expected_version) logger.info { "Wrote event data (Stream Name: #{stream_name}, Expected Version: #{expected_version.inspect})" } logger.info(tags: [:data, :event_data]) { event_data.pretty_inspect } position end
set_ids(batch)
click to toggle source
# File lib/event_source/write.rb, line 58 def set_ids(batch) batch.each do |event_data| if event_data.id.nil? event_data.id = identifier.get end end end