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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d3a2387b8993e5a4c07e5a15d3e2f15a2a91bba3
4
- data.tar.gz: 4f3bb03fdb88fc85b045347683b7aa9729a1df8d
3
+ metadata.gz: ad7bce2c040633c753e30b0624d4817051800dc3
4
+ data.tar.gz: c053a8098817aa32e3d99ca2a7161a2b37139765
5
5
  SHA512:
6
- metadata.gz: 3b35be0ea6bf136cadfacec2f8962d0b93b962c87fbee70c74447b57e90f361c76ac7633ed087ca84838ef703e4564d995adca502558da6a763dcd30bc705cd0
7
- data.tar.gz: 8426122f4f7e433c5f8a31ab5147c376edf2fce262b1afcd2129b14a22334362d23ee1fd6abefec674925bc7fab41d7c1b2f94f770d6711ece7c80d4413c2033
6
+ metadata.gz: 20c760b049a3490a66ca250c953b8ad1f53bae6e9a36be97c2e2e57daf4c8c8caa8683c3c5a6861c408f5f6b9ec476aa1825f032cb623878406a40f146f3cd86
7
+ data.tar.gz: 4ebba12089476b8f16c419f1f273a28aced1d00da7e73518f8bae64b52bbd2b2903f789b09738cb39861868884b036560fc98ec9939adfb66e1ca48ac4ba9789
@@ -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
- Timecop.freeze(event.created_at) do
16
- Invokr.invoke method: event.name, on: aggregate, with: event.details
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
@@ -1,4 +1,4 @@
1
1
  # Public: Defines a constant for the current version number.
2
2
  module EventSorcerer
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_sorcerer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Edwards