ruby_event_store 2.19.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ruby_event_store/broker.rb +1 -1
- data/lib/ruby_event_store/client.rb +8 -15
- data/lib/ruby_event_store/deprecations.rb +63 -0
- data/lib/ruby_event_store/in_memory_repository.rb +4 -13
- data/lib/ruby_event_store/instrumented_broker.rb +14 -46
- data/lib/ruby_event_store/instrumented_dispatcher.rb +1 -21
- data/lib/ruby_event_store/instrumented_repository.rb +12 -42
- data/lib/ruby_event_store/instrumented_subscriptions.rb +2 -2
- data/lib/ruby_event_store/mappers/default.rb +2 -15
- data/lib/ruby_event_store/mappers/instrumented_batch_mapper.rb +2 -24
- data/lib/ruby_event_store/mappers/instrumented_mapper.rb +2 -39
- data/lib/ruby_event_store/projection.rb +10 -86
- data/lib/ruby_event_store/spec/broker_lint.rb +2 -2
- data/lib/ruby_event_store/specification.rb +0 -18
- data/lib/ruby_event_store/sync_scheduler.rb +1 -19
- data/lib/ruby_event_store/version.rb +1 -1
- data/lib/ruby_event_store.rb +1 -5
- metadata +3 -7
- data/lib/ruby_event_store/dispatcher.rb +0 -12
- data/lib/ruby_event_store/immediate_async_dispatcher.rb +0 -13
- data/lib/ruby_event_store/mappers/json_mapper.rb +0 -16
- data/lib/ruby_event_store/mappers/null_mapper.rb +0 -15
- data/lib/ruby_event_store/mappers/transformation/event_class_remapper.rb +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 05b8bd1227176e2a6d41cd4429f90f79a47ce98c13b03e81ba24cf6b61f0a118
|
|
4
|
+
data.tar.gz: 5100c038a126708538e6a9eecac435dacb9b58d2c0feacb9689daaab2217439c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 176ada1f03146d76a5a58ae8f7803fe029dd0fb265fa94b15da5412e7c98689b8be388ef977f77cdb56b54be3f4b420b6ffc291547f56b74136a9456f2c7341a
|
|
7
|
+
data.tar.gz: fd9befc69d34e4ca120520c4e0724b2dc031adfe2f9f35dc4a9f52e2d8977f61424988b85fd5c00983d228701bf5a10d628f7aa50be6c96f75507f5a63252760
|
|
@@ -25,7 +25,7 @@ module RubyEventStore
|
|
|
25
25
|
@event_type_resolver = event_type_resolver
|
|
26
26
|
|
|
27
27
|
if (subscriptions || dispatcher)
|
|
28
|
-
|
|
28
|
+
msg = <<~EOW
|
|
29
29
|
Passing subscriptions and dispatcher to #{self.class} has been deprecated.
|
|
30
30
|
|
|
31
31
|
Pass it using message_broker argument. For example:
|
|
@@ -37,11 +37,12 @@ module RubyEventStore
|
|
|
37
37
|
)
|
|
38
38
|
)
|
|
39
39
|
EOW
|
|
40
|
-
|
|
40
|
+
msg += <<~EOW if message_broker
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
Because message_broker has been provided,
|
|
43
|
+
arguments passed by subscriptions or dispatcher will be ignored.
|
|
44
|
+
EOW
|
|
45
|
+
Deprecations.warn(:ruby_client_subscriptions_dispatcher, message: msg)
|
|
45
46
|
end
|
|
46
47
|
end
|
|
47
48
|
|
|
@@ -98,11 +99,7 @@ module RubyEventStore
|
|
|
98
99
|
# @param expected_version (see #publish)
|
|
99
100
|
# @return [self]
|
|
100
101
|
def link(event_ids, stream_name:, expected_version: :any)
|
|
101
|
-
if event_ids.nil? || Array(event_ids).any?(&:nil?)
|
|
102
|
-
warn <<~EOW
|
|
103
|
-
Passing `nil` to link is deprecated and will raise ArgumentError in RubyEventStore 3.0.
|
|
104
|
-
EOW
|
|
105
|
-
end
|
|
102
|
+
raise ArgumentError, "event_ids must not be nil" if event_ids.nil? || Array(event_ids).any?(&:nil?)
|
|
106
103
|
@repository.link_to_stream(Array(event_ids), Stream.new(stream_name), ExpectedVersion.new(expected_version))
|
|
107
104
|
self
|
|
108
105
|
end
|
|
@@ -385,11 +382,7 @@ module RubyEventStore
|
|
|
385
382
|
end
|
|
386
383
|
|
|
387
384
|
def enrich_events_metadata(events)
|
|
388
|
-
if events.nil? || Array(events).any?(&:nil?)
|
|
389
|
-
warn <<~EOW
|
|
390
|
-
Passing `nil` to publish/append is deprecated and will raise ArgumentError in RubyEventStore 3.0.
|
|
391
|
-
EOW
|
|
392
|
-
end
|
|
385
|
+
raise ArgumentError, "events must not be nil" if events.nil? || Array(events).any?(&:nil?)
|
|
393
386
|
events = Array(events)
|
|
394
387
|
events.each { |event| enrich_event_metadata(event) }
|
|
395
388
|
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "set"
|
|
4
|
+
|
|
5
|
+
module RubyEventStore
|
|
6
|
+
module Deprecations
|
|
7
|
+
@suppressions = Set.new
|
|
8
|
+
@warnings = {}
|
|
9
|
+
@emitted = Set.new
|
|
10
|
+
|
|
11
|
+
class << self
|
|
12
|
+
def register(key, message)
|
|
13
|
+
@warnings[key] = message
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def suppress(key)
|
|
17
|
+
@suppressions << key
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def warn(key, message: nil)
|
|
21
|
+
return if @suppressions.include?(key)
|
|
22
|
+
return if @emitted.include?(key)
|
|
23
|
+
@emitted << key
|
|
24
|
+
Kernel.warn(
|
|
25
|
+
"[DEPRECATION] #{message || @warnings.fetch(key) { raise KeyError, "Deprecation :#{key} not registered. Call Deprecations.register first." }}",
|
|
26
|
+
)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def deprecate(klass, method_name, key:)
|
|
30
|
+
warn_key = key
|
|
31
|
+
is_private = klass.private_method_defined?(method_name)
|
|
32
|
+
this = self
|
|
33
|
+
wrapper =
|
|
34
|
+
Module.new do
|
|
35
|
+
define_method(method_name) do |*args, **kwargs, &block|
|
|
36
|
+
this.warn(warn_key)
|
|
37
|
+
super(*args, **kwargs, &block)
|
|
38
|
+
end
|
|
39
|
+
private(method_name) if is_private
|
|
40
|
+
end
|
|
41
|
+
klass.prepend(wrapper)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def deprecate_class_method(klass, method_name, key:)
|
|
45
|
+
warn_key = key
|
|
46
|
+
this = self
|
|
47
|
+
wrapper =
|
|
48
|
+
Module.new do
|
|
49
|
+
define_method(method_name) do |*args, **kwargs, &block|
|
|
50
|
+
this.warn(warn_key)
|
|
51
|
+
super(*args, **kwargs, &block)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
klass.singleton_class.prepend(wrapper)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def reset!
|
|
58
|
+
@suppressions = Set.new
|
|
59
|
+
@emitted = Set.new
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -22,12 +22,11 @@ module RubyEventStore
|
|
|
22
22
|
attr_reader :event_id, :position
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def initialize(serializer: NULL
|
|
25
|
+
def initialize(serializer: NULL)
|
|
26
26
|
@serializer = serializer
|
|
27
27
|
@streams = Hash.new { |h, k| h[k] = Array.new }
|
|
28
28
|
@mutex = Mutex.new
|
|
29
29
|
@storage = Hash.new
|
|
30
|
-
@ensure_supported_any_usage = ensure_supported_any_usage
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
def append_to_stream(records, stream, expected_version)
|
|
@@ -237,17 +236,9 @@ module RubyEventStore
|
|
|
237
236
|
stream_positions = streams.fetch(stream.name, Array.new).map(&:position)
|
|
238
237
|
violation =
|
|
239
238
|
(resolved_version.nil? && !stream_positions.compact.empty?) ||
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if violation
|
|
243
|
-
if @ensure_supported_any_usage
|
|
244
|
-
raise UnsupportedVersionAnyUsage
|
|
245
|
-
else
|
|
246
|
-
warn <<~EOW
|
|
247
|
-
Mixing expected version :any and specific position (or :auto) is deprecated and will raise UnsupportedVersionAnyUsage in RubyEventStore 3.0.
|
|
248
|
-
EOW
|
|
249
|
-
end
|
|
250
|
-
end
|
|
239
|
+
(!resolved_version.nil? && stream_positions.include?(nil))
|
|
240
|
+
|
|
241
|
+
raise UnsupportedVersionAnyUsage if violation
|
|
251
242
|
end
|
|
252
243
|
|
|
253
244
|
attr_reader :streams, :mutex, :storage, :serializer
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
class InstrumentedBroker
|
|
5
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
6
|
-
Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.
|
|
7
|
-
Use *.ruby_event_store instead.
|
|
8
|
-
EOW
|
|
9
|
-
private_constant :DEPRECATION_MESSAGE
|
|
10
|
-
|
|
11
5
|
def initialize(broker, instrumentation)
|
|
12
6
|
@broker = broker
|
|
13
7
|
@instrumentation = instrumentation
|
|
@@ -15,34 +9,28 @@ module RubyEventStore
|
|
|
15
9
|
|
|
16
10
|
def call(topic, event, record)
|
|
17
11
|
instrumentation.instrument("call.broker.ruby_event_store", topic: topic, event: event, record: record) do
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
broker.call(event, record)
|
|
28
|
-
end
|
|
12
|
+
if broker.public_method(:call).arity == 3
|
|
13
|
+
broker.call(topic, event, record)
|
|
14
|
+
else
|
|
15
|
+
warn <<~EOW
|
|
16
|
+
Message broker shall support topics.
|
|
17
|
+
Topic WILL BE IGNORED in the current broker.
|
|
18
|
+
Modify the broker implementation to pass topic as an argument to broker.call method.
|
|
19
|
+
EOW
|
|
20
|
+
broker.call(event, record)
|
|
29
21
|
end
|
|
30
22
|
end
|
|
31
23
|
end
|
|
32
24
|
|
|
33
25
|
def add_subscription(subscriber, topics)
|
|
34
26
|
instrumentation.instrument("add_subscription.broker.ruby_event_store", subscriber: subscriber, topics: topics) do
|
|
35
|
-
|
|
36
|
-
broker.add_subscription(subscriber, topics)
|
|
37
|
-
end
|
|
27
|
+
broker.add_subscription(subscriber, topics)
|
|
38
28
|
end
|
|
39
29
|
end
|
|
40
30
|
|
|
41
31
|
def add_global_subscription(subscriber)
|
|
42
32
|
instrumentation.instrument("add_global_subscription.broker.ruby_event_store", subscriber: subscriber) do
|
|
43
|
-
|
|
44
|
-
broker.add_global_subscription(subscriber)
|
|
45
|
-
end
|
|
33
|
+
broker.add_global_subscription(subscriber)
|
|
46
34
|
end
|
|
47
35
|
end
|
|
48
36
|
|
|
@@ -51,26 +39,18 @@ module RubyEventStore
|
|
|
51
39
|
"add_thread_subscription.broker.ruby_event_store",
|
|
52
40
|
subscriber: subscriber,
|
|
53
41
|
topics: topics,
|
|
54
|
-
)
|
|
55
|
-
deprecated_instrument("add_thread_subscription.broker.rails_event_store", subscriber: subscriber, topics: topics) do
|
|
56
|
-
broker.add_thread_subscription(subscriber, topics)
|
|
57
|
-
end
|
|
58
|
-
end
|
|
42
|
+
) { broker.add_thread_subscription(subscriber, topics) }
|
|
59
43
|
end
|
|
60
44
|
|
|
61
45
|
def add_thread_global_subscription(subscriber)
|
|
62
46
|
instrumentation.instrument("add_thread_global_subscription.broker.ruby_event_store", subscriber: subscriber) do
|
|
63
|
-
|
|
64
|
-
broker.add_thread_global_subscription(subscriber)
|
|
65
|
-
end
|
|
47
|
+
broker.add_thread_global_subscription(subscriber)
|
|
66
48
|
end
|
|
67
49
|
end
|
|
68
50
|
|
|
69
51
|
def all_subscriptions_for(topic)
|
|
70
52
|
instrumentation.instrument("all_subscriptions_for.broker.ruby_event_store", topic: topic) do
|
|
71
|
-
|
|
72
|
-
broker.all_subscriptions_for(topic)
|
|
73
|
-
end
|
|
53
|
+
broker.all_subscriptions_for(topic)
|
|
74
54
|
end
|
|
75
55
|
end
|
|
76
56
|
|
|
@@ -89,17 +69,5 @@ module RubyEventStore
|
|
|
89
69
|
private
|
|
90
70
|
|
|
91
71
|
attr_reader :instrumentation, :broker
|
|
92
|
-
|
|
93
|
-
def deprecated_instrument(name, payload, &block)
|
|
94
|
-
canonical_name = name.sub("rails_event_store", "ruby_event_store")
|
|
95
|
-
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
96
|
-
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
97
|
-
if (old_listeners - new_listeners).any?
|
|
98
|
-
warn DEPRECATION_MESSAGE
|
|
99
|
-
instrumentation.instrument(name, payload, &block)
|
|
100
|
-
else
|
|
101
|
-
yield
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
72
|
end
|
|
105
73
|
end
|
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
class InstrumentedDispatcher
|
|
5
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
6
|
-
Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.
|
|
7
|
-
Use *.ruby_event_store instead.
|
|
8
|
-
EOW
|
|
9
|
-
private_constant :DEPRECATION_MESSAGE
|
|
10
|
-
|
|
11
5
|
def initialize(dispatcher, instrumentation)
|
|
12
6
|
@dispatcher = dispatcher
|
|
13
7
|
@instrumentation = instrumentation
|
|
@@ -15,9 +9,7 @@ module RubyEventStore
|
|
|
15
9
|
|
|
16
10
|
def call(subscriber, event, record)
|
|
17
11
|
instrumentation.instrument("call.dispatcher.ruby_event_store", event: event, subscriber: subscriber) do
|
|
18
|
-
|
|
19
|
-
dispatcher.call(subscriber, event, record)
|
|
20
|
-
end
|
|
12
|
+
dispatcher.call(subscriber, event, record)
|
|
21
13
|
end
|
|
22
14
|
end
|
|
23
15
|
|
|
@@ -36,17 +28,5 @@ module RubyEventStore
|
|
|
36
28
|
private
|
|
37
29
|
|
|
38
30
|
attr_reader :instrumentation, :dispatcher
|
|
39
|
-
|
|
40
|
-
def deprecated_instrument(name, payload, &block)
|
|
41
|
-
canonical_name = name.sub("rails_event_store", "ruby_event_store")
|
|
42
|
-
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
43
|
-
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
44
|
-
if (old_listeners - new_listeners).any?
|
|
45
|
-
warn DEPRECATION_MESSAGE
|
|
46
|
-
instrumentation.instrument(name, payload, &block)
|
|
47
|
-
else
|
|
48
|
-
yield
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
31
|
end
|
|
52
32
|
end
|
|
@@ -2,70 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
class InstrumentedRepository
|
|
5
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
6
|
-
Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.
|
|
7
|
-
Use *.ruby_event_store instead.
|
|
8
|
-
EOW
|
|
9
|
-
private_constant :DEPRECATION_MESSAGE
|
|
10
|
-
|
|
11
5
|
def initialize(repository, instrumentation)
|
|
12
6
|
@repository = repository
|
|
13
7
|
@instrumentation = instrumentation
|
|
14
8
|
end
|
|
15
9
|
|
|
16
10
|
def append_to_stream(records, stream, expected_version)
|
|
17
|
-
instrumentation.instrument(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
instrumentation.instrument(
|
|
12
|
+
"append_to_stream.repository.ruby_event_store",
|
|
13
|
+
records: records,
|
|
14
|
+
stream: stream,
|
|
15
|
+
) { repository.append_to_stream(records, stream, expected_version) }
|
|
22
16
|
end
|
|
23
17
|
|
|
24
18
|
def link_to_stream(event_ids, stream, expected_version)
|
|
25
19
|
instrumentation.instrument("link_to_stream.repository.ruby_event_store", event_ids: event_ids, stream: stream) do
|
|
26
|
-
|
|
27
|
-
repository.link_to_stream(event_ids, stream, expected_version)
|
|
28
|
-
end
|
|
20
|
+
repository.link_to_stream(event_ids, stream, expected_version)
|
|
29
21
|
end
|
|
30
22
|
end
|
|
31
23
|
|
|
32
24
|
def delete_stream(stream)
|
|
33
25
|
instrumentation.instrument("delete_stream.repository.ruby_event_store", stream: stream) do
|
|
34
|
-
|
|
35
|
-
repository.delete_stream(stream)
|
|
36
|
-
end
|
|
26
|
+
repository.delete_stream(stream)
|
|
37
27
|
end
|
|
38
28
|
end
|
|
39
29
|
|
|
40
30
|
def read(specification)
|
|
41
31
|
instrumentation.instrument("read.repository.ruby_event_store", specification: specification) do
|
|
42
|
-
|
|
43
|
-
repository.read(specification)
|
|
44
|
-
end
|
|
32
|
+
repository.read(specification)
|
|
45
33
|
end
|
|
46
34
|
end
|
|
47
35
|
|
|
48
36
|
def count(specification)
|
|
49
37
|
instrumentation.instrument("count.repository.ruby_event_store", specification: specification) do
|
|
50
|
-
|
|
51
|
-
repository.count(specification)
|
|
52
|
-
end
|
|
38
|
+
repository.count(specification)
|
|
53
39
|
end
|
|
54
40
|
end
|
|
55
41
|
|
|
56
42
|
def update_messages(records)
|
|
57
|
-
instrumentation.instrument("update_messages.repository.ruby_event_store", records: records
|
|
58
|
-
|
|
59
|
-
repository.update_messages(records)
|
|
60
|
-
end
|
|
43
|
+
instrumentation.instrument("update_messages.repository.ruby_event_store", records: records) do
|
|
44
|
+
repository.update_messages(records)
|
|
61
45
|
end
|
|
62
46
|
end
|
|
63
47
|
|
|
64
48
|
def streams_of(event_id)
|
|
65
49
|
instrumentation.instrument("streams_of.repository.ruby_event_store", event_id: event_id) do
|
|
66
|
-
|
|
67
|
-
repository.streams_of(event_id)
|
|
68
|
-
end
|
|
50
|
+
repository.streams_of(event_id)
|
|
69
51
|
end
|
|
70
52
|
end
|
|
71
53
|
|
|
@@ -84,17 +66,5 @@ module RubyEventStore
|
|
|
84
66
|
private
|
|
85
67
|
|
|
86
68
|
attr_reader :repository, :instrumentation
|
|
87
|
-
|
|
88
|
-
def deprecated_instrument(name, payload, &block)
|
|
89
|
-
canonical_name = name.sub("rails_event_store", "ruby_event_store")
|
|
90
|
-
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
91
|
-
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
92
|
-
if (old_listeners - new_listeners).any?
|
|
93
|
-
warn DEPRECATION_MESSAGE
|
|
94
|
-
instrumentation.instrument(name, payload, &block)
|
|
95
|
-
else
|
|
96
|
-
yield
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
69
|
end
|
|
100
70
|
end
|
|
@@ -42,9 +42,9 @@ module RubyEventStore
|
|
|
42
42
|
private
|
|
43
43
|
|
|
44
44
|
def instrument(args)
|
|
45
|
-
instrumentation.instrument("add.subscriptions.
|
|
45
|
+
instrumentation.instrument("add.subscriptions.ruby_event_store", args) do
|
|
46
46
|
unsubscribe = yield
|
|
47
|
-
-> { instrumentation.instrument("remove.subscriptions.
|
|
47
|
+
-> { instrumentation.instrument("remove.subscriptions.ruby_event_store", args) { unsubscribe.call } }
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
|
|
@@ -3,21 +3,8 @@
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
module Mappers
|
|
5
5
|
class Default < PipelineMapper
|
|
6
|
-
def initialize
|
|
7
|
-
|
|
8
|
-
warn <<~EOW
|
|
9
|
-
DEPRECATION WARNING: `events_class_remapping` option in `RubyEventStore::Mappers::Default` is deprecated and will be removed in the next major release.
|
|
10
|
-
Use `RubyEventStore::Mappers::Transformation::Upcast` instead.
|
|
11
|
-
EOW
|
|
12
|
-
super(
|
|
13
|
-
Pipeline.new(
|
|
14
|
-
Transformation::EventClassRemapper.new(events_class_remapping),
|
|
15
|
-
Transformation::SymbolizeMetadataKeys.new,
|
|
16
|
-
),
|
|
17
|
-
)
|
|
18
|
-
else
|
|
19
|
-
super(Pipeline.new(Transformation::SymbolizeMetadataKeys.new))
|
|
20
|
-
end
|
|
6
|
+
def initialize
|
|
7
|
+
super(Pipeline.new(Transformation::SymbolizeMetadataKeys.new))
|
|
21
8
|
end
|
|
22
9
|
end
|
|
23
10
|
end
|
|
@@ -3,12 +3,6 @@
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
module Mappers
|
|
5
5
|
class InstrumentedBatchMapper
|
|
6
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
7
|
-
Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.
|
|
8
|
-
Use *.ruby_event_store instead.
|
|
9
|
-
EOW
|
|
10
|
-
private_constant :DEPRECATION_MESSAGE
|
|
11
|
-
|
|
12
6
|
def initialize(mapper, instrumentation)
|
|
13
7
|
@mapper = mapper
|
|
14
8
|
@instrumentation = instrumentation
|
|
@@ -16,35 +10,19 @@ module RubyEventStore
|
|
|
16
10
|
|
|
17
11
|
def events_to_records(events)
|
|
18
12
|
instrumentation.instrument("events_to_records.mapper.ruby_event_store", domain_events: events) do
|
|
19
|
-
|
|
20
|
-
mapper.events_to_records(events)
|
|
21
|
-
end
|
|
13
|
+
mapper.events_to_records(events)
|
|
22
14
|
end
|
|
23
15
|
end
|
|
24
16
|
|
|
25
17
|
def records_to_events(records)
|
|
26
18
|
instrumentation.instrument("records_to_events.mapper.ruby_event_store", records: records) do
|
|
27
|
-
|
|
28
|
-
mapper.records_to_events(records)
|
|
29
|
-
end
|
|
19
|
+
mapper.records_to_events(records)
|
|
30
20
|
end
|
|
31
21
|
end
|
|
32
22
|
|
|
33
23
|
private
|
|
34
24
|
|
|
35
25
|
attr_reader :instrumentation, :mapper
|
|
36
|
-
|
|
37
|
-
def deprecated_instrument(name, payload, &block)
|
|
38
|
-
canonical_name = name.sub("rails_event_store", "ruby_event_store")
|
|
39
|
-
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
40
|
-
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
41
|
-
if (old_listeners - new_listeners).any?
|
|
42
|
-
warn DEPRECATION_MESSAGE
|
|
43
|
-
instrumentation.instrument(name, payload, &block)
|
|
44
|
-
else
|
|
45
|
-
yield
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
26
|
end
|
|
49
27
|
end
|
|
50
28
|
end
|
|
@@ -3,19 +3,6 @@
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
module Mappers
|
|
5
5
|
class InstrumentedMapper
|
|
6
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
7
|
-
Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.
|
|
8
|
-
Use *.ruby_event_store instead.
|
|
9
|
-
EOW
|
|
10
|
-
private_constant :DEPRECATION_MESSAGE
|
|
11
|
-
|
|
12
|
-
RENAME_DEPRECATION_MESSAGE = <<~EOW
|
|
13
|
-
Instrumentation event names serialize.mapper.ruby_event_store and deserialize.mapper.ruby_event_store are deprecated and will be removed in the next major release.
|
|
14
|
-
Use event_to_record.mapper.ruby_event_store and record_to_event.mapper.ruby_event_store instead.
|
|
15
|
-
The domain_event: payload key in serialize.mapper.ruby_event_store has been renamed to event: in event_to_record.mapper.ruby_event_store.
|
|
16
|
-
EOW
|
|
17
|
-
private_constant :RENAME_DEPRECATION_MESSAGE
|
|
18
|
-
|
|
19
6
|
def initialize(mapper, instrumentation)
|
|
20
7
|
@mapper = mapper
|
|
21
8
|
@instrumentation = instrumentation
|
|
@@ -23,43 +10,19 @@ module RubyEventStore
|
|
|
23
10
|
|
|
24
11
|
def event_to_record(event)
|
|
25
12
|
instrumentation.instrument("event_to_record.mapper.ruby_event_store", event: event) do
|
|
26
|
-
|
|
27
|
-
canonical: "event_to_record.mapper.ruby_event_store",
|
|
28
|
-
message: RENAME_DEPRECATION_MESSAGE) do
|
|
29
|
-
deprecated_instrument("serialize.mapper.rails_event_store", { domain_event: event }) do
|
|
30
|
-
mapper.event_to_record(event)
|
|
31
|
-
end
|
|
32
|
-
end
|
|
13
|
+
mapper.event_to_record(event)
|
|
33
14
|
end
|
|
34
15
|
end
|
|
35
16
|
|
|
36
17
|
def record_to_event(record)
|
|
37
18
|
instrumentation.instrument("record_to_event.mapper.ruby_event_store", record: record) do
|
|
38
|
-
|
|
39
|
-
canonical: "record_to_event.mapper.ruby_event_store",
|
|
40
|
-
message: RENAME_DEPRECATION_MESSAGE) do
|
|
41
|
-
deprecated_instrument("deserialize.mapper.rails_event_store", { record: record }) do
|
|
42
|
-
mapper.record_to_event(record)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
19
|
+
mapper.record_to_event(record)
|
|
45
20
|
end
|
|
46
21
|
end
|
|
47
22
|
|
|
48
23
|
private
|
|
49
24
|
|
|
50
25
|
attr_reader :instrumentation, :mapper
|
|
51
|
-
|
|
52
|
-
def deprecated_instrument(name, payload, canonical: nil, message: DEPRECATION_MESSAGE, &block)
|
|
53
|
-
canonical_name = canonical || name.sub("rails_event_store", "ruby_event_store")
|
|
54
|
-
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
55
|
-
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
56
|
-
if (old_listeners - new_listeners).any?
|
|
57
|
-
warn message
|
|
58
|
-
instrumentation.instrument(name, payload, &block)
|
|
59
|
-
else
|
|
60
|
-
yield
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
26
|
end
|
|
64
27
|
end
|
|
65
28
|
end
|
|
@@ -3,29 +3,17 @@
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
class Projection
|
|
5
5
|
ANONYMOUS_CLASS = "#<Class:".freeze
|
|
6
|
-
|
|
7
|
-
RubyEventStore::Projection from_stream/from_all_streams/init/when/run API is deprecated and will be removed in the next major release.
|
|
8
|
-
Use Projection.init(initial_state).on(EventClass) { |state, event| new_state }.call(scope) instead.
|
|
9
|
-
EOW
|
|
10
|
-
MULTI_SCOPE_DEPRECATION_MESSAGE = <<~EOW
|
|
11
|
-
Passing multiple scopes to RubyEventStore::Projection#call is deprecated and will be removed in the next major release.
|
|
12
|
-
Use a single scope instead, e.g. call(event_store.read.stream("stream_name")).
|
|
13
|
-
EOW
|
|
14
|
-
NEW_CONSTRUCTOR_DEPRECATION_MESSAGE = <<~EOW
|
|
15
|
-
RubyEventStore::Projection.new is deprecated and will be removed in the next major release.
|
|
16
|
-
Use Projection.init(initial_state) instead.
|
|
17
|
-
EOW
|
|
18
|
-
private_constant :ANONYMOUS_CLASS, :DEPRECATION_MESSAGE, :MULTI_SCOPE_DEPRECATION_MESSAGE, :NEW_CONSTRUCTOR_DEPRECATION_MESSAGE
|
|
6
|
+
private_constant :ANONYMOUS_CLASS
|
|
19
7
|
|
|
20
|
-
|
|
21
|
-
warn NEW_CONSTRUCTOR_DEPRECATION_MESSAGE unless _internal
|
|
22
|
-
@handlers = {}
|
|
23
|
-
@init = -> { initial_state }
|
|
24
|
-
@streams = []
|
|
25
|
-
end
|
|
8
|
+
private_class_method :new
|
|
26
9
|
|
|
27
10
|
def self.init(initial_state = nil)
|
|
28
|
-
new(initial_state
|
|
11
|
+
new(initial_state)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def initialize(initial_state)
|
|
15
|
+
@handlers = {}
|
|
16
|
+
@init = -> { initial_state }
|
|
29
17
|
end
|
|
30
18
|
|
|
31
19
|
def on(*event_klasses, &block)
|
|
@@ -40,64 +28,10 @@ module RubyEventStore
|
|
|
40
28
|
self
|
|
41
29
|
end
|
|
42
30
|
|
|
43
|
-
def call(
|
|
31
|
+
def call(scope)
|
|
44
32
|
return initial_state if handled_events.empty?
|
|
45
33
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
scopes.reduce(initial_state) do |state, scope|
|
|
49
|
-
scope.of_type(handled_events).reduce(state, &method(:transition))
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def self.from_stream(stream_or_streams)
|
|
54
|
-
warn DEPRECATION_MESSAGE
|
|
55
|
-
streams = Array(stream_or_streams)
|
|
56
|
-
raise(ArgumentError, "At least one stream must be given") if streams.empty?
|
|
57
|
-
projection = new(_internal: true)
|
|
58
|
-
projection.instance_variable_set(:@streams, streams)
|
|
59
|
-
projection
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def self.from_all_streams
|
|
63
|
-
warn DEPRECATION_MESSAGE
|
|
64
|
-
new(_internal: true)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def init(handler)
|
|
68
|
-
warn DEPRECATION_MESSAGE
|
|
69
|
-
@init = handler
|
|
70
|
-
self
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def when(events, handler)
|
|
74
|
-
warn DEPRECATION_MESSAGE
|
|
75
|
-
Array(events).each do |event_klass|
|
|
76
|
-
name = event_klass.to_s
|
|
77
|
-
@handlers[name] = ->(state, event) { handler.call(state, event); state }
|
|
78
|
-
end
|
|
79
|
-
self
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def run(event_store, start: nil, count: PAGE_SIZE)
|
|
83
|
-
warn DEPRECATION_MESSAGE
|
|
84
|
-
|
|
85
|
-
if @streams.any?
|
|
86
|
-
raise ArgumentError, "Start must be an array with event ids" unless valid_start_for_streams?(start)
|
|
87
|
-
scopes =
|
|
88
|
-
@streams.zip(start || []).map do |stream, start_event_id|
|
|
89
|
-
scope = event_store.read.stream(stream).in_batches(count)
|
|
90
|
-
scope = scope.from(start_event_id) if start_event_id
|
|
91
|
-
scope
|
|
92
|
-
end
|
|
93
|
-
else
|
|
94
|
-
raise ArgumentError, "Start must be valid event id" unless valid_start_for_all_streams?(start)
|
|
95
|
-
scope = event_store.read.in_batches(count)
|
|
96
|
-
scope = scope.from(start) if start
|
|
97
|
-
scopes = [scope]
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
call(*scopes)
|
|
34
|
+
scope.of_type(handled_events).reduce(initial_state, &method(:transition))
|
|
101
35
|
end
|
|
102
36
|
|
|
103
37
|
private
|
|
@@ -113,15 +47,5 @@ module RubyEventStore
|
|
|
113
47
|
def transition(state, event)
|
|
114
48
|
@handlers.fetch(event.event_type).call(state, event)
|
|
115
49
|
end
|
|
116
|
-
|
|
117
|
-
def valid_start_for_streams?(start)
|
|
118
|
-
return true unless start
|
|
119
|
-
start.instance_of?(Array) && start.size == @streams.size
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def valid_start_for_all_streams?(start)
|
|
123
|
-
return true unless start
|
|
124
|
-
start.instance_of?(String)
|
|
125
|
-
end
|
|
126
50
|
end
|
|
127
51
|
end
|
|
@@ -5,7 +5,7 @@ RSpec.shared_examples "broker" do |broker_klass|
|
|
|
5
5
|
let(:record) { instance_double(::RubyEventStore::Record) }
|
|
6
6
|
let(:handler) { HandlerClass.new }
|
|
7
7
|
let(:subscriptions) { ::RubyEventStore::Subscriptions.new }
|
|
8
|
-
let(:dispatcher) { ::RubyEventStore::
|
|
8
|
+
let(:dispatcher) { ::RubyEventStore::SyncScheduler.new }
|
|
9
9
|
let(:broker) { broker_klass.new(subscriptions: subscriptions, dispatcher: dispatcher) }
|
|
10
10
|
|
|
11
11
|
specify "no dispatch when no subscriptions" do
|
|
@@ -56,7 +56,7 @@ RSpec.shared_examples "broker" do |broker_klass|
|
|
|
56
56
|
allow(dispatcher).to receive(:verify).and_return(false)
|
|
57
57
|
expect { broker.add_subscription(HandlerClass, []) }.to raise_error(
|
|
58
58
|
RubyEventStore::InvalidHandler,
|
|
59
|
-
/Handler HandlerClass is invalid for dispatcher .*
|
|
59
|
+
/Handler HandlerClass is invalid for dispatcher .*SyncScheduler/,
|
|
60
60
|
)
|
|
61
61
|
expect { broker.add_global_subscription(HandlerClass) }.to raise_error(
|
|
62
62
|
RubyEventStore::InvalidHandler,
|
|
@@ -245,15 +245,6 @@ module RubyEventStore
|
|
|
245
245
|
)
|
|
246
246
|
end
|
|
247
247
|
|
|
248
|
-
def in_batches_of(batch_size = DEFAULT_BATCH_SIZE)
|
|
249
|
-
warn <<~EOW
|
|
250
|
-
RubyEventStore::Specification#in_batches_of is deprecated and will be removed in the next major release.
|
|
251
|
-
|
|
252
|
-
Use #in_batches instead.
|
|
253
|
-
EOW
|
|
254
|
-
in_batches(batch_size)
|
|
255
|
-
end
|
|
256
|
-
|
|
257
248
|
# Specifies that only first event should be read.
|
|
258
249
|
# {https://railseventstore.org/docs/core-concepts/read Find out more}.
|
|
259
250
|
#
|
|
@@ -297,15 +288,6 @@ module RubyEventStore
|
|
|
297
288
|
Specification.new(reader, result.dup { |r| r.with_types = types.flatten })
|
|
298
289
|
end
|
|
299
290
|
|
|
300
|
-
def of_types(*types)
|
|
301
|
-
warn <<~EOW
|
|
302
|
-
RubyEventStore::Specification#of_types is deprecated and will be removed in the next major release.
|
|
303
|
-
|
|
304
|
-
Use #of_type instead.
|
|
305
|
-
EOW
|
|
306
|
-
of_type(*types)
|
|
307
|
-
end
|
|
308
|
-
|
|
309
291
|
# Limits the query to certain events by given even ids.
|
|
310
292
|
# {https://railseventstore.org/docs/core-concepts/read Find out more}.
|
|
311
293
|
#
|
|
@@ -2,30 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
4
|
class SyncScheduler
|
|
5
|
-
DEPRECATION_MESSAGE = <<~EOW
|
|
6
|
-
DEPRECATION WARNING: Passing a class as a subscriber is deprecated and will be removed in the next major release.
|
|
7
|
-
Pass an instance or lambda instead, e.g. subscribe(MyHandler.new, to: [MyEvent]).
|
|
8
|
-
EOW
|
|
9
|
-
|
|
10
5
|
def call(subscriber, event, _)
|
|
11
|
-
if Class === subscriber
|
|
12
|
-
warn DEPRECATION_MESSAGE
|
|
13
|
-
subscriber = subscriber.new
|
|
14
|
-
end
|
|
15
6
|
subscriber.call(event)
|
|
16
7
|
end
|
|
17
8
|
|
|
18
9
|
def verify(subscriber)
|
|
19
|
-
|
|
20
|
-
warn DEPRECATION_MESSAGE
|
|
21
|
-
begin
|
|
22
|
-
subscriber.new.respond_to?(:call)
|
|
23
|
-
rescue ArgumentError
|
|
24
|
-
false
|
|
25
|
-
end
|
|
26
|
-
else
|
|
27
|
-
subscriber.respond_to?(:call)
|
|
28
|
-
end
|
|
10
|
+
subscriber.respond_to?(:call)
|
|
29
11
|
end
|
|
30
12
|
end
|
|
31
13
|
end
|
data/lib/ruby_event_store.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative "ruby_event_store/deprecations"
|
|
3
4
|
require_relative "ruby_event_store/sync_scheduler"
|
|
4
|
-
require_relative "ruby_event_store/dispatcher"
|
|
5
5
|
require_relative "ruby_event_store/subscriptions"
|
|
6
6
|
require_relative "ruby_event_store/broker"
|
|
7
7
|
require_relative "ruby_event_store/in_memory_repository"
|
|
@@ -24,7 +24,6 @@ require_relative "ruby_event_store/mappers/encryption_key"
|
|
|
24
24
|
require_relative "ruby_event_store/mappers/in_memory_encryption_key_repository"
|
|
25
25
|
require_relative "ruby_event_store/mappers/transformation/domain_event"
|
|
26
26
|
require_relative "ruby_event_store/mappers/transformation/encryption"
|
|
27
|
-
require_relative "ruby_event_store/mappers/transformation/event_class_remapper"
|
|
28
27
|
require_relative "ruby_event_store/mappers/transformation/upcast"
|
|
29
28
|
require_relative "ruby_event_store/mappers/transformation/stringify_metadata_keys"
|
|
30
29
|
require_relative "ruby_event_store/mappers/transformation/symbolize_metadata_keys"
|
|
@@ -37,14 +36,11 @@ require_relative "ruby_event_store/mappers/forgotten_data"
|
|
|
37
36
|
require_relative "ruby_event_store/mappers/encryption_mapper"
|
|
38
37
|
require_relative "ruby_event_store/mappers/instrumented_mapper"
|
|
39
38
|
require_relative "ruby_event_store/mappers/instrumented_batch_mapper"
|
|
40
|
-
require_relative "ruby_event_store/mappers/json_mapper"
|
|
41
|
-
require_relative "ruby_event_store/mappers/null_mapper"
|
|
42
39
|
require_relative "ruby_event_store/serializers/yaml"
|
|
43
40
|
require_relative "ruby_event_store/batch_enumerator"
|
|
44
41
|
require_relative "ruby_event_store/correlated_commands"
|
|
45
42
|
require_relative "ruby_event_store/link_by_metadata"
|
|
46
43
|
require_relative "ruby_event_store/immediate_dispatcher"
|
|
47
|
-
require_relative "ruby_event_store/immediate_async_dispatcher"
|
|
48
44
|
require_relative "ruby_event_store/composed_dispatcher"
|
|
49
45
|
require_relative "ruby_event_store/composed_broker"
|
|
50
46
|
require_relative "ruby_event_store/version"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_event_store
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arkency
|
|
@@ -47,12 +47,11 @@ files:
|
|
|
47
47
|
- lib/ruby_event_store/composed_dispatcher.rb
|
|
48
48
|
- lib/ruby_event_store/constants.rb
|
|
49
49
|
- lib/ruby_event_store/correlated_commands.rb
|
|
50
|
-
- lib/ruby_event_store/
|
|
50
|
+
- lib/ruby_event_store/deprecations.rb
|
|
51
51
|
- lib/ruby_event_store/errors.rb
|
|
52
52
|
- lib/ruby_event_store/event.rb
|
|
53
53
|
- lib/ruby_event_store/event_type_resolver.rb
|
|
54
54
|
- lib/ruby_event_store/expected_version.rb
|
|
55
|
-
- lib/ruby_event_store/immediate_async_dispatcher.rb
|
|
56
55
|
- lib/ruby_event_store/immediate_dispatcher.rb
|
|
57
56
|
- lib/ruby_event_store/in_memory_repository.rb
|
|
58
57
|
- lib/ruby_event_store/instrumented_broker.rb
|
|
@@ -68,13 +67,10 @@ files:
|
|
|
68
67
|
- lib/ruby_event_store/mappers/in_memory_encryption_key_repository.rb
|
|
69
68
|
- lib/ruby_event_store/mappers/instrumented_batch_mapper.rb
|
|
70
69
|
- lib/ruby_event_store/mappers/instrumented_mapper.rb
|
|
71
|
-
- lib/ruby_event_store/mappers/json_mapper.rb
|
|
72
|
-
- lib/ruby_event_store/mappers/null_mapper.rb
|
|
73
70
|
- lib/ruby_event_store/mappers/pipeline.rb
|
|
74
71
|
- lib/ruby_event_store/mappers/pipeline_mapper.rb
|
|
75
72
|
- lib/ruby_event_store/mappers/transformation/domain_event.rb
|
|
76
73
|
- lib/ruby_event_store/mappers/transformation/encryption.rb
|
|
77
|
-
- lib/ruby_event_store/mappers/transformation/event_class_remapper.rb
|
|
78
74
|
- lib/ruby_event_store/mappers/transformation/preserve_types.rb
|
|
79
75
|
- lib/ruby_event_store/mappers/transformation/stringify_metadata_keys.rb
|
|
80
76
|
- lib/ruby_event_store/mappers/transformation/symbolize_metadata_keys.rb
|
|
@@ -123,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
123
119
|
- !ruby/object:Gem::Version
|
|
124
120
|
version: '0'
|
|
125
121
|
requirements: []
|
|
126
|
-
rubygems_version:
|
|
122
|
+
rubygems_version: 3.7.1
|
|
127
123
|
specification_version: 4
|
|
128
124
|
summary: Implementation of an event store in Ruby
|
|
129
125
|
test_files: []
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyEventStore
|
|
4
|
-
class Dispatcher < SyncScheduler
|
|
5
|
-
def initialize
|
|
6
|
-
warn <<~EOW
|
|
7
|
-
DEPRECATION WARNING: `RubyEventStore::Dispatcher` is deprecated and will be removed in the next major release.
|
|
8
|
-
Use `RubyEventStore::SyncScheduler` instead.
|
|
9
|
-
EOW
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyEventStore
|
|
4
|
-
class ImmediateAsyncDispatcher < ImmediateDispatcher
|
|
5
|
-
def initialize(scheduler:)
|
|
6
|
-
warn <<~EOW
|
|
7
|
-
DEPRECATION WARNING: `RubyEventStore::ImmediateAsyncDispatcher` is deprecated and will be removed in the next major release.
|
|
8
|
-
Use `RubyEventStore::ImmediateDispatcher` instead.
|
|
9
|
-
EOW
|
|
10
|
-
super
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyEventStore
|
|
4
|
-
module Mappers
|
|
5
|
-
class JSONMapper < Default
|
|
6
|
-
def initialize(events_class_remapping: {})
|
|
7
|
-
warn <<~EOW
|
|
8
|
-
Please replace RubyEventStore::Mappers::JSONMapper with RubyEventStore::Mappers::Default
|
|
9
|
-
|
|
10
|
-
They're now identical and the former will be removed in next major release.
|
|
11
|
-
EOW
|
|
12
|
-
super
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyEventStore
|
|
4
|
-
module Mappers
|
|
5
|
-
class NullMapper < PipelineMapper
|
|
6
|
-
def initialize
|
|
7
|
-
warn <<~EOW
|
|
8
|
-
DEPRECATION WARNING: `RubyEventStore::Mappers::NullMapper` is deprecated and will be removed in the next major release.
|
|
9
|
-
Use `RubyEventStore::Mappers::Default.new` instead.
|
|
10
|
-
EOW
|
|
11
|
-
super(Pipeline.new)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyEventStore
|
|
4
|
-
module Mappers
|
|
5
|
-
module Transformation
|
|
6
|
-
class EventClassRemapper
|
|
7
|
-
def initialize(class_map)
|
|
8
|
-
warn <<~EOW
|
|
9
|
-
DEPRECATION WARNING: `RubyEventStore::Mappers::Transformation::EventClassRemapper` is deprecated and will be removed in the next major release.
|
|
10
|
-
Use `RubyEventStore::Mappers::Transformation::Upcast` instead.
|
|
11
|
-
EOW
|
|
12
|
-
@class_map = class_map
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def dump(record)
|
|
16
|
-
record
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def load(record)
|
|
20
|
-
Record.new(
|
|
21
|
-
event_id: record.event_id,
|
|
22
|
-
event_type: class_map[record.event_type] || record.event_type,
|
|
23
|
-
data: record.data,
|
|
24
|
-
metadata: record.metadata,
|
|
25
|
-
timestamp: record.timestamp,
|
|
26
|
-
valid_at: record.valid_at,
|
|
27
|
-
)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
|
|
32
|
-
attr_reader :class_map
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|