event_sorcerer 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/event_sorcerer.rb +5 -0
- data/lib/event_sorcerer/event_applicator.rb +4 -2
- data/lib/event_sorcerer/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad7bce2c040633c753e30b0624d4817051800dc3
|
4
|
+
data.tar.gz: c053a8098817aa32e3d99ca2a7161a2b37139765
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20c760b049a3490a66ca250c953b8ad1f53bae6e9a36be97c2e2e57daf4c8c8caa8683c3c5a6861c408f5f6b9ec476aa1825f032cb623878406a40f146f3cd86
|
7
|
+
data.tar.gz: 4ebba12089476b8f16c419f1f273a28aced1d00da7e73518f8bae64b52bbd2b2903f789b09738cb39861868884b036560fc98ec9939adfb66e1ca48ac4ba9789
|
data/lib/event_sorcerer.rb
CHANGED
@@ -51,6 +51,11 @@ module EventSorcerer
|
|
51
51
|
@message_bus || fail(UnsetMessageBus)
|
52
52
|
end
|
53
53
|
|
54
|
+
# Public: Mutex to synchronize usage of non-threadsafe time-traveling gems.
|
55
|
+
def time_travel_lock
|
56
|
+
@time_travel_lock ||= Mutex.new
|
57
|
+
end
|
58
|
+
|
54
59
|
# Public: Returns the unit_of_work for the current thread. Defaults to
|
55
60
|
# NoUnitOfWork.
|
56
61
|
def unit_of_work
|
@@ -12,8 +12,10 @@ module EventSorcerer
|
|
12
12
|
#
|
13
13
|
# Returns self.
|
14
14
|
def self.apply_event!(aggregate, event)
|
15
|
-
|
16
|
-
|
15
|
+
EventSorcerer.time_travel_lock.synchronize do
|
16
|
+
Timecop.freeze(event.created_at) do
|
17
|
+
Invokr.invoke method: event.name, on: aggregate, with: event.details
|
18
|
+
end
|
17
19
|
end
|
18
20
|
|
19
21
|
self
|