entity_store 0.3.1 → 0.3.2
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 97880958b956196cf02002393b06adf365a1bfba
|
|
4
|
+
data.tar.gz: 06471d12f5bacc7f5ad7409c2bf0ffa3e336b1aa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 85747f4ddb273c8b9f80430445cf5100b92ebd136a4ba1e1d2a7e7017357057fbe14996cdb76d45d296958d849f9aa8eab3ec442f5397ff85ca70914ffe7e2b1
|
|
7
|
+
data.tar.gz: 2d1e8c46d5480b12a52b857ee1469d5a857f63ef27f6fde2c890b735c9bd08af312ef4341c7abe75ac3e61570f9cd246966240ba4ff3d3bacf0543655f84e7cf
|
data/lib/entity_store.rb
CHANGED
|
@@ -14,10 +14,8 @@ module EntityStore
|
|
|
14
14
|
require_relative 'entity_store/event_bus'
|
|
15
15
|
require_relative 'entity_store/not_found'
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
require_relative 'entity_store/external_store'
|
|
20
|
-
end
|
|
17
|
+
require_relative 'entity_store/mongo_entity_store'
|
|
18
|
+
require_relative 'entity_store/external_store'
|
|
21
19
|
|
|
22
20
|
class << self
|
|
23
21
|
def setup
|
|
@@ -84,8 +84,16 @@ module EntityStore
|
|
|
84
84
|
entities.update(query, { '$unset' => { 'snapshot' => 1 } }, { multi: true })
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
def
|
|
88
|
-
|
|
87
|
+
def add_events(items)
|
|
88
|
+
docs = items.map do |event|
|
|
89
|
+
{
|
|
90
|
+
'_id' => BSON::ObjectId.new,
|
|
91
|
+
'_type' => event.class.name,
|
|
92
|
+
'_entity_id' => BSON::ObjectId.from_string(event.entity_id)
|
|
93
|
+
}.merge(event.attributes)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
events.insert(docs)
|
|
89
97
|
end
|
|
90
98
|
|
|
91
99
|
# Public: loads the entity from the store, including any available snapshots
|
data/lib/entity_store/store.rb
CHANGED
|
@@ -54,12 +54,15 @@ module EntityStore
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def add_events(entity)
|
|
57
|
-
entity.pending_events.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
items = entity.pending_events.map do |event|
|
|
58
|
+
event.entity_id = entity.id.to_s
|
|
59
|
+
event.entity_version = entity.version
|
|
60
|
+
event
|
|
61
61
|
end
|
|
62
|
-
|
|
62
|
+
storage_client.add_events(items)
|
|
63
|
+
|
|
64
|
+
items.each {|e| event_bus.publish(entity.type, e) }
|
|
65
|
+
|
|
63
66
|
entity.clear_pending_events
|
|
64
67
|
end
|
|
65
68
|
|
data/lib/entity_store/version.rb
CHANGED
|
@@ -50,10 +50,7 @@ describe MongoEntityStore do
|
|
|
50
50
|
let(:unrelated_event) { DummyEntityNameSet.new(:entity_id => random_object_id, :entity_version => 4, :name => random_string) }
|
|
51
51
|
|
|
52
52
|
before do
|
|
53
|
-
store.
|
|
54
|
-
store.add_event(unrelated_event)
|
|
55
|
-
store.add_event(first_event)
|
|
56
|
-
store.add_event(third_event)
|
|
53
|
+
store.add_events([ second_event, unrelated_event, first_event, third_event ])
|
|
57
54
|
end
|
|
58
55
|
|
|
59
56
|
subject { store.get_events( [{ id: event_entity_id, since_version: since_version }])[event_entity_id] }
|
|
@@ -40,7 +40,7 @@ describe Store do
|
|
|
40
40
|
@entity.version = random_integer
|
|
41
41
|
@entity.pending_events << double(Event, :entity_id= => true, :entity_version= => true)
|
|
42
42
|
@entity.pending_events << double(Event, :entity_id= => true, :entity_version= => true)
|
|
43
|
-
@storage_client = double("StorageClient", :
|
|
43
|
+
@storage_client = double("StorageClient", :add_events => true)
|
|
44
44
|
@store = Store.new
|
|
45
45
|
@store.stub(:storage_client) { @storage_client }
|
|
46
46
|
@event_bus = double(EventBus, :publish => true)
|
|
@@ -50,9 +50,7 @@ describe Store do
|
|
|
50
50
|
subject { @store.add_events(@entity) }
|
|
51
51
|
|
|
52
52
|
it "adds each of the events" do
|
|
53
|
-
@entity.pending_events
|
|
54
|
-
@storage_client.should_receive(:add_event).with(e)
|
|
55
|
-
end
|
|
53
|
+
@storage_client.should_receive(:add_events).with(@entity.pending_events)
|
|
56
54
|
subject
|
|
57
55
|
end
|
|
58
56
|
it "should assign the new entity_id to each event" do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: entity_store
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Bird
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-05-
|
|
11
|
+
date: 2014-05-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mongo
|