sandthorn 0.6.0 → 0.7.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/Gemfile.lock +6 -6
- data/lib/sandthorn.rb +20 -11
- data/lib/sandthorn/aggregate_root_base.rb +0 -1
- data/lib/sandthorn/aggregate_root_snapshot.rb +2 -2
- data/lib/sandthorn/event.rb +60 -0
- data/lib/sandthorn/event_inspector.rb +1 -1
- data/lib/sandthorn/version.rb +1 -1
- data/sandthorn.gemspec +3 -3
- data/spec/event_spec.rb +99 -0
- data/spec/sandthorn_spec.rb +8 -0
- metadata +40 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 692bd55290b3092568fa5d7ed3d18be9f4d8e581
|
4
|
+
data.tar.gz: 41f6b41d080e0b6b2304412a25a435a7c9979021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 764d97697a9b452ba6acdc82b13006c6c6b1118b481908c8a8e17c5b4acd3286009030e0ea5c74d584514cad2ee9f848d4ea8566cff5d9590c6c7c0f345682b0
|
7
|
+
data.tar.gz: c3a218cc83d50f65a319200293f7110ed2be7788af640a58ac94efbe439b9da824f3ce1049264c149589e54f556ba273e44d9e95a2a10bf81849267dce71693a
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sandthorn (0.
|
4
|
+
sandthorn (0.7.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -22,7 +22,7 @@ GEM
|
|
22
22
|
mime-types (2.4.3)
|
23
23
|
multi_json (1.10.1)
|
24
24
|
netrc (0.8.0)
|
25
|
-
pg (0.
|
25
|
+
pg (0.18.1)
|
26
26
|
pry (0.10.1)
|
27
27
|
coderay (~> 1.1.0)
|
28
28
|
method_source (~> 0.8.1)
|
@@ -46,10 +46,10 @@ GEM
|
|
46
46
|
rspec-mocks (3.1.3)
|
47
47
|
rspec-support (~> 3.1.0)
|
48
48
|
rspec-support (3.1.2)
|
49
|
-
sandthorn_driver_sequel (
|
49
|
+
sandthorn_driver_sequel (2.0.0)
|
50
50
|
pg
|
51
|
-
sequel
|
52
|
-
sequel (4.
|
51
|
+
sequel (~> 4.17)
|
52
|
+
sequel (4.20.0)
|
53
53
|
simplecov (0.9.1)
|
54
54
|
docile (~> 1.1.0)
|
55
55
|
multi_json (~> 1.0)
|
@@ -77,5 +77,5 @@ DEPENDENCIES
|
|
77
77
|
rake
|
78
78
|
rspec (~> 3.0)
|
79
79
|
sandthorn!
|
80
|
-
sandthorn_driver_sequel (~>
|
80
|
+
sandthorn_driver_sequel (~> 2.0)
|
81
81
|
sqlite3
|
data/lib/sandthorn.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "sandthorn/version"
|
2
2
|
require "sandthorn/errors"
|
3
|
+
require "sandthorn/event"
|
3
4
|
require "sandthorn/aggregate_root"
|
4
5
|
require "sandthorn/event_stores"
|
5
6
|
require 'yaml'
|
@@ -45,38 +46,42 @@ module Sandthorn
|
|
45
46
|
SecureRandom.uuid
|
46
47
|
end
|
47
48
|
|
48
|
-
def get_aggregate_events
|
49
|
-
event_store_for(aggregate_type).get_aggregate_events aggregate_id
|
49
|
+
def get_aggregate_events aggregate_type, aggregate_id
|
50
|
+
event_store_for(aggregate_type).get_aggregate_events aggregate_id
|
50
51
|
end
|
51
52
|
|
52
|
-
def save_events aggregate_events,
|
53
|
-
event_store_for(aggregate_type).save_events aggregate_events,
|
53
|
+
def save_events aggregate_events, aggregate_id, aggregate_type
|
54
|
+
event_store_for(aggregate_type).save_events aggregate_events, aggregate_id, *aggregate_type
|
54
55
|
end
|
55
56
|
|
56
57
|
def get_aggregate aggregate_id, aggregate_type
|
57
|
-
event_store_for(aggregate_type).
|
58
|
+
event_store_for(aggregate_type).get_aggregate_events_from_snapshot aggregate_id
|
58
59
|
end
|
59
60
|
|
60
|
-
def save_snapshot
|
61
|
-
|
61
|
+
def save_snapshot(
|
62
|
+
aggregate_type: missing_key(:aggregate_type),
|
63
|
+
aggregate_snapshot: missing_key(:aggregate_snapshot),
|
64
|
+
aggregate_id: missing_key(:aggregate_id)
|
65
|
+
)
|
66
|
+
event_store_for(aggregate_type).save_snapshot(aggregate_snapshot, aggregate_id)
|
62
67
|
end
|
63
68
|
|
64
69
|
def get_aggregate_list_by_type aggregate_type
|
65
|
-
event_store_for(aggregate_type).
|
70
|
+
event_store_for(aggregate_type).get_aggregate_ids(aggregate_type: aggregate_type)
|
66
71
|
end
|
67
72
|
|
68
73
|
def get_events event_store: :default, aggregate_types: [], take: 0, after_sequence_number: 0
|
69
74
|
event_store = find_event_store(event_store)
|
70
75
|
events = event_store.get_events aggregate_types: aggregate_types, take: take, after_sequence_number: after_sequence_number
|
71
|
-
events.
|
76
|
+
events.map do |event|
|
72
77
|
event[:event_args] = deserialize event[:event_data]
|
73
78
|
event.delete(:event_data)
|
79
|
+
Event.new(event)
|
74
80
|
end
|
75
|
-
events
|
76
81
|
end
|
77
82
|
|
78
83
|
def obsolete_snapshots type_names: [], min_event_distance: 0
|
79
|
-
obsolete = event_stores.flat_map { |event_store| event_store.obsolete_snapshots(
|
84
|
+
obsolete = event_stores.flat_map { |event_store| event_store.obsolete_snapshots(aggregate_types: type_names, max_event_distance: min_event_distance) }
|
80
85
|
obsolete.map do |single_obsolete|
|
81
86
|
type = Kernel.const_get single_obsolete[:aggregate_type]
|
82
87
|
aggregate = type.aggregate_find(single_obsolete[:aggregate_id]).tap do |agg|
|
@@ -97,6 +102,10 @@ module Sandthorn
|
|
97
102
|
end
|
98
103
|
end
|
99
104
|
|
105
|
+
def missing_key(key)
|
106
|
+
raise ArgumentError, "missing keyword: #{key}"
|
107
|
+
end
|
108
|
+
|
100
109
|
class Configuration
|
101
110
|
extend Forwardable
|
102
111
|
|
@@ -27,7 +27,7 @@ module Sandthorn
|
|
27
27
|
end
|
28
28
|
@aggregate_snapshot[:event_data] = Sandthorn.serialize @aggregate_snapshot[:event_args]
|
29
29
|
@aggregate_snapshot[:event_args] = nil
|
30
|
-
Sandthorn.save_snapshot @aggregate_snapshot, @aggregate_id, self.class
|
30
|
+
Sandthorn.save_snapshot(aggregate_snapshot: @aggregate_snapshot, aggregate_id: @aggregate_id, aggregate_type: self.class)
|
31
31
|
@aggregate_snapshot = nil
|
32
32
|
end
|
33
33
|
private
|
@@ -44,7 +44,7 @@ module Sandthorn
|
|
44
44
|
.serialize aggregate_snapshot[:event_args]
|
45
45
|
|
46
46
|
@aggregate_snapshot[:event_args] = nil
|
47
|
-
Sandthorn.save_snapshot aggregate_snapshot, aggregate_id
|
47
|
+
Sandthorn.save_snapshot aggregate_snapshot, aggregate_id
|
48
48
|
@aggregate_snapshot = nil
|
49
49
|
end
|
50
50
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
|
3
|
+
module Sandthorn
|
4
|
+
class Event < SimpleDelegator
|
5
|
+
ATTRS = %i(
|
6
|
+
aggregate_id
|
7
|
+
aggregate_type
|
8
|
+
aggregate_version
|
9
|
+
timestamp
|
10
|
+
event_name
|
11
|
+
event_args
|
12
|
+
method_args
|
13
|
+
trace
|
14
|
+
)
|
15
|
+
|
16
|
+
ATTRS.each do |attr|
|
17
|
+
define_method(attr) do
|
18
|
+
self[attr]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def new_values
|
23
|
+
@changed_attributes ||= build_new_values
|
24
|
+
end
|
25
|
+
|
26
|
+
def attribute_deltas
|
27
|
+
@attribute_deltas ||= build_deltas
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def build_deltas
|
33
|
+
raw_deltas.map { |delta| AttributeDelta.new(delta) }
|
34
|
+
end
|
35
|
+
|
36
|
+
def build_new_values
|
37
|
+
attribute_deltas.each_with_object({}) do |delta, changed|
|
38
|
+
changed[delta.attribute_name.to_sym] = delta.new_value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def raw_deltas
|
43
|
+
fetch(:event_args, {}).fetch(:attribute_deltas, [])
|
44
|
+
end
|
45
|
+
|
46
|
+
class AttributeDelta < SimpleDelegator
|
47
|
+
ATTRS = %i(
|
48
|
+
attribute_name
|
49
|
+
old_value
|
50
|
+
new_value
|
51
|
+
)
|
52
|
+
|
53
|
+
ATTRS.each do |attr|
|
54
|
+
define_method(attr) do
|
55
|
+
self[attr]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -46,7 +46,7 @@ module Sandthorn
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def events_with_trace_info
|
49
|
-
saved = Sandthorn.get_aggregate_events
|
49
|
+
saved = Sandthorn.get_aggregate_events(self.class, aggregate_id)
|
50
50
|
unsaved = self.aggregate_events
|
51
51
|
all = saved
|
52
52
|
.concat(unsaved)
|
data/lib/sandthorn/version.rb
CHANGED
data/sandthorn.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'sandthorn/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "sandthorn"
|
8
8
|
spec.version = Sandthorn::VERSION
|
9
|
-
spec.authors = ["Lars Krantz", "Morgan Hallgren"]
|
10
|
-
spec.email = ["lars.krantz@alaz.se", "morgan.hallgren@gmail.com"]
|
9
|
+
spec.authors = ["Lars Krantz", "Morgan Hallgren", "Jesper Josefsson"]
|
10
|
+
spec.email = ["lars.krantz@alaz.se", "morgan.hallgren@gmail.com", "jesper.josefsson@gmail.com"]
|
11
11
|
spec.description = %q{Event sourcing gem}
|
12
12
|
spec.summary = %q{Event sourcing gem}
|
13
13
|
spec.homepage = ""
|
@@ -29,5 +29,5 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "autotest-standalone"
|
30
30
|
spec.add_development_dependency "sqlite3"
|
31
31
|
spec.add_development_dependency "coveralls"
|
32
|
-
spec.add_development_dependency "sandthorn_driver_sequel", "~>
|
32
|
+
spec.add_development_dependency "sandthorn_driver_sequel", "~> 2.0"
|
33
33
|
end
|
data/spec/event_spec.rb
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Sandthorn
|
4
|
+
describe Event do
|
5
|
+
let(:event_data) do
|
6
|
+
JSON.parse(
|
7
|
+
'{"aggregate_type":"SandthornProduct",
|
8
|
+
"aggregate_version":1,
|
9
|
+
"aggregate_id":"62d88e96-c551-4157-a837-1674e3f2698d",
|
10
|
+
"sequence_number":114,
|
11
|
+
"event_name":"new",
|
12
|
+
"timestamp":"2014-08-16 20:02:05 UTC",
|
13
|
+
"event_args":{"method_name":"new",
|
14
|
+
"method_args":[{"name":"Hahah",
|
15
|
+
"price":"50",
|
16
|
+
"stock_status":"outofstock"}],
|
17
|
+
"attribute_deltas":[{"attribute_name":"name",
|
18
|
+
"old_value":null,
|
19
|
+
"new_value":"Hahah"},
|
20
|
+
{"attribute_name":"price",
|
21
|
+
"old_value":null,
|
22
|
+
"new_value":50},
|
23
|
+
{"attribute_name":"stock_status",
|
24
|
+
"old_value":null,
|
25
|
+
"new_value":"outofstock"},
|
26
|
+
{"attribute_name":"active",
|
27
|
+
"old_value":null,
|
28
|
+
"new_value":true},
|
29
|
+
{"attribute_name":"on_sale",
|
30
|
+
"old_value":null,
|
31
|
+
"new_value":false},
|
32
|
+
{"attribute_name":"aggregate_id",
|
33
|
+
"old_value":null,
|
34
|
+
"new_value":"62d88e96-c551-4157-a837-1674e3f2698d"}]}}', symbolize_names: true)
|
35
|
+
end
|
36
|
+
|
37
|
+
let(:subject) { Event.new(event_data) }
|
38
|
+
describe "primitive attributes" do
|
39
|
+
attrs = %i(
|
40
|
+
aggregate_id
|
41
|
+
aggregate_type
|
42
|
+
aggregate_version
|
43
|
+
timestamp
|
44
|
+
event_name
|
45
|
+
event_args
|
46
|
+
method_args
|
47
|
+
trace
|
48
|
+
)
|
49
|
+
|
50
|
+
attrs.each do |attr|
|
51
|
+
it "has an accessor for #{attr}" do
|
52
|
+
expect(subject.send(attr)).to eq(subject[attr])
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "#new_values" do
|
58
|
+
context "when given the value of an attribute that has changed" do
|
59
|
+
it "returns the new value" do
|
60
|
+
expect(subject.new_values[:name]).to eq("Hahah")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when given a non-existing attribute name" do
|
65
|
+
it "returns nil" do
|
66
|
+
expect(subject.new_values[:foo]).to be_nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "#attributes_deltas" do
|
72
|
+
it "returns something enumerable" do
|
73
|
+
expect(subject.attribute_deltas).to respond_to(:each)
|
74
|
+
end
|
75
|
+
|
76
|
+
describe "a delta" do
|
77
|
+
let(:wrapped_delta) { subject.attribute_deltas.first }
|
78
|
+
let(:raw_delta) { subject[:event_args][:attribute_deltas].first }
|
79
|
+
describe "#attribute_name" do
|
80
|
+
it "has the same value as the raw hash" do
|
81
|
+
expect(wrapped_delta.attribute_name).to eq(raw_delta[:attribute_name])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "#new_value" do
|
86
|
+
it "has the same value as the raw hash" do
|
87
|
+
expect(wrapped_delta.new_value).to eq(raw_delta[:new_value])
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#old_value" do
|
92
|
+
it "has the same value as the raw hash" do
|
93
|
+
expect(wrapped_delta.old_value).to eq(raw_delta[:old_value])
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/spec/sandthorn_spec.rb
CHANGED
metadata
CHANGED
@@ -1,184 +1,186 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sandthorn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Krantz
|
8
8
|
- Morgan Hallgren
|
9
|
+
- Jesper Josefsson
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2015-03-
|
13
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: bundler
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
17
18
|
requirements:
|
18
|
-
- -
|
19
|
+
- - ~>
|
19
20
|
- !ruby/object:Gem::Version
|
20
21
|
version: '1.3'
|
21
22
|
type: :development
|
22
23
|
prerelease: false
|
23
24
|
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
requirements:
|
25
|
-
- -
|
26
|
+
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
version: '1.3'
|
28
29
|
- !ruby/object:Gem::Dependency
|
29
30
|
name: rake
|
30
31
|
requirement: !ruby/object:Gem::Requirement
|
31
32
|
requirements:
|
32
|
-
- -
|
33
|
+
- - '>='
|
33
34
|
- !ruby/object:Gem::Version
|
34
35
|
version: '0'
|
35
36
|
type: :development
|
36
37
|
prerelease: false
|
37
38
|
version_requirements: !ruby/object:Gem::Requirement
|
38
39
|
requirements:
|
39
|
-
- -
|
40
|
+
- - '>='
|
40
41
|
- !ruby/object:Gem::Version
|
41
42
|
version: '0'
|
42
43
|
- !ruby/object:Gem::Dependency
|
43
44
|
name: rspec
|
44
45
|
requirement: !ruby/object:Gem::Requirement
|
45
46
|
requirements:
|
46
|
-
- -
|
47
|
+
- - ~>
|
47
48
|
- !ruby/object:Gem::Version
|
48
49
|
version: '3.0'
|
49
50
|
type: :development
|
50
51
|
prerelease: false
|
51
52
|
version_requirements: !ruby/object:Gem::Requirement
|
52
53
|
requirements:
|
53
|
-
- -
|
54
|
+
- - ~>
|
54
55
|
- !ruby/object:Gem::Version
|
55
56
|
version: '3.0'
|
56
57
|
- !ruby/object:Gem::Dependency
|
57
58
|
name: gem-release
|
58
59
|
requirement: !ruby/object:Gem::Requirement
|
59
60
|
requirements:
|
60
|
-
- -
|
61
|
+
- - '>='
|
61
62
|
- !ruby/object:Gem::Version
|
62
63
|
version: '0'
|
63
64
|
type: :development
|
64
65
|
prerelease: false
|
65
66
|
version_requirements: !ruby/object:Gem::Requirement
|
66
67
|
requirements:
|
67
|
-
- -
|
68
|
+
- - '>='
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: '0'
|
70
71
|
- !ruby/object:Gem::Dependency
|
71
72
|
name: pry
|
72
73
|
requirement: !ruby/object:Gem::Requirement
|
73
74
|
requirements:
|
74
|
-
- -
|
75
|
+
- - '>='
|
75
76
|
- !ruby/object:Gem::Version
|
76
77
|
version: '0'
|
77
78
|
type: :development
|
78
79
|
prerelease: false
|
79
80
|
version_requirements: !ruby/object:Gem::Requirement
|
80
81
|
requirements:
|
81
|
-
- -
|
82
|
+
- - '>='
|
82
83
|
- !ruby/object:Gem::Version
|
83
84
|
version: '0'
|
84
85
|
- !ruby/object:Gem::Dependency
|
85
86
|
name: pry-doc
|
86
87
|
requirement: !ruby/object:Gem::Requirement
|
87
88
|
requirements:
|
88
|
-
- -
|
89
|
+
- - '>='
|
89
90
|
- !ruby/object:Gem::Version
|
90
91
|
version: '0'
|
91
92
|
type: :development
|
92
93
|
prerelease: false
|
93
94
|
version_requirements: !ruby/object:Gem::Requirement
|
94
95
|
requirements:
|
95
|
-
- -
|
96
|
+
- - '>='
|
96
97
|
- !ruby/object:Gem::Version
|
97
98
|
version: '0'
|
98
99
|
- !ruby/object:Gem::Dependency
|
99
100
|
name: awesome_print
|
100
101
|
requirement: !ruby/object:Gem::Requirement
|
101
102
|
requirements:
|
102
|
-
- -
|
103
|
+
- - '>='
|
103
104
|
- !ruby/object:Gem::Version
|
104
105
|
version: '0'
|
105
106
|
type: :development
|
106
107
|
prerelease: false
|
107
108
|
version_requirements: !ruby/object:Gem::Requirement
|
108
109
|
requirements:
|
109
|
-
- -
|
110
|
+
- - '>='
|
110
111
|
- !ruby/object:Gem::Version
|
111
112
|
version: '0'
|
112
113
|
- !ruby/object:Gem::Dependency
|
113
114
|
name: autotest-standalone
|
114
115
|
requirement: !ruby/object:Gem::Requirement
|
115
116
|
requirements:
|
116
|
-
- -
|
117
|
+
- - '>='
|
117
118
|
- !ruby/object:Gem::Version
|
118
119
|
version: '0'
|
119
120
|
type: :development
|
120
121
|
prerelease: false
|
121
122
|
version_requirements: !ruby/object:Gem::Requirement
|
122
123
|
requirements:
|
123
|
-
- -
|
124
|
+
- - '>='
|
124
125
|
- !ruby/object:Gem::Version
|
125
126
|
version: '0'
|
126
127
|
- !ruby/object:Gem::Dependency
|
127
128
|
name: sqlite3
|
128
129
|
requirement: !ruby/object:Gem::Requirement
|
129
130
|
requirements:
|
130
|
-
- -
|
131
|
+
- - '>='
|
131
132
|
- !ruby/object:Gem::Version
|
132
133
|
version: '0'
|
133
134
|
type: :development
|
134
135
|
prerelease: false
|
135
136
|
version_requirements: !ruby/object:Gem::Requirement
|
136
137
|
requirements:
|
137
|
-
- -
|
138
|
+
- - '>='
|
138
139
|
- !ruby/object:Gem::Version
|
139
140
|
version: '0'
|
140
141
|
- !ruby/object:Gem::Dependency
|
141
142
|
name: coveralls
|
142
143
|
requirement: !ruby/object:Gem::Requirement
|
143
144
|
requirements:
|
144
|
-
- -
|
145
|
+
- - '>='
|
145
146
|
- !ruby/object:Gem::Version
|
146
147
|
version: '0'
|
147
148
|
type: :development
|
148
149
|
prerelease: false
|
149
150
|
version_requirements: !ruby/object:Gem::Requirement
|
150
151
|
requirements:
|
151
|
-
- -
|
152
|
+
- - '>='
|
152
153
|
- !ruby/object:Gem::Version
|
153
154
|
version: '0'
|
154
155
|
- !ruby/object:Gem::Dependency
|
155
156
|
name: sandthorn_driver_sequel
|
156
157
|
requirement: !ruby/object:Gem::Requirement
|
157
158
|
requirements:
|
158
|
-
- -
|
159
|
+
- - ~>
|
159
160
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
161
|
+
version: '2.0'
|
161
162
|
type: :development
|
162
163
|
prerelease: false
|
163
164
|
version_requirements: !ruby/object:Gem::Requirement
|
164
165
|
requirements:
|
165
|
-
- -
|
166
|
+
- - ~>
|
166
167
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
168
|
+
version: '2.0'
|
168
169
|
description: Event sourcing gem
|
169
170
|
email:
|
170
171
|
- lars.krantz@alaz.se
|
171
172
|
- morgan.hallgren@gmail.com
|
173
|
+
- jesper.josefsson@gmail.com
|
172
174
|
executables: []
|
173
175
|
extensions: []
|
174
176
|
extra_rdoc_files: []
|
175
177
|
files:
|
176
|
-
-
|
177
|
-
-
|
178
|
-
-
|
179
|
-
-
|
180
|
-
-
|
181
|
-
-
|
178
|
+
- .autotest
|
179
|
+
- .gitignore
|
180
|
+
- .rspec
|
181
|
+
- .ruby-gemset
|
182
|
+
- .ruby-version
|
183
|
+
- .travis.yml
|
182
184
|
- Gemfile
|
183
185
|
- Gemfile.lock
|
184
186
|
- Gemfile.lock.old
|
@@ -192,6 +194,7 @@ files:
|
|
192
194
|
- lib/sandthorn/aggregate_root_marshal.rb
|
193
195
|
- lib/sandthorn/aggregate_root_snapshot.rb
|
194
196
|
- lib/sandthorn/errors.rb
|
197
|
+
- lib/sandthorn/event.rb
|
195
198
|
- lib/sandthorn/event_inspector.rb
|
196
199
|
- lib/sandthorn/event_stores.rb
|
197
200
|
- lib/sandthorn/version.rb
|
@@ -204,6 +207,7 @@ files:
|
|
204
207
|
- spec/db/sequel_driver.sqlite3_old
|
205
208
|
- spec/different_driver_spec.rb
|
206
209
|
- spec/event_inspector_spec.rb
|
210
|
+
- spec/event_spec.rb
|
207
211
|
- spec/event_stores_spec.rb
|
208
212
|
- spec/get_events_spec.rb
|
209
213
|
- spec/initialize_signature_change_spec.rb
|
@@ -221,17 +225,17 @@ require_paths:
|
|
221
225
|
- lib
|
222
226
|
required_ruby_version: !ruby/object:Gem::Requirement
|
223
227
|
requirements:
|
224
|
-
- -
|
228
|
+
- - '>='
|
225
229
|
- !ruby/object:Gem::Version
|
226
230
|
version: '2.0'
|
227
231
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
232
|
requirements:
|
229
|
-
- -
|
233
|
+
- - '>='
|
230
234
|
- !ruby/object:Gem::Version
|
231
235
|
version: '0'
|
232
236
|
requirements: []
|
233
237
|
rubyforge_project:
|
234
|
-
rubygems_version: 2.
|
238
|
+
rubygems_version: 2.2.2
|
235
239
|
signing_key:
|
236
240
|
specification_version: 4
|
237
241
|
summary: Event sourcing gem
|
@@ -244,6 +248,7 @@ test_files:
|
|
244
248
|
- spec/db/sequel_driver.sqlite3_old
|
245
249
|
- spec/different_driver_spec.rb
|
246
250
|
- spec/event_inspector_spec.rb
|
251
|
+
- spec/event_spec.rb
|
247
252
|
- spec/event_stores_spec.rb
|
248
253
|
- spec/get_events_spec.rb
|
249
254
|
- spec/initialize_signature_change_spec.rb
|