entity_store 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80ef2d2f7cb967ed15151bd5d3fa17c5526c4022
4
- data.tar.gz: ee08573ec53e96fa70df0cb30c48db9df19d56de
3
+ metadata.gz: 97880958b956196cf02002393b06adf365a1bfba
4
+ data.tar.gz: 06471d12f5bacc7f5ad7409c2bf0ffa3e336b1aa
5
5
  SHA512:
6
- metadata.gz: 653358d1589d59332805e9501e41c637bc2bbb4a4292b19ca0586871cb7352cbb709f2a23e97813cfdcb2be823414b61a9f50acd01e5983c002d08dfcd4d05e3
7
- data.tar.gz: e2fde849bd73b14d086f78fb2268304c55771f85f74d21db3c0b74b4f800c8856e369767e82cdc353c8efa9cbf9d06ac7027f4ad69c8daa7cc289c903eb7d7b3
6
+ metadata.gz: 85747f4ddb273c8b9f80430445cf5100b92ebd136a4ba1e1d2a7e7017357057fbe14996cdb76d45d296958d849f9aa8eab3ec442f5397ff85ca70914ffe7e2b1
7
+ data.tar.gz: 2d1e8c46d5480b12a52b857ee1469d5a857f63ef27f6fde2c890b735c9bd08af312ef4341c7abe75ac3e61570f9cd246966240ba4ff3d3bacf0543655f84e7cf
@@ -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
- if defined?(Mongo)
18
- require_relative 'entity_store/mongo_entity_store'
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 add_event(event)
88
- events.insert({'_type' => event.class.name, '_entity_id' => BSON::ObjectId.from_string(event.entity_id) }.merge(event.attributes) ).to_s
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
@@ -54,12 +54,15 @@ module EntityStore
54
54
  end
55
55
 
56
56
  def add_events(entity)
57
- entity.pending_events.each do |e|
58
- e.entity_id = entity.id.to_s
59
- e.entity_version = entity.version
60
- storage_client.add_event(e)
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
- entity.pending_events.each {|e| event_bus.publish(entity.type, e) }
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
 
@@ -1,3 +1,3 @@
1
1
  module EntityStore
2
- VERSION = "0.3.1".freeze
2
+ VERSION = "0.3.2".freeze
3
3
  end
@@ -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.add_event(second_event)
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", :add_event => true)
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.each do |e|
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.1
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-22 00:00:00.000000000 Z
11
+ date: 2014-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mongo