event_sorcerer 0.0.2 → 0.0.3

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: 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