ruby_event_store 1.3.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/lib/ruby_event_store.rb +43 -47
- data/lib/ruby_event_store/broker.rb +3 -3
- data/lib/ruby_event_store/client.rb +51 -23
- data/lib/ruby_event_store/composed_dispatcher.rb +2 -2
- data/lib/ruby_event_store/constants.rb +1 -0
- data/lib/ruby_event_store/errors.rb +0 -1
- data/lib/ruby_event_store/event.rb +8 -1
- data/lib/ruby_event_store/immediate_async_dispatcher.rb +2 -2
- data/lib/ruby_event_store/in_memory_repository.rb +98 -59
- data/lib/ruby_event_store/instrumented_dispatcher.rb +2 -2
- data/lib/ruby_event_store/instrumented_repository.rb +3 -3
- data/lib/ruby_event_store/mappers/default.rb +3 -8
- data/lib/ruby_event_store/mappers/encryption_mapper.rb +3 -4
- data/lib/ruby_event_store/mappers/instrumented_mapper.rb +4 -4
- data/lib/ruby_event_store/mappers/json_mapper.rb +7 -7
- data/lib/ruby_event_store/mappers/pipeline.rb +2 -5
- data/lib/ruby_event_store/mappers/pipeline_mapper.rb +2 -2
- data/lib/ruby_event_store/mappers/transformation/domain_event.rb +16 -8
- data/lib/ruby_event_store/mappers/transformation/encryption.rb +20 -12
- data/lib/ruby_event_store/mappers/transformation/event_class_remapper.rb +11 -4
- data/lib/ruby_event_store/mappers/transformation/stringify_metadata_keys.rb +12 -7
- data/lib/ruby_event_store/mappers/transformation/symbolize_metadata_keys.rb +12 -7
- data/lib/ruby_event_store/mappers/transformation/upcast.rb +37 -0
- data/lib/ruby_event_store/null.rb +13 -0
- data/lib/ruby_event_store/projection.rb +2 -13
- data/lib/ruby_event_store/record.rb +68 -0
- data/lib/ruby_event_store/serialized_record.rb +23 -4
- data/lib/ruby_event_store/spec/broker_lint.rb +9 -9
- data/lib/ruby_event_store/spec/event_repository_lint.rb +288 -105
- data/lib/ruby_event_store/spec/mapper_lint.rb +6 -6
- data/lib/ruby_event_store/spec/subscriptions_lint.rb +14 -0
- data/lib/ruby_event_store/specification.rb +100 -7
- data/lib/ruby_event_store/specification_reader.rb +2 -2
- data/lib/ruby_event_store/specification_result.rb +86 -2
- data/lib/ruby_event_store/subscriptions.rb +23 -8
- data/lib/ruby_event_store/transform_keys.rb +5 -5
- data/lib/ruby_event_store/version.rb +1 -1
- metadata +15 -21
- data/CHANGELOG.md +0 -93
- data/Gemfile +0 -11
- data/Makefile +0 -22
- data/lib/ruby_event_store/mappers/protobuf.rb +0 -24
- data/lib/ruby_event_store/mappers/transformation/item.rb +0 -56
- data/lib/ruby_event_store/mappers/transformation/proto_event.rb +0 -17
- data/lib/ruby_event_store/mappers/transformation/protobuf_encoder.rb +0 -30
- data/lib/ruby_event_store/mappers/transformation/protobuf_nested_struct_metadata.rb +0 -30
- data/lib/ruby_event_store/mappers/transformation/serialization.rb +0 -34
- data/lib/ruby_event_store/mappers/transformation/serialized_record.rb +0 -27
- data/ruby_event_store.gemspec +0 -29
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_event_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arkency
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -30,16 +30,15 @@ dependencies:
|
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 1.1.6
|
33
|
-
description:
|
34
|
-
|
35
|
-
|
33
|
+
description: |
|
34
|
+
Ruby implementation of an event store. Ships with in-memory event repository, generic instrumentation
|
35
|
+
and dispatches events synchronously.
|
36
|
+
email: dev@arkency.com
|
36
37
|
executables: []
|
37
38
|
extensions: []
|
38
|
-
extra_rdoc_files:
|
39
|
+
extra_rdoc_files:
|
40
|
+
- README.md
|
39
41
|
files:
|
40
|
-
- CHANGELOG.md
|
41
|
-
- Gemfile
|
42
|
-
- Makefile
|
43
42
|
- README.md
|
44
43
|
- lib/ruby_event_store.rb
|
45
44
|
- lib/ruby_event_store/batch_enumerator.rb
|
@@ -67,20 +66,16 @@ files:
|
|
67
66
|
- lib/ruby_event_store/mappers/null_mapper.rb
|
68
67
|
- lib/ruby_event_store/mappers/pipeline.rb
|
69
68
|
- lib/ruby_event_store/mappers/pipeline_mapper.rb
|
70
|
-
- lib/ruby_event_store/mappers/protobuf.rb
|
71
69
|
- lib/ruby_event_store/mappers/transformation/domain_event.rb
|
72
70
|
- lib/ruby_event_store/mappers/transformation/encryption.rb
|
73
71
|
- lib/ruby_event_store/mappers/transformation/event_class_remapper.rb
|
74
|
-
- lib/ruby_event_store/mappers/transformation/item.rb
|
75
|
-
- lib/ruby_event_store/mappers/transformation/proto_event.rb
|
76
|
-
- lib/ruby_event_store/mappers/transformation/protobuf_encoder.rb
|
77
|
-
- lib/ruby_event_store/mappers/transformation/protobuf_nested_struct_metadata.rb
|
78
|
-
- lib/ruby_event_store/mappers/transformation/serialization.rb
|
79
|
-
- lib/ruby_event_store/mappers/transformation/serialized_record.rb
|
80
72
|
- lib/ruby_event_store/mappers/transformation/stringify_metadata_keys.rb
|
81
73
|
- lib/ruby_event_store/mappers/transformation/symbolize_metadata_keys.rb
|
74
|
+
- lib/ruby_event_store/mappers/transformation/upcast.rb
|
82
75
|
- lib/ruby_event_store/metadata.rb
|
76
|
+
- lib/ruby_event_store/null.rb
|
83
77
|
- lib/ruby_event_store/projection.rb
|
78
|
+
- lib/ruby_event_store/record.rb
|
84
79
|
- lib/ruby_event_store/serialized_record.rb
|
85
80
|
- lib/ruby_event_store/spec/broker_lint.rb
|
86
81
|
- lib/ruby_event_store/spec/dispatcher_lint.rb
|
@@ -96,12 +91,11 @@ files:
|
|
96
91
|
- lib/ruby_event_store/subscriptions.rb
|
97
92
|
- lib/ruby_event_store/transform_keys.rb
|
98
93
|
- lib/ruby_event_store/version.rb
|
99
|
-
- ruby_event_store.gemspec
|
100
94
|
homepage: https://railseventstore.org
|
101
95
|
licenses:
|
102
96
|
- MIT
|
103
97
|
metadata:
|
104
|
-
homepage_uri: https://railseventstore.org
|
98
|
+
homepage_uri: https://railseventstore.org
|
105
99
|
changelog_uri: https://github.com/RailsEventStore/rails_event_store/releases
|
106
100
|
source_code_uri: https://github.com/RailsEventStore/rails_event_store
|
107
101
|
bug_tracker_uri: https://github.com/RailsEventStore/rails_event_store/issues
|
@@ -113,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
107
|
requirements:
|
114
108
|
- - ">="
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
110
|
+
version: '2.6'
|
117
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
112
|
requirements:
|
119
113
|
- - ">="
|
@@ -123,5 +117,5 @@ requirements: []
|
|
123
117
|
rubygems_version: 3.1.4
|
124
118
|
signing_key:
|
125
119
|
specification_version: 4
|
126
|
-
summary:
|
120
|
+
summary: Implementation of an event store in Ruby
|
127
121
|
test_files: []
|
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,11 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
|
-
|
4
|
-
gemspec
|
5
|
-
|
6
|
-
eval_gemfile File.expand_path('../support/bundler/Gemfile.shared', __dir__)
|
7
|
-
|
8
|
-
gem 'protobuf_nested_struct'
|
9
|
-
gem 'google-protobuf', '~> 3.12.2', '>= 3.12.2'
|
10
|
-
gem 'activesupport', '~> 5.0'
|
11
|
-
gem 'concurrent-ruby', github: 'ruby-concurrency/concurrent-ruby', ref: 'c4cbc968c55e5b983dae953095761896220c46d1'
|
data/Makefile
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
GEM_VERSION = $(shell cat ../RES_VERSION)
|
2
|
-
GEM_NAME = ruby_event_store
|
3
|
-
REQUIRE = $(GEM_NAME)
|
4
|
-
IGNORE = RubyEventStore::InMemoryRepository\#append_with_synchronize \
|
5
|
-
RubyEventStore::Client::Within\#add_thread_subscribers \
|
6
|
-
RubyEventStore::Client::Within\#add_thread_global_subscribers \
|
7
|
-
RubyEventStore::Client::Within\#call \
|
8
|
-
RubyEventStore::Client\#default_correlation_id_generator \
|
9
|
-
RubyEventStore::Mappers::InMemoryEncryptionKeyRepository\#prepare_encrypt \
|
10
|
-
RubyEventStore::Mappers::EncryptionKey\#prepare_encrypt \
|
11
|
-
RubyEventStore::Mappers::EncryptionKey\#prepare_decrypt \
|
12
|
-
RubyEventStore::Mappers::EncryptionKey\#prepare_auth_data \
|
13
|
-
RubyEventStore::Mappers::EncryptionKey\#encrypt_authenticated \
|
14
|
-
RubyEventStore::Mappers::EncryptionKey\#ciphertext_from_authenticated
|
15
|
-
|
16
|
-
SUBJECT ?= RubyEventStore*
|
17
|
-
|
18
|
-
include ../support/make/install.mk
|
19
|
-
include ../support/make/test.mk
|
20
|
-
include ../support/make/mutant.mk
|
21
|
-
include ../support/make/gem.mk
|
22
|
-
include ../support/make/help.mk
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyEventStore
|
4
|
-
class Proto < RubyEventStore::Event
|
5
|
-
def event_type
|
6
|
-
data.class.descriptor.name
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
module Mappers
|
11
|
-
class Protobuf < PipelineMapper
|
12
|
-
def initialize(events_class_remapping: {})
|
13
|
-
super(Pipeline.new(
|
14
|
-
to_domain_event: Transformation::ProtoEvent.new,
|
15
|
-
transformations: [
|
16
|
-
Transformation::ProtobufEncoder.new,
|
17
|
-
Transformation::EventClassRemapper.new(events_class_remapping),
|
18
|
-
Transformation::ProtobufNestedStructMetadata.new,
|
19
|
-
]
|
20
|
-
))
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'forwardable'
|
4
|
-
|
5
|
-
module RubyEventStore
|
6
|
-
module Mappers
|
7
|
-
module Transformation
|
8
|
-
class Item
|
9
|
-
include Enumerable
|
10
|
-
extend Forwardable
|
11
|
-
|
12
|
-
def initialize(h)
|
13
|
-
@h = {}
|
14
|
-
h.each do |k, v|
|
15
|
-
@h[k] = (v)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
def event_id
|
20
|
-
fetch(:event_id)
|
21
|
-
end
|
22
|
-
|
23
|
-
def metadata
|
24
|
-
fetch(:metadata)
|
25
|
-
end
|
26
|
-
|
27
|
-
def data
|
28
|
-
fetch(:data)
|
29
|
-
end
|
30
|
-
|
31
|
-
def event_type
|
32
|
-
fetch(:event_type)
|
33
|
-
end
|
34
|
-
|
35
|
-
def ==(other_event)
|
36
|
-
other_event.instance_of?(self.class) &&
|
37
|
-
other_event.to_h.eql?(to_h)
|
38
|
-
end
|
39
|
-
alias_method :eql?, :==
|
40
|
-
|
41
|
-
def merge(args)
|
42
|
-
Item.new(@h.merge(args))
|
43
|
-
end
|
44
|
-
|
45
|
-
def to_h
|
46
|
-
@h.dup
|
47
|
-
end
|
48
|
-
|
49
|
-
SAFE_HASH_METHODS = [:[], :fetch]
|
50
|
-
delegate SAFE_HASH_METHODS => :@h
|
51
|
-
|
52
|
-
private_constant :SAFE_HASH_METHODS
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyEventStore
|
4
|
-
module Mappers
|
5
|
-
module Transformation
|
6
|
-
class ProtoEvent < DomainEvent
|
7
|
-
def load(item)
|
8
|
-
Proto.new(
|
9
|
-
event_id: item.event_id,
|
10
|
-
data: item.data,
|
11
|
-
metadata: item.metadata
|
12
|
-
)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyEventStore
|
4
|
-
module Mappers
|
5
|
-
module Transformation
|
6
|
-
class ProtobufEncoder
|
7
|
-
def dump(item)
|
8
|
-
item.merge(data: encode_data(item.data))
|
9
|
-
end
|
10
|
-
|
11
|
-
def load(item)
|
12
|
-
item.merge(data: load_data(item.event_type, item.data))
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
def encode_data(data)
|
17
|
-
begin
|
18
|
-
data.class.encode(data)
|
19
|
-
rescue NoMethodError
|
20
|
-
raise ProtobufEncodingFailed
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def load_data(event_type, protobuf_data)
|
25
|
-
Google::Protobuf::DescriptorPool.generated_pool.lookup(event_type).msgclass.decode(protobuf_data)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyEventStore
|
4
|
-
module Mappers
|
5
|
-
module Transformation
|
6
|
-
class ProtobufNestedStructMetadata
|
7
|
-
def initialize
|
8
|
-
require_optional_dependency
|
9
|
-
end
|
10
|
-
|
11
|
-
def dump(item)
|
12
|
-
metadata = ProtobufNestedStruct::HashMapStringValue.dump(item.metadata)
|
13
|
-
item.merge(metadata: metadata)
|
14
|
-
end
|
15
|
-
|
16
|
-
def load(item)
|
17
|
-
metadata = ProtobufNestedStruct::HashMapStringValue.load(item.metadata)
|
18
|
-
symbolize = SymbolizeMetadataKeys.new
|
19
|
-
symbolize.load(item.merge(metadata: metadata))
|
20
|
-
end
|
21
|
-
|
22
|
-
def require_optional_dependency
|
23
|
-
require 'protobuf_nested_struct'
|
24
|
-
rescue LoadError
|
25
|
-
raise LoadError, "cannot load such file -- protobuf_nested_struct. Add protobuf_nested_struct gem to Gemfile"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,34 +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
|
-
@serializer = serializer
|
11
|
-
end
|
12
|
-
attr_reader :serializer
|
13
|
-
|
14
|
-
def dump(item)
|
15
|
-
Item.new(
|
16
|
-
event_id: item.event_id,
|
17
|
-
metadata: serializer.dump(item.metadata),
|
18
|
-
data: serializer.dump(item.data),
|
19
|
-
event_type: item.event_type
|
20
|
-
)
|
21
|
-
end
|
22
|
-
|
23
|
-
def load(item)
|
24
|
-
Item.new(
|
25
|
-
event_id: item.event_id,
|
26
|
-
metadata: serializer.load(item.metadata),
|
27
|
-
data: serializer.load(item.data),
|
28
|
-
event_type: item.event_type
|
29
|
-
)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RubyEventStore
|
4
|
-
module Mappers
|
5
|
-
module Transformation
|
6
|
-
class SerializedRecord
|
7
|
-
def dump(item)
|
8
|
-
RubyEventStore::SerializedRecord.new(
|
9
|
-
event_id: item.event_id,
|
10
|
-
metadata: item.metadata,
|
11
|
-
data: item.data,
|
12
|
-
event_type: item.event_type
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
16
|
-
def load(serialized_record)
|
17
|
-
Item.new(
|
18
|
-
event_id: serialized_record.event_id,
|
19
|
-
metadata: serialized_record.metadata,
|
20
|
-
data: serialized_record.data,
|
21
|
-
event_type: serialized_record.event_type
|
22
|
-
)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|