ruby_event_store 0.19.0 → 0.20.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/Makefile +1 -1
- data/lib/ruby_event_store.rb +2 -0
- data/lib/ruby_event_store/mappers/default.rb +35 -0
- data/lib/ruby_event_store/serialized_record.rb +15 -0
- data/lib/ruby_event_store/version.rb +1 -1
- data/ruby_event_store.gemspec +3 -1
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ce3d71e182f3a66da41357e70d63e7a263cec63
|
4
|
+
data.tar.gz: b90774755a72d60fd27c3a59652fce02222cfcdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98b5e5b21d3bed4f32702a4153177c554453c2413a6213ec33086e9c5158f93f9987de347ff0574e5379a057a2476c64c2777a050ede6da884b30a4688ec8bac
|
7
|
+
data.tar.gz: a1de4d1c609d379f35b98b8f409fefe4e60553a0e376671f66dc02440bb00b4b78e863937db0096a47a8839871d380bfd21f3cdbf794f0e9bcfa2f89687722d3
|
data/Makefile
CHANGED
@@ -10,7 +10,7 @@ test: ## Run tests
|
|
10
10
|
|
11
11
|
mutate: test ## Run mutation tests
|
12
12
|
@echo "Running mutation tests - only 100% free mutation will be accepted"
|
13
|
-
@bundle exec mutant --include lib --require ruby_event_store --use rspec "RubyEventStore*" --ignore-subject "RubyEventStore.const_missing" --ignore-subject "RubyEventStore::InMemoryRepository#append_with_synchronize" --ignore-subject "RubyEventStore::InMemoryRepository#normalize_to_array" --ignore-subject "RubyEventStore::Client#normalize_to_array"
|
13
|
+
@bundle exec mutant --include lib --require ruby_event_store --use rspec "RubyEventStore*" --ignore-subject "RubyEventStore.const_missing" --ignore-subject "RubyEventStore::InMemoryRepository#append_with_synchronize" --ignore-subject "RubyEventStore::InMemoryRepository#normalize_to_array" --ignore-subject "RubyEventStore::Client#normalize_to_array" --ignore-subject "RubyEventStore::SerializedRecord"
|
14
14
|
|
15
15
|
build:
|
16
16
|
@gem build -V ruby_event_store.gemspec
|
data/lib/ruby_event_store.rb
CHANGED
@@ -7,4 +7,6 @@ require 'ruby_event_store/constants'
|
|
7
7
|
require 'ruby_event_store/client'
|
8
8
|
require 'ruby_event_store/event'
|
9
9
|
require 'ruby_event_store/deprecations'
|
10
|
+
require 'ruby_event_store/serialized_record'
|
11
|
+
require 'ruby_event_store/mappers/default'
|
10
12
|
require 'ruby_event_store/version'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'active_support'
|
3
|
+
|
4
|
+
module RubyEventStore
|
5
|
+
module Mappers
|
6
|
+
class Default
|
7
|
+
def initialize(serializer: YAML, events_class_remapping: {})
|
8
|
+
@serializer = serializer
|
9
|
+
@events_class_remapping = events_class_remapping
|
10
|
+
end
|
11
|
+
|
12
|
+
def event_to_serialized_record(domain_event)
|
13
|
+
SerializedRecord.new(
|
14
|
+
event_id: domain_event.event_id,
|
15
|
+
metadata: serializer.dump(domain_event.metadata),
|
16
|
+
data: serializer.dump(domain_event.data),
|
17
|
+
event_type: domain_event.class.name
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def serialized_record_to_event(record)
|
22
|
+
event_type = events_class_remapping.fetch(record.event_type) { record.event_type }
|
23
|
+
ActiveSupport::Inflector.constantize(event_type).new(
|
24
|
+
event_id: record.event_id,
|
25
|
+
metadata: serializer.load(record.metadata),
|
26
|
+
data: serializer.load(record.data)
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
attr_reader :serializer, :events_class_remapping
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module RubyEventStore
|
2
|
+
class SerializedRecord
|
3
|
+
StringsRequired = Class.new(StandardError)
|
4
|
+
def initialize(event_id:, data:, metadata:, event_type:)
|
5
|
+
raise StringsRequired unless [event_id, data, metadata, event_type].all? { |v| v.instance_of?(String) }
|
6
|
+
@event_id = event_id
|
7
|
+
@data = data
|
8
|
+
@metadata = metadata
|
9
|
+
@event_type = event_type
|
10
|
+
freeze
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :event_id, :data, :metadata, :event_type
|
14
|
+
end
|
15
|
+
end
|
data/ruby_event_store.gemspec
CHANGED
@@ -12,13 +12,15 @@ Gem::Specification.new do |spec|
|
|
12
12
|
|
13
13
|
spec.summary = %q{Event Store in Ruby}
|
14
14
|
spec.description = %q{Implementation of Event Store in Ruby}
|
15
|
-
spec.homepage = 'https://github.com/
|
15
|
+
spec.homepage = 'https://github.com/RailsEventStore/ruby_event_store'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
18
|
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ['lib']
|
21
21
|
|
22
|
+
|
23
|
+
spec.add_dependency 'activesupport'
|
22
24
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
23
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
24
26
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_event_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arkency
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,15 +98,17 @@ files:
|
|
84
98
|
- lib/ruby_event_store/errors.rb
|
85
99
|
- lib/ruby_event_store/event.rb
|
86
100
|
- lib/ruby_event_store/in_memory_repository.rb
|
101
|
+
- lib/ruby_event_store/mappers/default.rb
|
87
102
|
- lib/ruby_event_store/projection.rb
|
88
103
|
- lib/ruby_event_store/pub_sub/broker.rb
|
89
104
|
- lib/ruby_event_store/pub_sub/dispatcher.rb
|
105
|
+
- lib/ruby_event_store/serialized_record.rb
|
90
106
|
- lib/ruby_event_store/spec/dispatcher_lint.rb
|
91
107
|
- lib/ruby_event_store/spec/event_broker_lint.rb
|
92
108
|
- lib/ruby_event_store/spec/event_repository_lint.rb
|
93
109
|
- lib/ruby_event_store/version.rb
|
94
110
|
- ruby_event_store.gemspec
|
95
|
-
homepage: https://github.com/
|
111
|
+
homepage: https://github.com/RailsEventStore/ruby_event_store
|
96
112
|
licenses:
|
97
113
|
- MIT
|
98
114
|
metadata: {}
|
@@ -112,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
128
|
version: '0'
|
113
129
|
requirements: []
|
114
130
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.6.
|
131
|
+
rubygems_version: 2.6.11
|
116
132
|
signing_key:
|
117
133
|
specification_version: 4
|
118
134
|
summary: Event Store in Ruby
|