ruby_event_store 2.0.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/lib/ruby_event_store/client.rb +37 -6
  4. data/lib/ruby_event_store/errors.rb +1 -0
  5. data/lib/ruby_event_store/event.rb +5 -2
  6. data/lib/ruby_event_store/in_memory_repository.rb +67 -15
  7. data/lib/ruby_event_store/instrumented_dispatcher.rb +12 -2
  8. data/lib/ruby_event_store/instrumented_repository.rb +17 -11
  9. data/lib/ruby_event_store/mappers/default.rb +1 -28
  10. data/lib/ruby_event_store/mappers/encryption_mapper.rb +2 -0
  11. data/lib/ruby_event_store/mappers/forgotten_data.rb +1 -1
  12. data/lib/ruby_event_store/mappers/in_memory_encryption_key_repository.rb +1 -1
  13. data/lib/ruby_event_store/mappers/instrumented_mapper.rb +0 -4
  14. data/lib/ruby_event_store/mappers/json_mapper.rb +7 -5
  15. data/lib/ruby_event_store/mappers/pipeline.rb +2 -26
  16. data/lib/ruby_event_store/mappers/pipeline_mapper.rb +0 -4
  17. data/lib/ruby_event_store/mappers/transformation/domain_event.rb +13 -3
  18. data/lib/ruby_event_store/mappers/transformation/upcast.rb +37 -0
  19. data/lib/ruby_event_store/metadata.rb +3 -3
  20. data/lib/ruby_event_store/projection.rb +2 -2
  21. data/lib/ruby_event_store/spec/broker_lint.rb +11 -11
  22. data/lib/ruby_event_store/spec/event_lint.rb +9 -9
  23. data/lib/ruby_event_store/spec/event_repository_lint.rb +338 -281
  24. data/lib/ruby_event_store/spec/subscriptions_lint.rb +41 -33
  25. data/lib/ruby_event_store/subscriptions.rb +24 -9
  26. data/lib/ruby_event_store/transform_keys.rb +5 -5
  27. data/lib/ruby_event_store/version.rb +1 -1
  28. data/lib/ruby_event_store.rb +43 -44
  29. metadata +26 -17
  30. data/.mutant.yml +0 -1
  31. data/CHANGELOG.md +0 -93
  32. data/Gemfile +0 -9
  33. data/Gemfile.lock +0 -118
  34. data/Makefile +0 -32
  35. data/lib/ruby_event_store/mappers/deprecated_wrapper.rb +0 -33
  36. data/lib/ruby_event_store/mappers/transformation/serialization.rb +0 -36
  37. data/ruby_event_store.gemspec +0 -27
data/CHANGELOG.md DELETED
@@ -1,93 +0,0 @@
1
- Further changes can be tracked at [releases page](https://github.com/RailsEventStore/rails_event_store/releases).
2
-
3
- ### 0.14.0 (21.08.2017)
4
-
5
- * Change: Add lint for 3rd party implementations of dispatcher
6
- * Change: Deprecated MethodNotDefined error, use InvalidHandler instead
7
-
8
- ### 0.13.0 (15.10.2016)
9
-
10
- * Change: Dropped ClosedStruct event (meta)data wrapping PR #34
11
- Fix for Issue with ClosedStruct and object_id #33
12
- * Change: Refactor RubyEventStore::Client to have the same methods signatures as RailsEventStore::Client (PR #35),
13
- this will allow to remove most of the code form RailsEventStore::Client without breaking current
14
- applications that use RailsEventStore::Client. This change is however a breaking one for RubyEventStore.
15
-
16
- ### 0.12.1 (11.08.2016)
17
-
18
- * Fix: improve EventRepository specification tests (mutation tests)
19
-
20
- ### 0.12.0 (10.08.2016)
21
-
22
- * Change: all public methods arguments with default values are now keyword arguments
23
-
24
- ### 0.11.0 (12.07.2016)
25
-
26
- * Change: Call instead of handle_event, handle_event marked as deprecated in PR #18 is now removed PR #25
27
- * Change: Rename RubyEventStore::Facade to RubyEventStore::Client PR #26
28
-
29
- ### 0.10.1 (12.07.2016)
30
-
31
- * Added few new tests for repositories
32
-
33
- ### 0.10.0 (12.07.2016)
34
-
35
- * Fix: When using `append_to_stream`, expected version is no longer compared using `equal?` commit bdbe4600073d278cbf1024e8d49801fec768f6a7
36
- * Change: Creating events with data is now done using `data` keyword argument. Previously events were created using the syntax `OrderCreated.new(order_id: 123)`, now it has to be `OrderCreated.new(data: { order_id: 123 })`. PR #24
37
- * Change: Access to `data` attributes in an event is now using `event.data.some_attribute` syntax. `event.data[:some_attribute]` won't work either. PR #24
38
- * Change: Only events with the same name, event_id and data are equal - metadata is no longer taken into account PR #24
39
- * Change: `metadata[:timestamp]` is now set when event is appended to the stream, not when it is initialized PR #24
40
- * Change: Initialization of `RubyEventStore::Facade` is now using keyword arguments PR #24
41
- * Add support to `metadata_proc` PR #24
42
- * `ClosedStruct` is now a dependency PR #24
43
-
44
- ### 0.9.0 (24.06.2016)
45
-
46
- * Change: Call instead of handle_event, handle_event stays for now but is deprecated PR #18
47
- * Fix: Clarify Licensing terms #23 - MIT licence it is from now
48
-
49
- ### 0.8.0 (21.06.2016)
50
-
51
- * Change: Possibility to create projection based on all events PR #19
52
-
53
- ### 0.7.0 (21.06.2016)
54
-
55
- * Change: support for Dynamic subscriptions PR #20
56
- * Change: Add lint for 3rd party implementations of event broker PR #21
57
-
58
- ### 0.6.0 (25.05.2016)
59
-
60
- * Ability to provide a custom dispatcher to PubSub::Broker PR #12
61
- * Add support for projections PR #13
62
- * Added prettier message for case of missing #handle_event method. PR #14
63
- * Make file to run all the things PR #15
64
-
65
- ### 0.5.0 (21.03.2016)
66
-
67
- * Change: Event class refactoring to make default values more explicit PR #11
68
- * Change: No nils, use symbols instead - :any & :none replaced meaningless nil value
69
- * Change: Let event broker to be given as a dependency
70
- * Change: Remove Event#event_type - use class instead PR #10
71
-
72
- ### 0.4.0 (17.03.2016)
73
-
74
- * Change: Use class names to subscribe events PR #8
75
-
76
- ### 0.3.1 (13.03.2016)
77
-
78
- * Fix Don't overwrite timestamps when reading from repository
79
-
80
- ### 0.3.0 (03.03.2016)
81
-
82
- * Change: read_all_streams won't group_by results by stream name PR #4
83
- * Change: new way of define attributes of domain event PR #5
84
- * Change: reading forward and backward, refactored facade interface #6
85
- * Change: in memory event repository is now part of the gem, with shared specification PR #7
86
-
87
- ### 0.2.0 (27.01.2016)
88
-
89
- * Change: Return the event that the repository returns PR #2
90
-
91
- ### 0.1.0 (26.05.2015)
92
-
93
- Initial version
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
-
4
- gemspec
5
-
6
- eval_gemfile '../support/bundler/Gemfile.shared'
7
-
8
- gem 'activesupport', '6.0.3.4'
9
- gem 'concurrent-ruby', github: 'ruby-concurrency/concurrent-ruby', ref: 'c4cbc968c55e5b983dae953095761896220c46d1'
data/Gemfile.lock DELETED
@@ -1,118 +0,0 @@
1
- GIT
2
- remote: https://github.com/ruby-concurrency/concurrent-ruby.git
3
- revision: c4cbc968c55e5b983dae953095761896220c46d1
4
- ref: c4cbc968c55e5b983dae953095761896220c46d1
5
- specs:
6
- concurrent-ruby (1.1.7)
7
-
8
- PATH
9
- remote: .
10
- specs:
11
- ruby_event_store (2.0.0)
12
- concurrent-ruby (~> 1.0, >= 1.1.6)
13
-
14
- GEM
15
- remote: https://rubygems.org/
16
- remote: https://oss:7AXfeZdAfCqL1PvHm2nvDJO6Zd9UW8IK@gem.mutant.dev/
17
- specs:
18
- abstract_type (0.0.7)
19
- activesupport (6.0.3.4)
20
- concurrent-ruby (~> 1.0, >= 1.0.2)
21
- i18n (>= 0.7, < 2)
22
- minitest (~> 5.1)
23
- tzinfo (~> 1.1)
24
- zeitwerk (~> 2.2, >= 2.2.2)
25
- adamantium (0.2.0)
26
- ice_nine (~> 0.11.0)
27
- memoizable (~> 0.4.0)
28
- anima (0.3.2)
29
- abstract_type (~> 0.0.7)
30
- adamantium (~> 0.2)
31
- equalizer (~> 0.0.11)
32
- ast (2.4.1)
33
- concord (0.1.6)
34
- adamantium (~> 0.2.0)
35
- equalizer (~> 0.0.9)
36
- diff-lcs (1.4.4)
37
- equalizer (0.0.11)
38
- i18n (1.8.5)
39
- concurrent-ruby (~> 1.0)
40
- ice_nine (0.11.2)
41
- memoizable (0.4.2)
42
- thread_safe (~> 0.3, >= 0.3.1)
43
- minitest (5.14.2)
44
- mprelude (0.1.0)
45
- abstract_type (~> 0.0.7)
46
- adamantium (~> 0.2.0)
47
- concord (~> 0.1.5)
48
- equalizer (~> 0.0.9)
49
- ice_nine (~> 0.11.1)
50
- procto (~> 0.0.2)
51
- mutant (0.10.22)
52
- abstract_type (~> 0.0.7)
53
- adamantium (~> 0.2.0)
54
- anima (~> 0.3.1)
55
- ast (~> 2.2)
56
- concord (~> 0.1.5)
57
- diff-lcs (~> 1.3)
58
- equalizer (~> 0.0.9)
59
- ice_nine (~> 0.11.1)
60
- memoizable (~> 0.4.2)
61
- mprelude (~> 0.1.0)
62
- parser (~> 3.0.0)
63
- procto (~> 0.0.2)
64
- unparser (~> 0.5.6)
65
- variable (~> 0.0.1)
66
- mutant-license (0.1.1.2.1627430819213747598431630701693729869473.0)
67
- mutant-rspec (0.10.22)
68
- mutant (= 0.10.22)
69
- rspec-core (>= 3.8.0, < 4.0.0)
70
- parser (3.0.0.0)
71
- ast (~> 2.4.1)
72
- procto (0.0.3)
73
- rake (13.0.3)
74
- rspec (3.10.0)
75
- rspec-core (~> 3.10.0)
76
- rspec-expectations (~> 3.10.0)
77
- rspec-mocks (~> 3.10.0)
78
- rspec-core (3.10.1)
79
- rspec-support (~> 3.10.0)
80
- rspec-expectations (3.10.1)
81
- diff-lcs (>= 1.2.0, < 2.0)
82
- rspec-support (~> 3.10.0)
83
- rspec-mocks (3.10.1)
84
- diff-lcs (>= 1.2.0, < 2.0)
85
- rspec-support (~> 3.10.0)
86
- rspec-support (3.10.1)
87
- thread_safe (0.3.6)
88
- tzinfo (1.2.9)
89
- thread_safe (~> 0.1)
90
- unparser (0.5.6)
91
- abstract_type (~> 0.0.7)
92
- adamantium (~> 0.2.0)
93
- anima (~> 0.3.1)
94
- concord (~> 0.1.5)
95
- diff-lcs (~> 1.3)
96
- equalizer (~> 0.0.9)
97
- mprelude (~> 0.1.0)
98
- parser (>= 3.0.0)
99
- procto (~> 0.0.2)
100
- variable (0.0.1)
101
- equalizer (~> 0.0.11)
102
- zeitwerk (2.4.2)
103
-
104
- PLATFORMS
105
- ruby
106
-
107
- DEPENDENCIES
108
- activesupport (= 6.0.3.4)
109
- concurrent-ruby!
110
- mutant (~> 0.10.21)
111
- mutant-license!
112
- mutant-rspec (~> 0.10.21)
113
- rake (>= 10.0)
114
- rspec (~> 3.6)
115
- ruby_event_store!
116
-
117
- BUNDLED WITH
118
- 2.1.4
data/Makefile DELETED
@@ -1,32 +0,0 @@
1
- GEM_VERSION = $(shell cat ../RES_VERSION)
2
- GEM_NAME = ruby_event_store
3
- REQUIRE = $(GEM_NAME)
4
- IGNORE = RubyEventStore::InMemoryRepository\#with_synchronize \
5
- RubyEventStore::Client\#initialize \
6
- RubyEventStore::Client\#default_clock \
7
- RubyEventStore::Client\#default_correlation_id_generator \
8
- RubyEventStore::Client::Within\#add_thread_subscribers \
9
- RubyEventStore::Client::Within\#add_thread_global_subscribers \
10
- RubyEventStore::Client::Within\#call \
11
- RubyEventStore::Mappers::InMemoryEncryptionKeyRepository\#prepare_encrypt \
12
- RubyEventStore::Mappers::EncryptionKey\#prepare_encrypt \
13
- RubyEventStore::Mappers::EncryptionKey\#prepare_decrypt \
14
- RubyEventStore::Mappers::EncryptionKey\#prepare_auth_data \
15
- RubyEventStore::Mappers::EncryptionKey\#encrypt_authenticated \
16
- RubyEventStore::Mappers::EncryptionKey\#ciphertext_from_authenticated \
17
- RubyEventStore::Mappers::Default\#serializer \
18
- RubyEventStore::Mappers::JSONMapper\#serializer \
19
- RubyEventStore::Mappers::NullMapper\#serializer \
20
- RubyEventStore::Mappers::EncryptionMapper\#serializer \
21
- RubyEventStore::Mappers::PipelineMapper\#serializer \
22
- RubyEventStore::Mappers::DeprecatedWrapper\#serializer \
23
- RubyEventStore::Mappers::InstrumentedMapper\#serializer \
24
- RubyEventStore::Mappers::Transformation::Serialization*
25
-
26
- SUBJECT ?= RubyEventStore*
27
-
28
- include ../support/make/install.mk
29
- include ../support/make/test.mk
30
- include ../support/make/mutant.mk
31
- include ../support/make/gem.mk
32
- include ../support/make/help.mk
@@ -1,33 +0,0 @@
1
- module RubyEventStore
2
- module Mappers
3
- class DeprecatedWrapper
4
- def initialize(mapper)
5
- @mapper = mapper
6
- end
7
-
8
- def serializer
9
- @mapper.serializer
10
- end
11
-
12
- def event_to_record(any)
13
- @mapper.event_to_record(any)
14
- rescue NoMethodError => e
15
- raise unless e.message =~ /undefined method `event_to_record/
16
- warn <<~EOW
17
- Deprecation: Please rename #{@mapper.class}#event_to_serialized_record to #{@mapper.class}#event_to_record.
18
- EOW
19
- @mapper.event_to_serialized_record(any)
20
- end
21
-
22
- def record_to_event(any)
23
- @mapper.record_to_event(any)
24
- rescue NoMethodError => e
25
- raise unless e.message =~ /undefined method `record_to_event/
26
- warn <<~EOW
27
- Deprecation: Please rename #{@mapper.class}#serialized_record_to_event to #{@mapper.class}#record_to_event.
28
- EOW
29
- @mapper.serialized_record_to_event(any)
30
- end
31
- end
32
- end
33
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'yaml'
4
-
5
- module RubyEventStore
6
- module Mappers
7
- module Transformation
8
- class Serialization
9
- def initialize(serializer: YAML)
10
- warn <<~EOW
11
- #{self.class} has been deprecated and is effectively no-op. You should remove this transformation from your pipeline.
12
-
13
- Instead, pass the serializer directly to the repository and the scheduler. For example:
14
-
15
- Rails.configuration.event_store = RailsEventStore::Client.new(
16
- mapper: RubyEventStore::Mappers::Default.new,
17
- repository: RailsEventStoreActiveRecord::EventRepository.new(serializer: #{serializer}),
18
- dispatcher: RubyEventStore::ComposedDispatcher.new(
19
- RubyEventStore::ImmediateAsyncDispatcher.new(scheduler: ActiveJobScheduler.new(serializer: #{serializer}),
20
- RubyEventStore::Dispatcher.new
21
- )
22
- )
23
- EOW
24
- end
25
-
26
- def dump(item)
27
- item
28
- end
29
-
30
- def load(item)
31
- item
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,27 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'ruby_event_store/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'ruby_event_store'
8
- spec.version = RubyEventStore::VERSION
9
- spec.licenses = ['MIT']
10
- spec.authors = ['Arkency']
11
- spec.email = ['dev@arkency.com']
12
-
13
- spec.summary = %q{Event Store in Ruby}
14
- spec.description = %q{Implementation of Event Store in Ruby}
15
- spec.homepage = 'https://railseventstore.org'
16
- spec.metadata = {
17
- "homepage_uri" => "https://railseventstore.org/",
18
- "changelog_uri" => "https://github.com/RailsEventStore/rails_event_store/releases",
19
- "source_code_uri" => "https://github.com/RailsEventStore/rails_event_store",
20
- "bug_tracker_uri" => "https://github.com/RailsEventStore/rails_event_store/issues",
21
- }
22
-
23
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
- spec.require_paths = ['lib']
25
-
26
- spec.add_dependency 'concurrent-ruby', '~> 1.0', '>= 1.1.6'
27
- end