Module: EventSource::Write
Defined Under Namespace
Modules: Build, Call, Configure
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(cls) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 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
|
Instance Method Details
#call(event_data, stream_name, expected_version: nil) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# 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) ⇒ Object
58
59
60
61
62
63
64
|
# 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
|