pg_eventstore 0.5.3 → 0.6.0

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
  SHA256:
3
- metadata.gz: 9ff6744fcbb7387086608ace4a5321be8b43c9ce8aa849844c1e561f643d10f2
4
- data.tar.gz: 4f86667aca4204f3f299c2ef65789d4f95f9375c1f92a4fca2944e521e1b7301
3
+ metadata.gz: 9f21137e2e5210ac3482ac7dc91d6e7bcb7e34e51e24cbbfa558f891d071fdf4
4
+ data.tar.gz: 37e42584895549d55d99efd2bc1667916e5ded9c8a0b9539c2081cd2d0a1f323
5
5
  SHA512:
6
- metadata.gz: 349e2df7cefbf8b2974db1483aa5f8bb7ae48e76060a9ea5cf298f99c1a7b69ca4c9a4bb5152a93db247f4c50693260098e655bbaf131b39ba08e7811b8dc660
7
- data.tar.gz: 2ec05356d0d7430ff8cfdd9a94ea19e2b9f272c091cc6a6dae3baa7d85a1c07e498d39572e1d98a074bf760e75f2b9cdb84b3c536a634d9b905ee69d8e2a13b6
6
+ metadata.gz: e2190a042255a6e9b59c6822d586dbc9b142a2189ffc2c3e192fd4bc96862f1c38ceb5307fcf8f4f16d5ab2a0b57852cb46ef3553855f129a08ce289a2293266
7
+ data.tar.gz: 7b9e343f6fd66e620e8ae19c5d0bf480d393b69763c312786d983a7be90e13a2987ea8b6714268860dcd7d4e851674c755e88dc07c1da18f7bee82ae13480837
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.6.0] - 2024-02-08
4
+
5
+ - Add stream info into `PgEventstore::WrongExpectedRevisionError` error details
6
+
3
7
  ## [0.5.3] - 2024-02-07
4
8
 
5
9
  - Fix `pg_eventstore:drop` rake task
@@ -18,7 +18,7 @@ module PgEventstore
18
18
  queries.transactions.transaction do
19
19
  stream = queries.streams.find_or_create_stream(stream)
20
20
  revision = stream.stream_revision
21
- assert_expected_revision!(revision, options[:expected_revision]) if options[:expected_revision]
21
+ assert_expected_revision!(revision, options[:expected_revision], stream) if options[:expected_revision]
22
22
  events.map.with_index(1) do |event, index|
23
23
  queries.events.insert(stream, event_modifier.call(event, revision + index))
24
24
  end.tap do
@@ -31,20 +31,30 @@ module PgEventstore
31
31
 
32
32
  # @param revision [Integer]
33
33
  # @param expected_revision [Symbol, Integer]
34
+ # @param stream [PgEventstore::Stream]
34
35
  # @raise [PgEventstore::WrongExpectedRevisionError] in case if revision does not satisfy expected revision
35
36
  # @return [void]
36
- def assert_expected_revision!(revision, expected_revision)
37
+ def assert_expected_revision!(revision, expected_revision, stream)
37
38
  return if expected_revision == :any
38
39
 
39
40
  case [revision, expected_revision]
40
41
  in [Integer, Integer]
41
- raise WrongExpectedRevisionError.new(revision, expected_revision) unless revision == expected_revision
42
+ unless revision == expected_revision
43
+ raise WrongExpectedRevisionError.new(
44
+ revision: revision, expected_revision: expected_revision, stream: stream
45
+ )
46
+ end
47
+
42
48
  in [Integer, Symbol]
43
49
  if revision == Stream::INITIAL_STREAM_REVISION && expected_revision == :stream_exists
44
- raise WrongExpectedRevisionError.new(revision, expected_revision)
50
+ raise WrongExpectedRevisionError.new(
51
+ revision: revision, expected_revision: expected_revision, stream: stream
52
+ )
45
53
  end
46
54
  if revision > Stream::INITIAL_STREAM_REVISION && expected_revision == :no_stream
47
- raise WrongExpectedRevisionError.new(revision, expected_revision)
55
+ raise WrongExpectedRevisionError.new(
56
+ revision: revision, expected_revision: expected_revision, stream: stream
57
+ )
48
58
  end
49
59
  end
50
60
  end
@@ -42,13 +42,15 @@ module PgEventstore
42
42
  end
43
43
 
44
44
  class WrongExpectedRevisionError < Error
45
- attr_reader :revision, :expected_revision
45
+ attr_reader :stream, :revision, :expected_revision
46
46
 
47
47
  # @param revision [Integer]
48
48
  # @param expected_revision [Integer, Symbol]
49
- def initialize(revision, expected_revision)
49
+ # @param stream [PgEventstore::Stream]
50
+ def initialize(revision:, expected_revision:, stream:)
50
51
  @revision = revision
51
52
  @expected_revision = expected_revision
53
+ @stream = stream
52
54
  super(user_friendly_message)
53
55
  end
54
56
 
@@ -65,22 +67,30 @@ module PgEventstore
65
67
 
66
68
  # @return [String]
67
69
  def expected_stream_exists
68
- "Expected stream to exist, but it doesn't."
70
+ "Expected stream #{stream_descr} to exist, but it doesn't."
69
71
  end
70
72
 
71
73
  # @return [String]
72
74
  def expected_no_stream
73
- "Expected stream to be absent, but it actually exists."
75
+ "Expected stream #{stream_descr} to be absent, but it actually exists."
74
76
  end
75
77
 
76
78
  # @return [String]
77
79
  def current_no_stream
78
- "Stream revision #{expected_revision} is expected, but stream does not exist."
80
+ "#{stream_descr} stream revision #{expected_revision.inspect} is expected, but stream does not exist."
79
81
  end
80
82
 
81
83
  # @return [String]
82
84
  def unmatched_stream_revision
83
- "Stream revision #{expected_revision} is expected, but actual stream revision is #{revision.inspect}."
85
+ <<~TEXT.strip
86
+ #{stream_descr} stream revision #{expected_revision.inspect} is expected, but actual stream revision is \
87
+ #{revision.inspect}.
88
+ TEXT
89
+ end
90
+
91
+ # @return [String]
92
+ def stream_descr
93
+ stream.to_hash.inspect
84
94
  end
85
95
  end
86
96
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PgEventstore
4
- VERSION = "0.5.3"
4
+ VERSION = "0.6.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_eventstore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Dzyzenko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-07 00:00:00.000000000 Z
11
+ date: 2024-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg