rails_event_store 2.9.1 → 2.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f547a33f75be9a69d32ffc99ea19b680fb35744d5c20b478effcba828439ac2e
4
- data.tar.gz: d6103a7a68b1ee7230f254445be460983b160c8d6e7383c300e658261a6702e2
3
+ metadata.gz: 40bdec5b11febb21dde89cb4757f899a34595dc1498be6313e7ed473f5c5ac07
4
+ data.tar.gz: 85cb41d8003527550e74a77157afcc29c25cf81dcf6c2f2968ffa85923f134fb
5
5
  SHA512:
6
- metadata.gz: 772a73bc208254277062b9cde2d811c29414cea5a698b2abeb36dfe32892155cf634223f32707fbb344df24205c36d793f55e6e23091d0a693950db803cce2c3
7
- data.tar.gz: a1b8e4dd54fba0594cdefec218561b7abcfd8ca16f58f78c3e746e2b70de59ebacf8da4e188c0c5ed9e845aaed6dd700d7acb5c3df4b2b7bd35b0eeac02555f0
6
+ metadata.gz: 0421e5fe42c033b4693af5dad3559300b3d13b0c69e7b8c25007afc8c058c7ddb647411b4cecc7bba2171ef9011c145126bee414601cf666a81a8990a1c54821
7
+ data.tar.gz: bfae46e8714293ddbacd8d21cb4be5f869c5205848c4d8f5ae22111a8eec9155a7ea3c4a5deb66246c94a618f2a8aff06b28f01fe13833458a73b70a644cb7f4
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_job"
4
+
5
+ module RailsEventStore
6
+ class ActiveJobIdOnlyScheduler
7
+ def call(klass, record)
8
+ klass.perform_later({ "event_id" => record.event_id })
9
+ end
10
+
11
+ def verify(subscriber)
12
+ Class === subscriber && !!(subscriber < ActiveJob::Base)
13
+ end
14
+ end
15
+ end
@@ -5,6 +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 'active_job_id_only_scheduler'
8
9
  require_relative "client"
9
10
  require_relative "json_client"
10
11
  require_relative "version"
@@ -24,6 +24,29 @@ module RailsEventStore
24
24
  end
25
25
  end
26
26
 
27
+ module AsyncHandlerJobIdOnly
28
+ def self.with_defaults
29
+ with
30
+ end
31
+
32
+ def self.with(
33
+ event_store: Rails.configuration.event_store,
34
+ event_store_locator: nil
35
+ )
36
+ Module.new do
37
+ define_method :perform do |payload|
38
+ event_store = event_store_locator.call if event_store_locator
39
+ super(event_store.read.event(payload.fetch("event_id")))
40
+ end
41
+ end
42
+ end
43
+
44
+ def self.prepended(host_class)
45
+ host_class.prepend with_defaults
46
+ end
47
+ end
48
+
49
+
27
50
  module CorrelatedHandler
28
51
  def perform(event)
29
52
  Rails
@@ -3,7 +3,29 @@
3
3
  module RailsEventStore
4
4
  class JSONClient < Client
5
5
  def initialize(
6
- mapper: RubyEventStore::Mappers::Default.new,
6
+ mapper:
7
+ RubyEventStore::Mappers::PipelineMapper.new(
8
+ RubyEventStore::Mappers::Pipeline.new(
9
+ RubyEventStore::Mappers::Transformation::PreserveTypes
10
+ .new
11
+ .register(Symbol, serializer: ->(v) { v.to_s }, deserializer: ->(v) { v.to_sym })
12
+ .register(
13
+ Time,
14
+ serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
15
+ deserializer: ->(v) { Time.iso8601(v) }
16
+ )
17
+ .register(
18
+ ActiveSupport::TimeWithZone,
19
+ serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
20
+ deserializer: ->(v) { Time.iso8601(v).in_time_zone },
21
+ stored_type: ->(*) { "ActiveSupport::TimeWithZone" }
22
+ )
23
+ .register(Date, serializer: ->(v) { v.iso8601 }, deserializer: ->(v) { Date.iso8601(v) })
24
+ .register(DateTime, serializer: ->(v) { v.iso8601 }, deserializer: ->(v) { DateTime.iso8601(v) })
25
+ .register(BigDecimal, serializer: ->(v) { v.to_s }, deserializer: ->(v) { BigDecimal(v) }),
26
+ RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new
27
+ )
28
+ ),
7
29
  repository: RubyEventStore::ActiveRecord::EventRepository.new(serializer: RubyEventStore::NULL),
8
30
  subscriptions: RubyEventStore::Subscriptions.new,
9
31
  dispatcher: RubyEventStore::ComposedDispatcher.new(
@@ -17,32 +39,7 @@ module RailsEventStore
17
39
  request_metadata: default_request_metadata
18
40
  )
19
41
  super(
20
- mapper:
21
- RubyEventStore::Mappers::InstrumentedMapper.new(
22
- RubyEventStore::Mappers::PipelineMapper.new(
23
- RubyEventStore::Mappers::Pipeline.new(
24
- RubyEventStore::Mappers::Transformation::PreserveTypes
25
- .new
26
- .register(Symbol, serializer: ->(v) { v.to_s }, deserializer: ->(v) { v.to_sym })
27
- .register(
28
- Time,
29
- serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
30
- deserializer: ->(v) { Time.iso8601(v) }
31
- )
32
- .register(
33
- ActiveSupport::TimeWithZone,
34
- serializer: ->(v) { v.iso8601(RubyEventStore::TIMESTAMP_PRECISION) },
35
- deserializer: ->(v) { Time.iso8601(v).in_time_zone },
36
- stored_type: ->(*) { "ActiveSupport::TimeWithZone" }
37
- )
38
- .register(Date, serializer: ->(v) { v.iso8601 }, deserializer: ->(v) { Date.iso8601(v) })
39
- .register(DateTime, serializer: ->(v) { v.iso8601 }, deserializer: ->(v) { DateTime.iso8601(v) })
40
- .register(BigDecimal, serializer: ->(v) { v.to_s }, deserializer: ->(v) { BigDecimal(v) }),
41
- RubyEventStore::Mappers::Transformation::SymbolizeMetadataKeys.new
42
- )
43
- ),
44
- ActiveSupport::Notifications
45
- ),
42
+ mapper: RubyEventStore::Mappers::InstrumentedMapper.new(mapper, ActiveSupport::Notifications),
46
43
  repository: RubyEventStore::InstrumentedRepository.new(repository, ActiveSupport::Notifications),
47
44
  subscriptions: RubyEventStore::InstrumentedSubscriptions.new(subscriptions, ActiveSupport::Notifications),
48
45
  clock: clock,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsEventStore
4
- VERSION = "2.9.1"
4
+ VERSION = "2.10"
5
5
  end
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.9.1
4
+ version: '2.10'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-03 00:00:00.000000000 Z
11
+ date: 2023-07-19 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.9.1
19
+ version: '2.10'
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.9.1
26
+ version: '2.10'
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.9.1
33
+ version: '2.10'
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.9.1
40
+ version: '2.10'
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.9.1
47
+ version: '2.10'
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.9.1
54
+ version: '2.10'
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.9.1
61
+ version: '2.10'
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.9.1
68
+ version: '2.10'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activesupport
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -143,6 +143,7 @@ files:
143
143
  - lib/generators/templates/spec_helper.rb
144
144
  - lib/generators/templates/test_helper.rb
145
145
  - lib/rails_event_store.rb
146
+ - lib/rails_event_store/active_job_id_only_scheduler.rb
146
147
  - lib/rails_event_store/active_job_scheduler.rb
147
148
  - lib/rails_event_store/after_commit_async_dispatcher.rb
148
149
  - lib/rails_event_store/all.rb
@@ -178,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
179
  - !ruby/object:Gem::Version
179
180
  version: '0'
180
181
  requirements: []
181
- rubygems_version: 3.3.7
182
+ rubygems_version: 3.4.1
182
183
  signing_key:
183
184
  specification_version: 4
184
185
  summary: Rails wrapper for RubyEventStore with batteries included