rails_event_store 2.3.0 → 2.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b956e083f03d6da44d1f82cdd1662a093b3f9526c846f38832a85f38daa698c7
4
- data.tar.gz: 3a5202592d84ae5a63315b0badc598000c785bdf97f438425f699671da28f340
3
+ metadata.gz: fd65cf3d50349141c5bf6696f48a5508494568c1597ae4fda390a9344c7c0b44
4
+ data.tar.gz: 79d47fa5c8d2de64588d2882c73c0f59020208c3fed7860ebfcbef9c438bb9f7
5
5
  SHA512:
6
- metadata.gz: 39852a4cf687b8965d51fa364e46fff94d4d689f3b0c75ae8abdd84109b38728eb4f4c0fcca076cbadcd54c6f7c41f88a17383311654bee7918a586e3dc17a1b
7
- data.tar.gz: 83e445adc6aa7937b2f535010908bb265fa5ca2d75100b2539e1247a0453e6924fd83065c6c56a960ebd42937e44c13e96742e474d409ea968ec022251050c6f
6
+ metadata.gz: 4acfe534d48ddb54671e468845c1fbfa578b4fe98ed722e30853f4f6ce15eadb2083e5498f7bc0fe3de0fc881874f936783aeea9e734c11cdd3381cb82df05f4
7
+ data.tar.gz: c6bdca195b12d7917ff7bfec294a74d0994049cd4e322b2427f0ebc42517109175ddf08286ee68743b0daec358366437661235719654735eb5d564a1e3c823d1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # RailsEventStore
2
2
 
3
- Rails wrapper for RubyEventStore with batteries included.
3
+ Rails wrapper for RubyEventStore with batteries included.
4
4
 
5
5
  Ships with asynchronous after-commit event dispatch on top of ActiveJob, ActiveSupport::Notifications instrumentation enabled, request metadata enrichment and opinionated directory structure generator for bounded contexts.
6
6
 
@@ -13,9 +13,7 @@ module RailsEventStore
13
13
 
14
14
  template "module.rb", "#{bounded_context_name}/lib/#{bounded_context_name}.rb"
15
15
 
16
- application do
17
- "config.paths.add '#{bounded_context_name}/lib', eager_load: true"
18
- end
16
+ application { "config.paths.add '#{bounded_context_name}/lib', eager_load: true" }
19
17
  end
20
18
 
21
19
  private
@@ -1,4 +1,4 @@
1
- require_relative 'spec_helper'
1
+ require_relative "spec_helper"
2
2
 
3
3
  RSpec.describe <%= bounded_context_namespace %> do
4
4
  end
@@ -1,6 +1,4 @@
1
1
  require "rails_helper"
2
2
 
3
3
  path = Rails.root.join("<%= bounded_context_name %>/spec")
4
- Dir.glob("#{path}/**/*_spec.rb") do |file|
5
- require file
6
- end
4
+ Dir.glob("#{path}/**/*_spec.rb") { |file| require file }
@@ -1,7 +1,7 @@
1
- ENV['RAILS_ENV'] = 'test'
1
+ ENV["RAILS_ENV"] = "test"
2
2
 
3
- $LOAD_PATH.push File.expand_path('../../../spec', __FILE__)
4
- require File.expand_path('../../../config/environment', __FILE__)
5
- require File.expand_path('../../../spec/rails_helper', __FILE__)
3
+ $LOAD_PATH.push File.expand_path("../../../spec", __FILE__)
4
+ require File.expand_path("../../../config/environment", __FILE__)
5
+ require File.expand_path("../../../spec/rails_helper", __FILE__)
6
6
 
7
- require_relative '../lib/<%= bounded_context_name %>'
7
+ require_relative "../lib/<%= bounded_context_name %>"
@@ -1 +1 @@
1
- require_relative '../lib/<%= bounded_context_name %>'
1
+ require_relative "../lib/<%= bounded_context_name %>"
@@ -17,6 +17,7 @@ module RailsEventStore
17
17
  end
18
18
 
19
19
  private
20
+
20
21
  attr_reader :serializer
21
22
  end
22
23
  end
@@ -7,9 +7,7 @@ module RailsEventStore
7
7
  end
8
8
 
9
9
  def call(subscriber, _, record)
10
- run do
11
- @scheduler.call(subscriber, record)
12
- end
10
+ run { @scheduler.call(subscriber, record) }
13
11
  end
14
12
 
15
13
  def run(&schedule_proc)
@@ -40,18 +38,15 @@ module RailsEventStore
40
38
  schedule_proc.call
41
39
  end
42
40
 
43
- def rolledback!(*)
44
- end
41
+ def rolledback!(*); end
45
42
 
46
- def before_committed!
47
- end
43
+ def before_committed!; end
48
44
 
49
45
  def add_to_transaction
50
46
  dispatcher.run(&schedule_proc)
51
47
  end
52
48
 
53
- def trigger_transactional_callbacks?
54
- end
49
+ def trigger_transactional_callbacks?; end
55
50
 
56
51
  attr_reader :schedule_proc, :dispatcher
57
52
  end
@@ -11,21 +11,21 @@ require_relative "railtie"
11
11
  require_relative "browser"
12
12
 
13
13
  module RailsEventStore
14
- Event = RubyEventStore::Event
15
- InMemoryRepository = RubyEventStore::InMemoryRepository
16
- Subscriptions = RubyEventStore::Subscriptions
17
- Projection = RubyEventStore::Projection
18
- WrongExpectedEventVersion = RubyEventStore::WrongExpectedEventVersion
19
- InvalidExpectedVersion = RubyEventStore::InvalidExpectedVersion
20
- IncorrectStreamData = RubyEventStore::IncorrectStreamData
21
- EventNotFound = RubyEventStore::EventNotFound
22
- SubscriberNotExist = RubyEventStore::SubscriberNotExist
23
- InvalidHandler = RubyEventStore::InvalidHandler
24
- InvalidPageStart = RubyEventStore::InvalidPageStart
25
- InvalidPageStop = RubyEventStore::InvalidPageStop
26
- InvalidPageSize = RubyEventStore::InvalidPageSize
27
- CorrelatedCommands = RubyEventStore::CorrelatedCommands
28
- GLOBAL_STREAM = RubyEventStore::GLOBAL_STREAM
29
- PAGE_SIZE = RubyEventStore::PAGE_SIZE
30
- ImmediateAsyncDispatcher = RubyEventStore::ImmediateAsyncDispatcher
14
+ Event = RubyEventStore::Event
15
+ InMemoryRepository = RubyEventStore::InMemoryRepository
16
+ Subscriptions = RubyEventStore::Subscriptions
17
+ Projection = RubyEventStore::Projection
18
+ WrongExpectedEventVersion = RubyEventStore::WrongExpectedEventVersion
19
+ InvalidExpectedVersion = RubyEventStore::InvalidExpectedVersion
20
+ IncorrectStreamData = RubyEventStore::IncorrectStreamData
21
+ EventNotFound = RubyEventStore::EventNotFound
22
+ SubscriberNotExist = RubyEventStore::SubscriberNotExist
23
+ InvalidHandler = RubyEventStore::InvalidHandler
24
+ InvalidPageStart = RubyEventStore::InvalidPageStart
25
+ InvalidPageStop = RubyEventStore::InvalidPageStop
26
+ InvalidPageSize = RubyEventStore::InvalidPageSize
27
+ CorrelatedCommands = RubyEventStore::CorrelatedCommands
28
+ GLOBAL_STREAM = RubyEventStore::GLOBAL_STREAM
29
+ PAGE_SIZE = RubyEventStore::PAGE_SIZE
30
+ ImmediateAsyncDispatcher = RubyEventStore::ImmediateAsyncDispatcher
31
31
  end
@@ -3,16 +3,17 @@
3
3
  module RailsEventStore
4
4
  module AsyncHandler
5
5
  def self.with_defaults
6
- Module.new do
7
- def self.prepended(host_class)
8
- host_class.prepend AsyncHandler.with
9
- end
10
- end
6
+ with
11
7
  end
12
8
 
13
- def self.with(event_store: Rails.configuration.event_store, serializer: YAML)
9
+ def self.with(
10
+ event_store: Rails.configuration.event_store,
11
+ event_store_locator: nil,
12
+ serializer: RubyEventStore::Serializers::YAML
13
+ )
14
14
  Module.new do
15
15
  define_method :perform do |payload|
16
+ event_store = event_store_locator.call if event_store_locator
16
17
  super(event_store.deserialize(serializer: serializer, **payload.symbolize_keys))
17
18
  end
18
19
  end
@@ -25,12 +26,10 @@ module RailsEventStore
25
26
 
26
27
  module CorrelatedHandler
27
28
  def perform(event)
28
- Rails.configuration.event_store.with_metadata(
29
- correlation_id: event.metadata[:correlation_id],
30
- causation_id: event.event_id
31
- ) do
32
- super
33
- end
29
+ Rails
30
+ .configuration
31
+ .event_store
32
+ .with_metadata(correlation_id: event.metadata[:correlation_id], causation_id: event.event_id) { super }
34
33
  end
35
34
  end
36
35
  end
@@ -4,4 +4,4 @@ require "ruby_event_store/browser/app"
4
4
 
5
5
  module RailsEventStore
6
6
  Browser = RubyEventStore::Browser::App.for(event_store_locator: -> { Rails.configuration.event_store })
7
- end
7
+ end
@@ -4,39 +4,41 @@ module RailsEventStore
4
4
  class Client < RubyEventStore::Client
5
5
  attr_reader :request_metadata
6
6
 
7
- def initialize(mapper: RubyEventStore::Mappers::Default.new,
8
- repository: RailsEventStoreActiveRecord::EventRepository.new(serializer: YAML),
9
- subscriptions: RubyEventStore::Subscriptions.new,
10
- dispatcher: RubyEventStore::ComposedDispatcher.new(
11
- RailsEventStore::AfterCommitAsyncDispatcher.new(scheduler: ActiveJobScheduler.new(serializer: YAML)),
12
- RubyEventStore::Dispatcher.new),
13
- clock: default_clock,
14
- correlation_id_generator: default_correlation_id_generator,
15
- request_metadata: default_request_metadata)
16
- super(repository: RubyEventStore::InstrumentedRepository.new(repository, ActiveSupport::Notifications),
17
- mapper: RubyEventStore::Mappers::InstrumentedMapper.new(mapper, ActiveSupport::Notifications),
18
- subscriptions: subscriptions,
19
- clock: clock,
20
- correlation_id_generator: correlation_id_generator,
21
- dispatcher: RubyEventStore::InstrumentedDispatcher.new(dispatcher, ActiveSupport::Notifications)
22
- )
7
+ def initialize(
8
+ mapper: RubyEventStore::Mappers::Default.new,
9
+ repository: RailsEventStoreActiveRecord::EventRepository.new(serializer: RubyEventStore::Serializers::YAML),
10
+ subscriptions: RubyEventStore::Subscriptions.new,
11
+ dispatcher: RubyEventStore::ComposedDispatcher.new(
12
+ RailsEventStore::AfterCommitAsyncDispatcher.new(
13
+ scheduler: ActiveJobScheduler.new(serializer: RubyEventStore::Serializers::YAML)
14
+ ),
15
+ RubyEventStore::Dispatcher.new
16
+ ),
17
+ clock: default_clock,
18
+ correlation_id_generator: default_correlation_id_generator,
19
+ request_metadata: default_request_metadata
20
+ )
21
+ super(
22
+ repository: RubyEventStore::InstrumentedRepository.new(repository, ActiveSupport::Notifications),
23
+ mapper: RubyEventStore::Mappers::InstrumentedMapper.new(mapper, ActiveSupport::Notifications),
24
+ subscriptions: subscriptions,
25
+ clock: clock,
26
+ correlation_id_generator: correlation_id_generator,
27
+ dispatcher: RubyEventStore::InstrumentedDispatcher.new(dispatcher, ActiveSupport::Notifications)
28
+ )
23
29
  @request_metadata = request_metadata
24
30
  end
25
31
 
26
32
  def with_request_metadata(env, &block)
27
- with_metadata(request_metadata.call(env)) do
28
- block.call
29
- end
33
+ with_metadata(request_metadata.call(env)) { block.call }
30
34
  end
31
35
 
32
36
  private
37
+
33
38
  def default_request_metadata
34
39
  ->(env) do
35
40
  request = ActionDispatch::Request.new(env)
36
- {
37
- remote_ip: request.remote_ip,
38
- request_id: request.uuid
39
- }
41
+ { remote_ip: request.remote_ip, request_id: request.uuid }
40
42
  end
41
43
  end
42
44
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsEventStore
4
-
5
4
  class LinkByMetadata < RubyEventStore::LinkByMetadata
6
5
  def initialize(event_store: Rails.configuration.event_store, key:, prefix: nil)
7
6
  super
@@ -25,5 +24,4 @@ module RailsEventStore
25
24
  super
26
25
  end
27
26
  end
28
-
29
27
  end
@@ -8,9 +8,7 @@ module RailsEventStore
8
8
 
9
9
  def call(env)
10
10
  if config.respond_to?(:event_store)
11
- config.event_store.with_request_metadata(env) do
12
- @app.call(env)
13
- end
11
+ config.event_store.with_request_metadata(env) { @app.call(env) }
14
12
  else
15
13
  @app.call(env)
16
14
  end
@@ -10,4 +10,3 @@ module RailsEventStore
10
10
  end
11
11
  end
12
12
  end
13
-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsEventStore
4
- VERSION = "2.3.0"
4
+ VERSION = "2.4.0"
5
5
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rails_event_store_active_record"
4
- require_relative "rails_event_store/all"
4
+ require_relative "rails_event_store/all"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-09 00:00:00.000000000 Z
11
+ date: 2022-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby_event_store
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.3.0
19
+ version: 2.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.3.0
26
+ version: 2.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ruby_event_store-browser
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.3.0
33
+ version: 2.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.3.0
40
+ version: 2.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rails_event_store_active_record
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 2.3.0
47
+ version: 2.4.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 2.3.0
54
+ version: 2.4.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aggregate_root
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 2.3.0
61
+ version: 2.4.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 2.3.0
68
+ version: 2.4.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +160,7 @@ metadata:
160
160
  changelog_uri: https://github.com/RailsEventStore/rails_event_store/releases
161
161
  source_code_uri: https://github.com/RailsEventStore/rails_event_store
162
162
  bug_tracker_uri: https://github.com/RailsEventStore/rails_event_store/issues
163
+ rubygems_mfa_required: 'true'
163
164
  post_install_message:
164
165
  rdoc_options: []
165
166
  require_paths:
@@ -168,14 +169,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
169
  requirements:
169
170
  - - ">="
170
171
  - !ruby/object:Gem::Version
171
- version: '2.6'
172
+ version: '2.7'
172
173
  required_rubygems_version: !ruby/object:Gem::Requirement
173
174
  requirements:
174
175
  - - ">="
175
176
  - !ruby/object:Gem::Version
176
177
  version: '0'
177
178
  requirements: []
178
- rubygems_version: 3.1.4
179
+ rubygems_version: 3.3.7
179
180
  signing_key:
180
181
  specification_version: 4
181
182
  summary: Rails wrapper for RubyEventStore with batteries included