Skip to content

Commit 92fd8b2

Browse files
Merge pull request #360 from RailsEventStore/aggregate_root_uses_batch_api
AggregatRoot loads events in batches
2 parents 9d082a5 + 2229c89 commit 92fd8b2

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

aggregate_root/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
GEM_VERSION = $(shell cat ../RES_VERSION)
22
GEM_NAME = aggregate_root
33
REQUIRE = $(GEM_NAME)
4-
IGNORE =
4+
IGNORE = AggregateRoot\#events_enumerator
5+
56
SUBJECT ?= AggregateRoot*
67

78
install: ## Install gem dependencies

aggregate_root/lib/aggregate_root.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def apply(*events)
3636

3737
def load(stream_name, event_store: default_event_store)
3838
@loaded_from_stream_name = stream_name
39-
event_store.read.stream(stream_name).each.with_index do |event, index|
39+
events_enumerator(event_store, stream_name).with_index do |event, index|
4040
apply(event)
4141
@version = index
4242
end
@@ -72,5 +72,9 @@ def default_event_store
7272
AggregateRoot.configuration.default_event_store
7373
end
7474

75+
def events_enumerator(event_store, stream_name)
76+
event_store.read.in_batches.stream(stream_name).each
77+
end
78+
7579
attr_reader :loaded_from_stream_name
7680
end

aggregate_root/spec/aggregate_root_spec.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,6 @@
285285
end
286286
end.to raise_error(ArgumentError, "Anonymous class is missing name")
287287
end
288-
289288
end
290289

291290
describe '.include' do
@@ -294,5 +293,4 @@
294293
Order.include(AggregateRoot)
295294
end
296295
end
297-
298296
end

0 commit comments

Comments
 (0)