rails_event_store 2.16.0 → 2.17.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/generators/rails_event_store/bounded_context_generator.rb +1 -1
- data/lib/generators/rails_event_store/rspec_generator.rb +3 -3
- data/lib/generators/rails_event_store/test_unit_generator.rb +2 -2
- data/lib/rails_event_store/after_commit_async_dispatcher.rb +6 -3
- data/lib/rails_event_store/all.rb +1 -1
- data/lib/rails_event_store/async_handler_helpers.rb +7 -7
- data/lib/rails_event_store/client.rb +63 -11
- data/lib/rails_event_store/json_client.rb +48 -70
- data/lib/rails_event_store/version.rb +1 -1
- metadata +17 -17
- /data/lib/generators/templates/{bc_spec.rb → bc_spec.erb} +0 -0
- /data/lib/generators/templates/{module.rb → module.erb} +0 -0
- /data/lib/generators/templates/{require_bc_spec.rb → require_bc_spec.erb} +0 -0
- /data/lib/generators/templates/{require_bc_test.rb → require_bc_test.erb} +0 -0
- /data/lib/generators/templates/{spec_helper.rb → spec_helper.erb} +0 -0
- /data/lib/generators/templates/{test_helper.rb → test_helper.erb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcf4331ca95c4367a205cd887ab2dbbd72fb6871942d747c50f0459dc486268f
|
4
|
+
data.tar.gz: 548b8e0272378cc3ea5f0295c164ea1fe930491636d2f3fd0892e9b693cad45b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8eeb81eaa66884a4139f34bd737de32469c3e1bbb76b63935bbd383135379537427b26684cc951548fbee0a5a0b6cb339d67ae78a693b9d643658b9483f4997d
|
7
|
+
data.tar.gz: e4fa1bc07d76f0170ed2ed993cd0ba7edb48a5790d226ea0a88ec750689d719cb61d33b7d5856bf4fc039e44b4eed5026919fca84d35d4c6bbaa07b023295ad5
|
@@ -11,7 +11,7 @@ module RailsEventStore
|
|
11
11
|
def create_bounded_context
|
12
12
|
create_file "#{bounded_context_name}/lib/#{bounded_context_name}/.keep"
|
13
13
|
|
14
|
-
template "module.
|
14
|
+
template "module.erb", "#{bounded_context_name}/lib/#{bounded_context_name}.rb"
|
15
15
|
|
16
16
|
application { "config.paths.add '#{bounded_context_name}/lib', eager_load: true" }
|
17
17
|
end
|
@@ -8,15 +8,15 @@ module RailsEventStore
|
|
8
8
|
source_root File.expand_path(File.join(File.dirname(__FILE__), "../templates"))
|
9
9
|
|
10
10
|
def spec_helper
|
11
|
-
template "spec_helper.
|
11
|
+
template "spec_helper.erb", "#{bounded_context_name}/spec/spec_helper.rb"
|
12
12
|
end
|
13
13
|
|
14
14
|
def bc_spec
|
15
|
-
template "bc_spec.
|
15
|
+
template "bc_spec.erb", "#{bounded_context_name}/spec/#{bounded_context_name}_spec.rb"
|
16
16
|
end
|
17
17
|
|
18
18
|
def require_bc_spec
|
19
|
-
template "require_bc_spec.
|
19
|
+
template "require_bc_spec.erb", "spec/#{bounded_context_name}_spec.rb"
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
@@ -8,11 +8,11 @@ module RailsEventStore
|
|
8
8
|
source_root File.expand_path(File.join(File.dirname(__FILE__), "../templates"))
|
9
9
|
|
10
10
|
def test_helper
|
11
|
-
template "test_helper.
|
11
|
+
template "test_helper.erb", "#{bounded_context_name}/test/test_helper.rb"
|
12
12
|
end
|
13
13
|
|
14
14
|
def require_bc_test
|
15
|
-
template "require_bc_test.
|
15
|
+
template "require_bc_test.erb", "test/#{bounded_context_name}_test.rb"
|
16
16
|
end
|
17
17
|
|
18
18
|
private
|
@@ -37,11 +37,14 @@ module RailsEventStore
|
|
37
37
|
schedule_proc.call
|
38
38
|
end
|
39
39
|
|
40
|
-
def rolledback!(*)
|
40
|
+
def rolledback!(*)
|
41
|
+
end
|
41
42
|
|
42
|
-
def before_committed
|
43
|
+
def before_committed!
|
44
|
+
end
|
43
45
|
|
44
|
-
def trigger_transactional_callbacks
|
46
|
+
def trigger_transactional_callbacks?
|
47
|
+
end
|
45
48
|
|
46
49
|
attr_reader :schedule_proc
|
47
50
|
end
|
@@ -5,7 +5,7 @@ require_relative "async_handler_helpers"
|
|
5
5
|
require_relative "link_by_metadata"
|
6
6
|
require_relative "after_commit_async_dispatcher"
|
7
7
|
require_relative "active_job_scheduler"
|
8
|
-
require_relative
|
8
|
+
require_relative "active_job_id_only_scheduler"
|
9
9
|
require_relative "client"
|
10
10
|
require_relative "json_client"
|
11
11
|
require_relative "version"
|
@@ -13,8 +13,12 @@ module RailsEventStore
|
|
13
13
|
)
|
14
14
|
Module.new do
|
15
15
|
define_method :perform do |payload|
|
16
|
-
|
17
|
-
|
16
|
+
if Hash === payload
|
17
|
+
event_store = event_store_locator.call if event_store_locator
|
18
|
+
super(event_store.deserialize(serializer: serializer, **payload.transform_keys(&:to_sym)))
|
19
|
+
else
|
20
|
+
super(payload)
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
@@ -29,10 +33,7 @@ module RailsEventStore
|
|
29
33
|
with
|
30
34
|
end
|
31
35
|
|
32
|
-
def self.with(
|
33
|
-
event_store: Rails.configuration.event_store,
|
34
|
-
event_store_locator: nil
|
35
|
-
)
|
36
|
+
def self.with(event_store: Rails.configuration.event_store, event_store_locator: nil)
|
36
37
|
Module.new do
|
37
38
|
define_method :perform do |payload|
|
38
39
|
event_store = event_store_locator.call if event_store_locator
|
@@ -46,7 +47,6 @@ module RailsEventStore
|
|
46
47
|
end
|
47
48
|
end
|
48
49
|
|
49
|
-
|
50
50
|
module CorrelatedHandler
|
51
51
|
def perform(event)
|
52
52
|
Rails
|
@@ -5,28 +5,80 @@ module RailsEventStore
|
|
5
5
|
attr_reader :request_metadata
|
6
6
|
|
7
7
|
def initialize(
|
8
|
-
mapper: RubyEventStore::Mappers::
|
8
|
+
mapper: RubyEventStore::Mappers::BatchMapper.new,
|
9
9
|
repository: RubyEventStore::ActiveRecord::EventRepository.new(serializer: RubyEventStore::Serializers::YAML),
|
10
|
-
subscriptions:
|
11
|
-
dispatcher:
|
12
|
-
|
13
|
-
scheduler: ActiveJobScheduler.new(serializer: RubyEventStore::Serializers::YAML)
|
14
|
-
),
|
15
|
-
RubyEventStore::Dispatcher.new
|
16
|
-
),
|
10
|
+
subscriptions: nil,
|
11
|
+
dispatcher: nil,
|
12
|
+
message_broker: nil,
|
17
13
|
clock: default_clock,
|
18
14
|
correlation_id_generator: default_correlation_id_generator,
|
19
15
|
request_metadata: default_request_metadata
|
20
16
|
)
|
21
17
|
super(
|
22
18
|
repository: RubyEventStore::InstrumentedRepository.new(repository, ActiveSupport::Notifications),
|
23
|
-
mapper:
|
24
|
-
|
19
|
+
mapper:
|
20
|
+
(
|
21
|
+
if batch_mapper?(mapper)
|
22
|
+
RubyEventStore::Mappers::InstrumentedBatchMapper.new(mapper, ActiveSupport::Notifications)
|
23
|
+
else
|
24
|
+
RubyEventStore::Mappers::InstrumentedMapper.new(mapper, ActiveSupport::Notifications)
|
25
|
+
end
|
26
|
+
),
|
27
|
+
subscriptions: nil,
|
25
28
|
clock: clock,
|
26
29
|
correlation_id_generator: correlation_id_generator,
|
27
|
-
dispatcher:
|
30
|
+
dispatcher: nil,
|
31
|
+
message_broker:
|
32
|
+
RubyEventStore::InstrumentedBroker.new(
|
33
|
+
message_broker ||
|
34
|
+
RubyEventStore::Broker.new(
|
35
|
+
subscriptions:
|
36
|
+
RubyEventStore::InstrumentedSubscriptions.new(
|
37
|
+
subscriptions || RubyEventStore::Subscriptions.new,
|
38
|
+
ActiveSupport::Notifications,
|
39
|
+
),
|
40
|
+
dispatcher:
|
41
|
+
RubyEventStore::InstrumentedDispatcher.new(
|
42
|
+
dispatcher ||
|
43
|
+
RubyEventStore::ComposedDispatcher.new(
|
44
|
+
RailsEventStore::AfterCommitAsyncDispatcher.new(
|
45
|
+
scheduler: ActiveJobScheduler.new(serializer: RubyEventStore::Serializers::YAML),
|
46
|
+
),
|
47
|
+
RubyEventStore::Dispatcher.new,
|
48
|
+
),
|
49
|
+
ActiveSupport::Notifications,
|
50
|
+
),
|
51
|
+
),
|
52
|
+
ActiveSupport::Notifications,
|
53
|
+
),
|
28
54
|
)
|
29
55
|
@request_metadata = request_metadata
|
56
|
+
|
57
|
+
if (subscriptions || dispatcher)
|
58
|
+
warn <<~EOW
|
59
|
+
Passing subscriptions and dispatcher to #{self.class} has been deprecated.
|
60
|
+
|
61
|
+
Pass it using message_broker argument. For example:
|
62
|
+
|
63
|
+
event_store = #{self.class}.new(
|
64
|
+
message_broker: RubyEventStore::Broker.new(
|
65
|
+
subscriptions: RubyEventStore::Subscriptions.new,
|
66
|
+
dispatcher: RubyEventStore::ComposedDispatcher.new(
|
67
|
+
RailsEventStore::AfterCommitAsyncDispatcher.new(
|
68
|
+
scheduler: RailsEventStore::ActiveJobScheduler.new(serializer: RubyEventStore::Serializers::YAML)
|
69
|
+
),
|
70
|
+
RubyEventStore::Dispatcher.new
|
71
|
+
)
|
72
|
+
)
|
73
|
+
)
|
74
|
+
EOW
|
75
|
+
|
76
|
+
warn <<~EOW if (message_broker)
|
77
|
+
|
78
|
+
Because message_broker has been provided,
|
79
|
+
arguments passed by subscriptions or dispatcher will be ignored.
|
80
|
+
EOW
|
81
|
+
end
|
30
82
|
end
|
31
83
|
|
32
84
|
def with_request_metadata(env, &block)
|
@@ -1,84 +1,62 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "json"
|
4
|
+
|
3
5
|
module RailsEventStore
|
4
6
|
class JSONClient < Client
|
5
7
|
def initialize(
|
6
|
-
mapper: RubyEventStore::Mappers::
|
7
|
-
RubyEventStore::Mappers::
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
OpenStruct => {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
RubyEventStore::Mappers::Transformation::PreserveTypes.new,
|
48
|
-
) { |preserve_types, (klass, options)| preserve_types.register(klass, **options) },
|
49
|
-
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
|
50
|
-
),
|
51
|
-
),
|
52
|
-
repository: RubyEventStore::ActiveRecord::EventRepository.new(
|
53
|
-
serializer: RubyEventStore::NULL,
|
54
|
-
),
|
55
|
-
subscriptions: RubyEventStore::Subscriptions.new,
|
56
|
-
dispatcher: RubyEventStore::ComposedDispatcher.new(
|
57
|
-
RailsEventStore::AfterCommitAsyncDispatcher.new(
|
58
|
-
scheduler: ActiveJobScheduler.new(serializer: RubyEventStore::Serializers::YAML),
|
8
|
+
mapper: RubyEventStore::Mappers::BatchMapper.new(
|
9
|
+
RubyEventStore::Mappers::PipelineMapper.new(
|
10
|
+
RubyEventStore::Mappers::Pipeline.new(
|
11
|
+
{
|
12
|
+
Symbol => {
|
13
|
+
serializer: ->(v) { v.to_s },
|
14
|
+
deserializer: ->(v) { v.to_sym },
|
15
|
+
},
|
16
|
+
Time => {
|
17
|
+
serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
|
18
|
+
deserializer: ->(v) { Time.iso8601(v) },
|
19
|
+
},
|
20
|
+
ActiveSupport::TimeWithZone => {
|
21
|
+
serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
|
22
|
+
deserializer: ->(v) { Time.iso8601(v).in_time_zone },
|
23
|
+
stored_type: ->(*) { "ActiveSupport::TimeWithZone" },
|
24
|
+
},
|
25
|
+
Date => {
|
26
|
+
serializer: ->(v) { v.iso8601 },
|
27
|
+
deserializer: ->(v) { Date.iso8601(v) },
|
28
|
+
},
|
29
|
+
DateTime => {
|
30
|
+
serializer: ->(v) { v.iso8601 },
|
31
|
+
deserializer: ->(v) { DateTime.iso8601(v) },
|
32
|
+
},
|
33
|
+
BigDecimal => {
|
34
|
+
serializer: ->(v) { v.to_s },
|
35
|
+
deserializer: ->(v) { BigDecimal(v) },
|
36
|
+
},
|
37
|
+
}.merge(
|
38
|
+
if defined?(OpenStruct)
|
39
|
+
{ OpenStruct => { serializer: ->(v) { v.to_h }, deserializer: ->(v) { OpenStruct.new(v) } } }
|
40
|
+
else
|
41
|
+
{}
|
42
|
+
end,
|
43
|
+
)
|
44
|
+
.reduce(RubyEventStore::Mappers::Transformation::PreserveTypes.new) do |preserve_types, (klass, options)|
|
45
|
+
preserve_types.register(klass, **options)
|
46
|
+
end,
|
47
|
+
RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new,
|
48
|
+
),
|
59
49
|
),
|
60
|
-
RubyEventStore::Dispatcher.new,
|
61
50
|
),
|
51
|
+
repository: RubyEventStore::ActiveRecord::EventRepository.new(serializer: JSON),
|
52
|
+
subscriptions: nil,
|
53
|
+
dispatcher: nil,
|
54
|
+
message_broker: nil,
|
62
55
|
clock: default_clock,
|
63
56
|
correlation_id_generator: default_correlation_id_generator,
|
64
57
|
request_metadata: default_request_metadata
|
65
58
|
)
|
66
|
-
super
|
67
|
-
mapper:
|
68
|
-
RubyEventStore::Mappers::InstrumentedMapper.new(mapper, ActiveSupport::Notifications),
|
69
|
-
repository:
|
70
|
-
RubyEventStore::InstrumentedRepository.new(repository, ActiveSupport::Notifications),
|
71
|
-
subscriptions:
|
72
|
-
RubyEventStore::InstrumentedSubscriptions.new(
|
73
|
-
subscriptions,
|
74
|
-
ActiveSupport::Notifications,
|
75
|
-
),
|
76
|
-
clock: clock,
|
77
|
-
correlation_id_generator: correlation_id_generator,
|
78
|
-
dispatcher:
|
79
|
-
RubyEventStore::InstrumentedDispatcher.new(dispatcher, ActiveSupport::Notifications),
|
80
|
-
)
|
81
|
-
@request_metadata = request_metadata
|
59
|
+
super
|
82
60
|
end
|
83
61
|
end
|
84
62
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_event_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arkency
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: ruby_event_store
|
@@ -15,56 +15,56 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - '='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 2.
|
18
|
+
version: 2.17.0
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - '='
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 2.
|
25
|
+
version: 2.17.0
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: ruby_event_store-browser
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - '='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
32
|
+
version: 2.17.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - '='
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 2.
|
39
|
+
version: 2.17.0
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: rails_event_store_active_record
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - '='
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.
|
46
|
+
version: 2.17.0
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.
|
53
|
+
version: 2.17.0
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: aggregate_root
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - '='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 2.
|
60
|
+
version: 2.17.0
|
61
61
|
type: :runtime
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
65
|
- - '='
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 2.
|
67
|
+
version: 2.17.0
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: activesupport
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -135,12 +135,12 @@ files:
|
|
135
135
|
- lib/generators/rails_event_store/bounded_context_generator.rb
|
136
136
|
- lib/generators/rails_event_store/rspec_generator.rb
|
137
137
|
- lib/generators/rails_event_store/test_unit_generator.rb
|
138
|
-
- lib/generators/templates/bc_spec.
|
139
|
-
- lib/generators/templates/module.
|
140
|
-
- lib/generators/templates/require_bc_spec.
|
141
|
-
- lib/generators/templates/require_bc_test.
|
142
|
-
- lib/generators/templates/spec_helper.
|
143
|
-
- lib/generators/templates/test_helper.
|
138
|
+
- lib/generators/templates/bc_spec.erb
|
139
|
+
- lib/generators/templates/module.erb
|
140
|
+
- lib/generators/templates/require_bc_spec.erb
|
141
|
+
- lib/generators/templates/require_bc_test.erb
|
142
|
+
- lib/generators/templates/spec_helper.erb
|
143
|
+
- lib/generators/templates/test_helper.erb
|
144
144
|
- lib/rails_event_store.rb
|
145
145
|
- lib/rails_event_store/active_job_id_only_scheduler.rb
|
146
146
|
- lib/rails_event_store/active_job_scheduler.rb
|
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '0'
|
179
179
|
requirements: []
|
180
|
-
rubygems_version: 3.6.
|
180
|
+
rubygems_version: 3.6.9
|
181
181
|
specification_version: 4
|
182
182
|
summary: Rails wrapper for RubyEventStore with batteries included
|
183
183
|
test_files: []
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|