sandthorn 0.2.0 → 0.3.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/.autotest +1 -1
- data/Gemfile.lock +6 -8
- data/Rakefile +4 -0
- data/lib/sandthorn.rb +19 -9
- data/lib/sandthorn/version.rb +1 -1
- data/sandthorn.gemspec +1 -1
- data/spec/benchmark_spec.rb +1 -1
- data/spec/get_events_spec.rb +15 -0
- data/spec/spec_helper.rb +2 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f99d35485b8746cbbe8ea792d915d764344a689c
|
4
|
+
data.tar.gz: d3da0a1e657e55b9fdc283a4d549d1ea4c5c1a7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c9b2225374dc3626f14ef756c011438c0347e9e4787f53a3d74161e49c6875d9bcc2418e0fa4574e69b4b86d39c05c0348a52b58e78f4402028816ae81aae4b
|
7
|
+
data.tar.gz: 7c56c84f45d5c352e669e874a050fd62557a7c764e459d546c429f6cd544f9dcd7a28be55e2d0f116b49b90c265ee2c23fb03034b4b34a3dce8f19aa87ea3d8d
|
data/.autotest
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sandthorn (0.
|
4
|
+
sandthorn (0.3.0)
|
5
5
|
dirty_hashy
|
6
6
|
|
7
7
|
GEM
|
@@ -13,7 +13,6 @@ GEM
|
|
13
13
|
multi_json (~> 1.3)
|
14
14
|
thread_safe (~> 0.1)
|
15
15
|
tzinfo (~> 0.3.37)
|
16
|
-
atomic (1.1.16)
|
17
16
|
autotest-standalone (4.5.11)
|
18
17
|
awesome_print (1.2.0)
|
19
18
|
coderay (1.1.0)
|
@@ -52,10 +51,10 @@ GEM
|
|
52
51
|
rspec-expectations (2.14.5)
|
53
52
|
diff-lcs (>= 1.1.3, < 2.0)
|
54
53
|
rspec-mocks (2.14.6)
|
55
|
-
sandthorn_driver_sequel (1.0
|
54
|
+
sandthorn_driver_sequel (1.1.0)
|
56
55
|
pg
|
57
56
|
sequel
|
58
|
-
sequel (4.
|
57
|
+
sequel (4.9.0)
|
59
58
|
simplecov (0.8.2)
|
60
59
|
docile (~> 1.1.0)
|
61
60
|
multi_json
|
@@ -66,9 +65,8 @@ GEM
|
|
66
65
|
term-ansicolor (1.3.0)
|
67
66
|
tins (~> 1.0)
|
68
67
|
thor (0.19.1)
|
69
|
-
thread_safe (0.3.
|
70
|
-
|
71
|
-
tins (1.0.1)
|
68
|
+
thread_safe (0.3.3)
|
69
|
+
tins (1.1.0)
|
72
70
|
tzinfo (0.3.39)
|
73
71
|
yard (0.8.7.4)
|
74
72
|
|
@@ -86,5 +84,5 @@ DEPENDENCIES
|
|
86
84
|
rake
|
87
85
|
rspec
|
88
86
|
sandthorn!
|
89
|
-
sandthorn_driver_sequel
|
87
|
+
sandthorn_driver_sequel (~> 1.1)
|
90
88
|
sqlite3
|
data/Rakefile
CHANGED
data/lib/sandthorn.rb
CHANGED
@@ -55,6 +55,17 @@ module Sandthorn
|
|
55
55
|
driver_for(class_name).get_aggregate_list_by_typename class_name
|
56
56
|
end
|
57
57
|
|
58
|
+
def get_events aggregate_types: [], take: 0, after_sequence_number: 0
|
59
|
+
drivers = drivers_for_aggregate_types type_names: aggregate_types
|
60
|
+
raise Sandthorn::Errors::Error.new "Cannot get events from multiple contexts simultaneously, only one single context can be handled at a time." unless drivers.length == 1
|
61
|
+
driver = drivers.first
|
62
|
+
events = driver.get_events aggregate_types: aggregate_types, take: take, after_sequence_number: after_sequence_number
|
63
|
+
events.each do |event|
|
64
|
+
event[:event_args] = deserialize event[:event_data]
|
65
|
+
event.delete(:event_data)
|
66
|
+
end
|
67
|
+
events
|
68
|
+
end
|
58
69
|
private
|
59
70
|
def driver_for class_name, &block
|
60
71
|
driver = identify_driver_from_class class_name
|
@@ -67,17 +78,16 @@ module Sandthorn
|
|
67
78
|
pattern = class_name.to_s
|
68
79
|
conf[:aggregate_pattern].nil? || r.match(pattern)
|
69
80
|
end
|
70
|
-
raise Sandthorn::Errors::ConfigurationError.new "Aggregate class #{class_name} is not configured for
|
81
|
+
raise Sandthorn::Errors::ConfigurationError.new "Aggregate class #{class_name} is not configured for Sandthorn" if matches.empty?
|
71
82
|
first_match = matches.first
|
72
83
|
first_match[:driver]
|
73
|
-
#UpptecEventSequelDriver.driver_from_url url: first_match[:url], context: first_match[:context]
|
74
84
|
end
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
85
|
+
def drivers_for_aggregate_types type_names: []
|
86
|
+
return all_drivers if type_names.empty?
|
87
|
+
type_names.map { |e| driver_for e }
|
88
|
+
end
|
89
|
+
def all_drivers
|
90
|
+
configuration.map { |e| e[:driver] }
|
91
|
+
end
|
82
92
|
end
|
83
93
|
end
|
data/lib/sandthorn/version.rb
CHANGED
data/sandthorn.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency "autotest-standalone"
|
29
29
|
spec.add_development_dependency "sqlite3"
|
30
30
|
spec.add_development_dependency "coveralls"
|
31
|
-
spec.add_development_dependency "sandthorn_driver_sequel"
|
31
|
+
spec.add_development_dependency "sandthorn_driver_sequel", "~> 1.1"
|
32
32
|
|
33
33
|
spec.add_runtime_dependency "dirty_hashy"
|
34
34
|
|
data/spec/benchmark_spec.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class AnAggregate
|
4
|
+
include Sandthorn::AggregateRoot
|
5
|
+
end
|
6
|
+
|
7
|
+
describe Sandthorn do
|
8
|
+
before(:each) { AnAggregate.new.save }
|
9
|
+
let(:events) { Sandthorn.get_events aggregate_types: [AnAggregate] }
|
10
|
+
context "when getting events using Sandthorn.get_events for an aggregate type" do
|
11
|
+
it "should return raw events" do
|
12
|
+
expect(events).to_not be_empty
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -22,6 +22,7 @@ RSpec.configure do |config|
|
|
22
22
|
config.treat_symbols_as_metadata_keys_with_true_values = true
|
23
23
|
config.run_all_when_everything_filtered = true
|
24
24
|
config.filter_run :focus
|
25
|
+
config.filter_run_excluding benchmark: true
|
25
26
|
|
26
27
|
# Run specs in random order to surface order dependencies. If you find an
|
27
28
|
# order dependency and want to debug it, you can fix the order by providing
|
@@ -32,7 +33,7 @@ RSpec.configure do |config|
|
|
32
33
|
end
|
33
34
|
|
34
35
|
def spec_db
|
35
|
-
|
36
|
+
"sqlite://spec/db/sequel_driver.sqlite3"
|
36
37
|
end
|
37
38
|
def sqlite_store_setup
|
38
39
|
url = spec_db
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sandthorn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Krantz
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -155,16 +155,16 @@ dependencies:
|
|
155
155
|
name: sandthorn_driver_sequel
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- - "
|
158
|
+
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
160
|
+
version: '1.1'
|
161
161
|
type: :development
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- - "
|
165
|
+
- - "~>"
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
167
|
+
version: '1.1'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: dirty_hashy
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,6 +218,7 @@ files:
|
|
218
218
|
- spec/db/sequel_driver.sqlite3_old
|
219
219
|
- spec/different_driver_spec.rb
|
220
220
|
- spec/event_inspector_spec.rb
|
221
|
+
- spec/get_events_spec.rb
|
221
222
|
- spec/spec_helper.rb
|
222
223
|
- spec/tracing_spec.rb
|
223
224
|
homepage: ''
|
@@ -253,6 +254,7 @@ test_files:
|
|
253
254
|
- spec/db/sequel_driver.sqlite3_old
|
254
255
|
- spec/different_driver_spec.rb
|
255
256
|
- spec/event_inspector_spec.rb
|
257
|
+
- spec/get_events_spec.rb
|
256
258
|
- spec/spec_helper.rb
|
257
259
|
- spec/tracing_spec.rb
|
258
260
|
has_rdoc:
|