ruby_event_store 2.19.1 → 2.19.2
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/client.rb +8 -11
- data/lib/ruby_event_store/deprecated.rb +98 -0
- data/lib/ruby_event_store/deprecations.rb +63 -0
- data/lib/ruby_event_store/dispatcher.rb +0 -6
- data/lib/ruby_event_store/immediate_async_dispatcher.rb +0 -7
- data/lib/ruby_event_store/in_memory_repository.rb +2 -4
- data/lib/ruby_event_store/instrumented_broker.rb +6 -10
- data/lib/ruby_event_store/instrumented_dispatcher.rb +1 -7
- data/lib/ruby_event_store/instrumented_repository.rb +15 -14
- data/lib/ruby_event_store/mappers/default.rb +1 -4
- data/lib/ruby_event_store/mappers/instrumented_batch_mapper.rb +1 -7
- data/lib/ruby_event_store/mappers/instrumented_mapper.rb +14 -21
- data/lib/ruby_event_store/mappers/null_mapper.rb +0 -4
- data/lib/ruby_event_store/mappers/transformation/event_class_remapper.rb +0 -4
- data/lib/ruby_event_store/projection.rb +15 -30
- data/lib/ruby_event_store/specification.rb +0 -10
- data/lib/ruby_event_store/sync_scheduler.rb +2 -7
- data/lib/ruby_event_store/version.rb +1 -1
- data/lib/ruby_event_store.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a38be596490cc7feffdf26968a8175a2a1606ba567f448382b2aecfe2e78ebd9
|
|
4
|
+
data.tar.gz: c64882bef174236d979680f84ed1d16b37f8ef2ba2a48b50a49d55286cff523e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 07a6509f6ac818e525834d0bae05b297ef2802643fee60cc45024cf3ea2faf49744f26dfe31896be18274dfc83e4a6be62abef1cb6faa27c67b8de8664998d11
|
|
7
|
+
data.tar.gz: f4846eedf860127e23bcdc38c37b13028896b39836a3af75689943de59bbdf633d7b2dd0e30cade9728486710cc2395db99ec4adef98a60fcfbdb4c494724e3f
|
|
@@ -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,9 @@ 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
|
|
102
|
+
warn <<~EOW if event_ids.nil? || Array(event_ids).any?(&:nil?)
|
|
103
103
|
Passing `nil` to link is deprecated and will raise ArgumentError in RubyEventStore 3.0.
|
|
104
104
|
EOW
|
|
105
|
-
end
|
|
106
105
|
@repository.link_to_stream(Array(event_ids), Stream.new(stream_name), ExpectedVersion.new(expected_version))
|
|
107
106
|
self
|
|
108
107
|
end
|
|
@@ -385,11 +384,9 @@ module RubyEventStore
|
|
|
385
384
|
end
|
|
386
385
|
|
|
387
386
|
def enrich_events_metadata(events)
|
|
388
|
-
if events.nil? || Array(events).any?(&:nil?)
|
|
389
|
-
warn <<~EOW
|
|
387
|
+
warn <<~EOW if events.nil? || Array(events).any?(&:nil?)
|
|
390
388
|
Passing `nil` to publish/append is deprecated and will raise ArgumentError in RubyEventStore 3.0.
|
|
391
389
|
EOW
|
|
392
|
-
end
|
|
393
390
|
events = Array(events)
|
|
394
391
|
events.each { |event| enrich_event_metadata(event) }
|
|
395
392
|
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyEventStore
|
|
4
|
+
Deprecations.register(
|
|
5
|
+
:dispatcher_renamed,
|
|
6
|
+
"`RubyEventStore::Dispatcher` is deprecated and will be removed in the next major release.\n" \
|
|
7
|
+
"Use `RubyEventStore::SyncScheduler` instead.",
|
|
8
|
+
)
|
|
9
|
+
Deprecations.deprecate(Dispatcher, :initialize, key: :dispatcher_renamed)
|
|
10
|
+
|
|
11
|
+
Deprecations.register(
|
|
12
|
+
:immediate_async_dispatcher_renamed,
|
|
13
|
+
"`RubyEventStore::ImmediateAsyncDispatcher` is deprecated and will be removed in the next major release.\n" \
|
|
14
|
+
"Use `RubyEventStore::ImmediateDispatcher` instead.",
|
|
15
|
+
)
|
|
16
|
+
Deprecations.deprecate(ImmediateAsyncDispatcher, :initialize, key: :immediate_async_dispatcher_renamed)
|
|
17
|
+
|
|
18
|
+
Deprecations.register(
|
|
19
|
+
:class_subscriber,
|
|
20
|
+
"Passing a class as a subscriber is deprecated and will be removed in the next major release.\n" \
|
|
21
|
+
"Pass an instance or lambda instead, e.g. subscribe(MyHandler.new, to: [MyEvent]).",
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
Deprecations.register(
|
|
25
|
+
:null_mapper,
|
|
26
|
+
"`RubyEventStore::Mappers::NullMapper` is deprecated and will be removed in the next major release.\n" \
|
|
27
|
+
"Use `RubyEventStore::Mappers::Default.new` instead.",
|
|
28
|
+
)
|
|
29
|
+
Deprecations.deprecate(Mappers::NullMapper, :initialize, key: :null_mapper)
|
|
30
|
+
|
|
31
|
+
Deprecations.register(
|
|
32
|
+
:events_class_remapping_option,
|
|
33
|
+
"`events_class_remapping` option in `RubyEventStore::Mappers::Default` is deprecated and will be removed in the next major release.\n" \
|
|
34
|
+
"Use `RubyEventStore::Mappers::Transformation::Upcast` instead.",
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
Deprecations.register(
|
|
38
|
+
:event_class_remapper,
|
|
39
|
+
"`RubyEventStore::Mappers::Transformation::EventClassRemapper` is deprecated and will be removed in the next major release.\n" \
|
|
40
|
+
"Use `RubyEventStore::Mappers::Transformation::Upcast` instead.",
|
|
41
|
+
)
|
|
42
|
+
Deprecations.deprecate(Mappers::Transformation::EventClassRemapper, :initialize, key: :event_class_remapper)
|
|
43
|
+
|
|
44
|
+
Deprecations.register(
|
|
45
|
+
:any_version_with_specific_position,
|
|
46
|
+
"Mixing expected version :any and specific position (or :auto) is deprecated and will raise UnsupportedVersionAnyUsage in RubyEventStore 3.0.",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
Deprecations.register(
|
|
50
|
+
:projection_new_constructor,
|
|
51
|
+
"RubyEventStore::Projection.new is deprecated and will be removed in the next major release.\n" \
|
|
52
|
+
"Use Projection.init(initial_state) instead.",
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
Deprecations.register(
|
|
56
|
+
:projection_multiple_scopes,
|
|
57
|
+
"Passing multiple scopes to RubyEventStore::Projection#call is deprecated and will be removed in the next major release.\n" \
|
|
58
|
+
"Use a single scope instead, e.g. call(event_store.read.stream(\"stream_name\")).",
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
Deprecations.register(
|
|
62
|
+
:projection_old_api,
|
|
63
|
+
"RubyEventStore::Projection from_stream/from_all_streams/init/when/run API is deprecated and will be removed in the next major release.\n" \
|
|
64
|
+
"Use Projection.init(initial_state).on(EventClass) { |state, event| new_state }.call(scope) instead.",
|
|
65
|
+
)
|
|
66
|
+
Deprecations.deprecate_class_method(Projection, :from_stream, key: :projection_old_api)
|
|
67
|
+
Deprecations.deprecate_class_method(Projection, :from_all_streams, key: :projection_old_api)
|
|
68
|
+
Deprecations.deprecate(Projection, :init, key: :projection_old_api)
|
|
69
|
+
Deprecations.deprecate(Projection, :when, key: :projection_old_api)
|
|
70
|
+
Deprecations.deprecate(Projection, :run, key: :projection_old_api)
|
|
71
|
+
|
|
72
|
+
Deprecations.register(
|
|
73
|
+
:instrumentation_renamed,
|
|
74
|
+
"Instrumentation event names *.rails_event_store are deprecated and will be removed in the next major release.\n" \
|
|
75
|
+
"Use *.ruby_event_store instead.",
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
Deprecations.register(
|
|
79
|
+
:instrumented_mapper_serialize_deprecated,
|
|
80
|
+
"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.\n" \
|
|
81
|
+
"Use event_to_record.mapper.ruby_event_store and record_to_event.mapper.ruby_event_store instead.\n" \
|
|
82
|
+
"The domain_event: payload key in serialize.mapper.ruby_event_store has been renamed to event: in event_to_record.mapper.ruby_event_store.",
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
Deprecations.register(
|
|
86
|
+
:specification_in_batches_of,
|
|
87
|
+
"RubyEventStore::Specification#in_batches_of is deprecated and will be removed in the next major release.\n\n" \
|
|
88
|
+
"Use #in_batches instead.",
|
|
89
|
+
)
|
|
90
|
+
Deprecations.deprecate(Specification, :in_batches_of, key: :specification_in_batches_of)
|
|
91
|
+
|
|
92
|
+
Deprecations.register(
|
|
93
|
+
:specification_of_types,
|
|
94
|
+
"RubyEventStore::Specification#of_types is deprecated and will be removed in the next major release.\n\n" \
|
|
95
|
+
"Use #of_type instead.",
|
|
96
|
+
)
|
|
97
|
+
Deprecations.deprecate(Specification, :of_types, key: :specification_of_types)
|
|
98
|
+
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
|
|
@@ -2,11 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
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
5
|
end
|
|
12
6
|
end
|
|
@@ -2,12 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
module RubyEventStore
|
|
4
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
5
|
end
|
|
13
6
|
end
|
|
@@ -237,15 +237,13 @@ module RubyEventStore
|
|
|
237
237
|
stream_positions = streams.fetch(stream.name, Array.new).map(&:position)
|
|
238
238
|
violation =
|
|
239
239
|
(resolved_version.nil? && !stream_positions.compact.empty?) ||
|
|
240
|
-
|
|
240
|
+
(!resolved_version.nil? && stream_positions.include?(nil))
|
|
241
241
|
|
|
242
242
|
if violation
|
|
243
243
|
if @ensure_supported_any_usage
|
|
244
244
|
raise UnsupportedVersionAnyUsage
|
|
245
245
|
else
|
|
246
|
-
warn
|
|
247
|
-
Mixing expected version :any and specific position (or :auto) is deprecated and will raise UnsupportedVersionAnyUsage in RubyEventStore 3.0.
|
|
248
|
-
EOW
|
|
246
|
+
Deprecations.warn(:any_version_with_specific_position)
|
|
249
247
|
end
|
|
250
248
|
end
|
|
251
249
|
end
|
|
@@ -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
|
|
@@ -52,9 +46,11 @@ module RubyEventStore
|
|
|
52
46
|
subscriber: subscriber,
|
|
53
47
|
topics: topics,
|
|
54
48
|
) do
|
|
55
|
-
deprecated_instrument(
|
|
56
|
-
broker.
|
|
57
|
-
|
|
49
|
+
deprecated_instrument(
|
|
50
|
+
"add_thread_subscription.broker.rails_event_store",
|
|
51
|
+
subscriber: subscriber,
|
|
52
|
+
topics: topics,
|
|
53
|
+
) { broker.add_thread_subscription(subscriber, topics) }
|
|
58
54
|
end
|
|
59
55
|
end
|
|
60
56
|
|
|
@@ -95,7 +91,7 @@ module RubyEventStore
|
|
|
95
91
|
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
96
92
|
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
97
93
|
if (old_listeners - new_listeners).any?
|
|
98
|
-
warn
|
|
94
|
+
Deprecations.warn(:instrumentation_renamed)
|
|
99
95
|
instrumentation.instrument(name, payload, &block)
|
|
100
96
|
else
|
|
101
97
|
yield
|
|
@@ -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
|
|
@@ -42,7 +36,7 @@ module RubyEventStore
|
|
|
42
36
|
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
43
37
|
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
44
38
|
if (old_listeners - new_listeners).any?
|
|
45
|
-
warn
|
|
39
|
+
Deprecations.warn(:instrumentation_renamed)
|
|
46
40
|
instrumentation.instrument(name, payload, &block)
|
|
47
41
|
else
|
|
48
42
|
yield
|
|
@@ -2,22 +2,22 @@
|
|
|
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
|
-
|
|
11
|
+
instrumentation.instrument(
|
|
12
|
+
"append_to_stream.repository.ruby_event_store",
|
|
13
|
+
records: records,
|
|
14
|
+
events: records,
|
|
15
|
+
stream: stream,
|
|
16
|
+
) do
|
|
17
|
+
deprecated_instrument(
|
|
18
|
+
"append_to_stream.repository.rails_event_store",
|
|
19
|
+
{ records: records, events: records, stream: stream },
|
|
20
|
+
) { repository.append_to_stream(records, stream, expected_version) }
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -55,9 +55,10 @@ module RubyEventStore
|
|
|
55
55
|
|
|
56
56
|
def update_messages(records)
|
|
57
57
|
instrumentation.instrument("update_messages.repository.ruby_event_store", records: records, messages: records) do
|
|
58
|
-
deprecated_instrument(
|
|
59
|
-
repository.
|
|
60
|
-
|
|
58
|
+
deprecated_instrument(
|
|
59
|
+
"update_messages.repository.rails_event_store",
|
|
60
|
+
{ records: records, messages: records },
|
|
61
|
+
) { repository.update_messages(records) }
|
|
61
62
|
end
|
|
62
63
|
end
|
|
63
64
|
|
|
@@ -90,7 +91,7 @@ module RubyEventStore
|
|
|
90
91
|
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
91
92
|
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
92
93
|
if (old_listeners - new_listeners).any?
|
|
93
|
-
warn
|
|
94
|
+
Deprecations.warn(:instrumentation_renamed)
|
|
94
95
|
instrumentation.instrument(name, payload, &block)
|
|
95
96
|
else
|
|
96
97
|
yield
|
|
@@ -5,10 +5,7 @@ module RubyEventStore
|
|
|
5
5
|
class Default < PipelineMapper
|
|
6
6
|
def initialize(events_class_remapping: {})
|
|
7
7
|
if events_class_remapping.any?
|
|
8
|
-
warn
|
|
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
|
|
8
|
+
Deprecations.warn(:events_class_remapping_option)
|
|
12
9
|
super(
|
|
13
10
|
Pipeline.new(
|
|
14
11
|
Transformation::EventClassRemapper.new(events_class_remapping),
|
|
@@ -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
|
|
@@ -39,7 +33,7 @@ module RubyEventStore
|
|
|
39
33
|
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
40
34
|
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
41
35
|
if (old_listeners - new_listeners).any?
|
|
42
|
-
warn
|
|
36
|
+
Deprecations.warn(:instrumentation_renamed)
|
|
43
37
|
instrumentation.instrument(name, payload, &block)
|
|
44
38
|
else
|
|
45
39
|
yield
|
|
@@ -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,9 +10,12 @@ 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
|
-
deprecated_instrument(
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
deprecated_instrument(
|
|
14
|
+
"serialize.mapper.ruby_event_store",
|
|
15
|
+
{ domain_event: event },
|
|
16
|
+
canonical: "event_to_record.mapper.ruby_event_store",
|
|
17
|
+
key: :instrumented_mapper_serialize_deprecated,
|
|
18
|
+
) do
|
|
29
19
|
deprecated_instrument("serialize.mapper.rails_event_store", { domain_event: event }) do
|
|
30
20
|
mapper.event_to_record(event)
|
|
31
21
|
end
|
|
@@ -35,9 +25,12 @@ module RubyEventStore
|
|
|
35
25
|
|
|
36
26
|
def record_to_event(record)
|
|
37
27
|
instrumentation.instrument("record_to_event.mapper.ruby_event_store", record: record) do
|
|
38
|
-
deprecated_instrument(
|
|
39
|
-
|
|
40
|
-
|
|
28
|
+
deprecated_instrument(
|
|
29
|
+
"deserialize.mapper.ruby_event_store",
|
|
30
|
+
{ record: record },
|
|
31
|
+
canonical: "record_to_event.mapper.ruby_event_store",
|
|
32
|
+
key: :instrumented_mapper_serialize_deprecated,
|
|
33
|
+
) do
|
|
41
34
|
deprecated_instrument("deserialize.mapper.rails_event_store", { record: record }) do
|
|
42
35
|
mapper.record_to_event(record)
|
|
43
36
|
end
|
|
@@ -49,12 +42,12 @@ module RubyEventStore
|
|
|
49
42
|
|
|
50
43
|
attr_reader :instrumentation, :mapper
|
|
51
44
|
|
|
52
|
-
def deprecated_instrument(name, payload, canonical: nil,
|
|
45
|
+
def deprecated_instrument(name, payload, canonical: nil, key: :instrumentation_renamed, &block)
|
|
53
46
|
canonical_name = canonical || name.sub("rails_event_store", "ruby_event_store")
|
|
54
47
|
old_listeners = instrumentation.notifier.all_listeners_for(name)
|
|
55
48
|
new_listeners = instrumentation.notifier.all_listeners_for(canonical_name)
|
|
56
49
|
if (old_listeners - new_listeners).any?
|
|
57
|
-
warn
|
|
50
|
+
Deprecations.warn(key)
|
|
58
51
|
instrumentation.instrument(name, payload, &block)
|
|
59
52
|
else
|
|
60
53
|
yield
|
|
@@ -4,10 +4,6 @@ module RubyEventStore
|
|
|
4
4
|
module Mappers
|
|
5
5
|
class NullMapper < PipelineMapper
|
|
6
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
7
|
super(Pipeline.new)
|
|
12
8
|
end
|
|
13
9
|
end
|
|
@@ -5,10 +5,6 @@ module RubyEventStore
|
|
|
5
5
|
module Transformation
|
|
6
6
|
class EventClassRemapper
|
|
7
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
8
|
@class_map = class_map
|
|
13
9
|
end
|
|
14
10
|
|
|
@@ -3,22 +3,10 @@
|
|
|
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
8
|
def initialize(initial_state = nil, _internal: false)
|
|
21
|
-
warn
|
|
9
|
+
Deprecations.warn(:projection_new_constructor) unless _internal
|
|
22
10
|
@handlers = {}
|
|
23
11
|
@init = -> { initial_state }
|
|
24
12
|
@streams = []
|
|
@@ -43,15 +31,12 @@ module RubyEventStore
|
|
|
43
31
|
def call(*scopes)
|
|
44
32
|
return initial_state if handled_events.empty?
|
|
45
33
|
|
|
46
|
-
warn
|
|
34
|
+
Deprecations.warn(:projection_multiple_scopes) if scopes.size > 1
|
|
47
35
|
|
|
48
|
-
scopes.reduce(initial_state)
|
|
49
|
-
scope.of_type(handled_events).reduce(state, &method(:transition))
|
|
50
|
-
end
|
|
36
|
+
scopes.reduce(initial_state) { |state, scope| scope.of_type(handled_events).reduce(state, &method(:transition)) }
|
|
51
37
|
end
|
|
52
38
|
|
|
53
39
|
def self.from_stream(stream_or_streams)
|
|
54
|
-
warn DEPRECATION_MESSAGE
|
|
55
40
|
streams = Array(stream_or_streams)
|
|
56
41
|
raise(ArgumentError, "At least one stream must be given") if streams.empty?
|
|
57
42
|
projection = new(_internal: true)
|
|
@@ -60,36 +45,36 @@ module RubyEventStore
|
|
|
60
45
|
end
|
|
61
46
|
|
|
62
47
|
def self.from_all_streams
|
|
63
|
-
warn DEPRECATION_MESSAGE
|
|
64
48
|
new(_internal: true)
|
|
65
49
|
end
|
|
66
50
|
|
|
67
51
|
def init(handler)
|
|
68
|
-
warn DEPRECATION_MESSAGE
|
|
69
52
|
@init = handler
|
|
70
53
|
self
|
|
71
54
|
end
|
|
72
55
|
|
|
73
56
|
def when(events, handler)
|
|
74
|
-
warn DEPRECATION_MESSAGE
|
|
75
57
|
Array(events).each do |event_klass|
|
|
76
58
|
name = event_klass.to_s
|
|
77
|
-
@handlers[name] = ->(state, event)
|
|
59
|
+
@handlers[name] = ->(state, event) do
|
|
60
|
+
handler.call(state, event)
|
|
61
|
+
state
|
|
62
|
+
end
|
|
78
63
|
end
|
|
79
64
|
self
|
|
80
65
|
end
|
|
81
66
|
|
|
82
67
|
def run(event_store, start: nil, count: PAGE_SIZE)
|
|
83
|
-
warn DEPRECATION_MESSAGE
|
|
84
|
-
|
|
85
68
|
if @streams.any?
|
|
86
69
|
raise ArgumentError, "Start must be an array with event ids" unless valid_start_for_streams?(start)
|
|
87
70
|
scopes =
|
|
88
|
-
@streams
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
71
|
+
@streams
|
|
72
|
+
.zip(start || [])
|
|
73
|
+
.map do |stream, start_event_id|
|
|
74
|
+
scope = event_store.read.stream(stream).in_batches(count)
|
|
75
|
+
scope = scope.from(start_event_id) if start_event_id
|
|
76
|
+
scope
|
|
77
|
+
end
|
|
93
78
|
else
|
|
94
79
|
raise ArgumentError, "Start must be valid event id" unless valid_start_for_all_streams?(start)
|
|
95
80
|
scope = event_store.read.in_batches(count)
|
|
@@ -246,11 +246,6 @@ module RubyEventStore
|
|
|
246
246
|
end
|
|
247
247
|
|
|
248
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
249
|
in_batches(batch_size)
|
|
255
250
|
end
|
|
256
251
|
|
|
@@ -298,11 +293,6 @@ module RubyEventStore
|
|
|
298
293
|
end
|
|
299
294
|
|
|
300
295
|
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
296
|
of_type(*types)
|
|
307
297
|
end
|
|
308
298
|
|
|
@@ -2,14 +2,9 @@
|
|
|
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
6
|
if Class === subscriber
|
|
12
|
-
warn
|
|
7
|
+
Deprecations.warn(:class_subscriber)
|
|
13
8
|
subscriber = subscriber.new
|
|
14
9
|
end
|
|
15
10
|
subscriber.call(event)
|
|
@@ -17,7 +12,7 @@ module RubyEventStore
|
|
|
17
12
|
|
|
18
13
|
def verify(subscriber)
|
|
19
14
|
if Class === subscriber
|
|
20
|
-
warn
|
|
15
|
+
Deprecations.warn(:class_subscriber)
|
|
21
16
|
begin
|
|
22
17
|
subscriber.new.respond_to?(:call)
|
|
23
18
|
rescue ArgumentError
|
data/lib/ruby_event_store.rb
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
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
5
|
require_relative "ruby_event_store/dispatcher"
|
|
5
6
|
require_relative "ruby_event_store/subscriptions"
|
|
@@ -53,3 +54,4 @@ require_relative "ruby_event_store/instrumented_dispatcher"
|
|
|
53
54
|
require_relative "ruby_event_store/instrumented_subscriptions"
|
|
54
55
|
require_relative "ruby_event_store/instrumented_broker"
|
|
55
56
|
require_relative "ruby_event_store/event_type_resolver"
|
|
57
|
+
require_relative "ruby_event_store/deprecated"
|
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: 2.19.
|
|
4
|
+
version: 2.19.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arkency
|
|
@@ -47,6 +47,8 @@ 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/deprecated.rb
|
|
51
|
+
- lib/ruby_event_store/deprecations.rb
|
|
50
52
|
- lib/ruby_event_store/dispatcher.rb
|
|
51
53
|
- lib/ruby_event_store/errors.rb
|
|
52
54
|
- lib/ruby_event_store/event.rb
|
|
@@ -123,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
123
125
|
- !ruby/object:Gem::Version
|
|
124
126
|
version: '0'
|
|
125
127
|
requirements: []
|
|
126
|
-
rubygems_version: 4.0.
|
|
128
|
+
rubygems_version: 4.0.10
|
|
127
129
|
specification_version: 4
|
|
128
130
|
summary: Implementation of an event store in Ruby
|
|
129
131
|
test_files: []
|