module MessageStore::Write
Public Class Methods
included(cls)
click to toggle source
# File lib/message_store/write.rb, line 3 def self.included(cls) cls.class_exec do include Dependency include Virtual include Log::Dependency extend Build extend Call extend Configure dependency :identifier, Identifier::UUID::Random abstract :configure abstract :write end end
Public Instance Methods
call(message_data, stream_name, expected_version: nil)
click to toggle source
# File lib/message_store/write.rb, line 44 def call(message_data, stream_name, expected_version: nil) batch = Array(message_data) logger.trace(tag: :write) do message_types = batch.map {|message_data| message_data.type }.uniq.join(', ') "Writing message data (Types: #{message_types}, Stream Name: #{stream_name}, Expected Version: #{expected_version.inspect}, Number of Messages: #{batch.length})" end logger.trace(tags: [:data, :message_data]) { batch.pretty_inspect } set_ids(batch) position = write(batch, stream_name, expected_version: expected_version) logger.info(tag: :write) do message_types = batch.map {|message_data| message_data.type }.uniq.join(', ') "Wrote message data (Types: #{message_types}, Stream Name: #{stream_name}, Expected Version: #{expected_version.inspect}, Number of Messages: #{batch.length})" end logger.info(tags: [:data, :message_data]) { batch.pretty_inspect } position end
Also aliased as: write
set_ids(batch)
click to toggle source
# File lib/message_store/write.rb, line 67 def set_ids(batch) batch.each do |message_data| if message_data.id.nil? message_data.id = identifier.get end end end