ruby_event_store 1.3.0 → 2.0.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/.mutant.yml +1 -0
- data/Gemfile +2 -4
- data/Gemfile.lock +118 -0
- data/Makefile +13 -3
- data/lib/ruby_event_store.rb +4 -7
- data/lib/ruby_event_store/broker.rb +3 -3
- data/lib/ruby_event_store/client.rb +47 -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/mappers/default.rb +28 -6
- data/lib/ruby_event_store/mappers/deprecated_wrapper.rb +33 -0
- data/lib/ruby_event_store/mappers/encryption_mapper.rb +1 -4
- data/lib/ruby_event_store/mappers/instrumented_mapper.rb +8 -4
- data/lib/ruby_event_store/mappers/json_mapper.rb +2 -4
- data/lib/ruby_event_store/mappers/pipeline.rb +26 -5
- data/lib/ruby_event_store/mappers/pipeline_mapper.rb +6 -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/serialization.rb +16 -14
- 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/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 +200 -36
- data/lib/ruby_event_store/spec/mapper_lint.rb +6 -6
- data/lib/ruby_event_store/spec/subscriptions_lint.rb +6 -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/version.rb +1 -1
- data/ruby_event_store.gemspec +0 -2
- metadata +8 -9
- 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/serialized_record.rb +0 -27
@@ -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,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
|