event_sourcery-postgres 0.7.0 → 0.9.1

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
- SHA1:
3
- metadata.gz: b9e184af03e67f103ea4c76b4cd0715d4061af7b
4
- data.tar.gz: 8db961c1dec679cc7a2d01e61a7b7fc7373f1b46
2
+ SHA256:
3
+ metadata.gz: 824d15b46de51809119f1adec5708cab3e6e252dabeedc5257cda2b1c934a7bf
4
+ data.tar.gz: deea46e08d13e42d46d37ac7379ccc9782a87e5137710004ce1c922ad283f40d
5
5
  SHA512:
6
- metadata.gz: ea7e49bc760804f1559bb00924200a76601c0ec75b2111260ae6b738e15df1b83ad04bb58d50c9039a3742ec4fb2e708fc840105f30ca2b0bd9cc2e7a8fcc5dd
7
- data.tar.gz: 4bb10f468ce4187fc1182a219840ad6099c49ce5d11a0fdcb4dac79e08b50dc86357777aec3364a5eedb1215652f094fe9578615c64eef822bc91165ded02de9
6
+ metadata.gz: a9cf1a6d3aad1270378fa68855ca339a3a0bca8aa13c8c06c82da634b340a93822d73254da780fbc6ef7420f9901836ebd81d68cfe0c8c506584b1be3c50c028
7
+ data.tar.gz: 520be11bd4e97b6ecd07fcc995c613c4978dcb97509569d15fda3d28206acd41696db718d54bc54861f72a38e59bdaf61a18369aa09c60cc748991700cb5dc90
data/CHANGELOG.md CHANGED
@@ -5,6 +5,53 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
+ ## [Unreleased]
9
+ ## [0.9.1] - 2022-01-20
10
+
11
+ ### Changed
12
+
13
+ - Removed the use of `**` for the private `EventStore#build_event`
14
+ method signature and places that call it.
15
+
16
+ ## [0.9.0] - 2021-11-18
17
+
18
+ ### Added
19
+
20
+ - Test against Ruby 3.0 in the CI build ([#67]).
21
+
22
+ ### Changed
23
+
24
+ - Use GitHub Actions for the CI build instead of Travis CI ([#66]).
25
+ - This project now uses `main` as its default branch ([#68]).
26
+ - Documentation updated to refer to `main` and links updated accordingly.
27
+
28
+ ### Removed
29
+ - Remove Ruby 2.3, 2.4 and 2.5 from the CI test matrix ([#70]).
30
+
31
+ [#66]: https://github.com/envato/event_sourcery-postgres/pull/66
32
+ [#67]: https://github.com/envato/event_sourcery-postgres/pull/67
33
+ [#68]: https://github.com/envato/event_sourcery-postgres/pull/68
34
+ [#70]: https://github.com/envato/event_sourcery-postgres/pull/70
35
+
36
+ ## [0.8.1] - 2020-10-02
37
+ ### Added
38
+ - Add Ruby 2.6 and 2.7 to the CI test matrix.
39
+
40
+ ### Removed
41
+ - Remove Ruby 2.2 from the CI test matrix.
42
+ - Support for Boxen.
43
+
44
+ ### Fixed
45
+ - Upgrade development dependency Rake to version 13. This resolves
46
+ [CVE-2020-8130](https://github.com/advisories/GHSA-jppv-gw3r-w3q8).
47
+
48
+ - Resolve warnings raised when running on Ruby 2.7.
49
+
50
+ ## [0.8.0] - 2018-08-06
51
+ ### Added
52
+ - Add a `on_events_recorded` config option, that defaults to a no-op proc, \
53
+ to handle any app specific logic after the events are recoded on `EventStore#sink`
54
+
8
55
  ## [0.7.0] - 2018-05-23
9
56
  ### Added
10
57
  - Add a `projector_transaction_size` config option to control how many events
@@ -70,7 +117,12 @@ or when the loop stops
70
117
  - Postgres related configuration is through `EventSourcery::Postgres.configure`
71
118
  instead of `EventSourcery.configure`.
72
119
 
73
- [Unreleased]: https://github.com/envato/event_sourcery-postgres/compare/v0.6.0...HEAD
120
+ [Unreleased]: https://github.com/envato/event_sourcery-postgres/compare/v0.9.1...HEAD
121
+ [0.9.1]: https://github.com/envato/event_sourcery-postgres/compare/v0.9.0...v0.9.1
122
+ [0.9.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.8.1...v0.9.0
123
+ [0.8.1]: https://github.com/envato/event_sourcery-postgres/compare/v0.8.0...v0.8.1
124
+ [0.8.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.7.0...v0.8.0
125
+ [0.7.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.6.0...v0.7.0
74
126
  [0.6.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.5.0...v0.6.0
75
127
  [0.5.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.4.0...v0.5.0
76
128
  [0.4.0]: https://github.com/envato/event_sourcery-postgres/compare/v0.3.0...v0.4.0
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # EventSourcery::Postgres
2
2
 
3
- [![Build Status](https://travis-ci.org/envato/event_sourcery-postgres.svg?branch=master)](https://travis-ci.org/envato/event_sourcery-postgres)
3
+ [![Build Status](https://github.com/envato/event_sourcery-postgres/workflows/tests/badge.svg?branch=main)](https://github.com/envato/event_sourcery-postgres/actions?query=workflow%3Atests+branch%3Amain)
4
4
 
5
5
  ## Development Status
6
6
 
@@ -89,7 +89,7 @@ To install this gem onto your local machine, run `bundle exec rake install`.
89
89
  To release a new version:
90
90
 
91
91
  1. Update the version number in `lib/event_sourcery/postgres/version.rb`
92
- 2. Get this change onto master via the normal PR process
92
+ 2. Get this change onto main via the normal PR process
93
93
  3. Run `bundle exec rake release`, this will create a git tag for the
94
94
  version, push tags up to GitHub, and upload the gem to rubygems.org.
95
95
 
@@ -12,6 +12,11 @@ Gem::Specification.new do |spec|
12
12
 
13
13
  spec.summary = 'Postgres event store for use with EventSourcery'
14
14
  spec.homepage = 'https://github.com/envato/event_sourcery-postgres'
15
+ spec.metadata = {
16
+ 'bug_tracker_uri' => 'https://github.com/envato/event_sourcery-postgres/issues',
17
+ 'changelog_uri' => 'https://github.com/envato/event_sourcery-postgres/blob/HEAD/CHANGELOG.md',
18
+ 'source_code_uri' => 'https://github.com/envato/event_sourcery-postgres',
19
+ }
15
20
 
16
21
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
22
  f.match(%r{^(\.|bin/|Gemfile|Rakefile|script/|spec/)})
@@ -25,8 +30,8 @@ Gem::Specification.new do |spec|
25
30
  spec.add_dependency 'sequel', '>= 4.38'
26
31
  spec.add_dependency 'pg'
27
32
  spec.add_dependency 'event_sourcery', '>= 0.14.0'
28
- spec.add_development_dependency 'bundler', '~> 1.10'
29
- spec.add_development_dependency 'rake', '~> 10.0'
33
+ spec.add_development_dependency 'bundler'
34
+ spec.add_development_dependency 'rake', '~> 13'
30
35
  spec.add_development_dependency 'rspec', '~> 3.0'
31
36
  spec.add_development_dependency 'pry'
32
37
  spec.add_development_dependency 'benchmark-ips'
@@ -9,7 +9,8 @@ module EventSourcery
9
9
  :callback_interval_if_no_new_events,
10
10
  :auto_create_projector_tracker,
11
11
  :event_tracker,
12
- :projector_transaction_size
12
+ :projector_transaction_size,
13
+ :on_events_recorded
13
14
 
14
15
  attr_writer :event_store,
15
16
  :event_source,
@@ -28,6 +29,7 @@ module EventSourcery
28
29
  @event_store_database = nil
29
30
  @auto_create_projector_tracker = true
30
31
  @projector_transaction_size = 1
32
+ @on_events_recorded = ->(events) {}
31
33
  end
32
34
 
33
35
  def event_store
@@ -7,12 +7,14 @@ module EventSourcery
7
7
  events_table_name: EventSourcery::Postgres.config.events_table_name,
8
8
  lock_table: EventSourcery::Postgres.config.lock_table_to_guarantee_linear_sequence_id_growth,
9
9
  write_events_function_name: EventSourcery::Postgres.config.write_events_function_name,
10
- event_builder: EventSourcery.config.event_builder)
10
+ event_builder: EventSourcery.config.event_builder,
11
+ on_events_recorded: EventSourcery::Postgres.config.on_events_recorded)
11
12
  @db_connection = db_connection
12
13
  @events_table_name = events_table_name
13
14
  @write_events_function_name = write_events_function_name
14
15
  @lock_table = lock_table
15
16
  @event_builder = event_builder
17
+ @on_events_recorded = on_events_recorded
16
18
  end
17
19
 
18
20
  # Like water flowing into a sink eventually it will go down the drain
@@ -33,6 +35,7 @@ module EventSourcery
33
35
  sql = write_events_sql(aggregate_ids.first, events, expected_version)
34
36
  @db_connection.run(sql)
35
37
  log_events_saved(events)
38
+ on_events_recorded.call(events)
36
39
  true
37
40
  rescue Sequel::DatabaseError => e
38
41
  if e.message =~ /Concurrency conflict/
@@ -104,17 +107,19 @@ module EventSourcery
104
107
  subscription_master: subscription_master,
105
108
  on_new_events: block
106
109
  }
107
- EventSourcery::EventStore::Subscription.new(args).tap(&:start)
110
+ EventSourcery::EventStore::Subscription.new(**args).tap(&:start)
108
111
  end
109
112
 
110
113
  private
111
114
 
115
+ attr_reader :on_events_recorded
116
+
112
117
  def events_table
113
118
  @db_connection[@events_table_name]
114
119
  end
115
120
 
116
121
  def build_event(data)
117
- @event_builder.build(data)
122
+ @event_builder.build(**data)
118
123
  end
119
124
 
120
125
  def write_events_sql(aggregate_id, events, expected_version)
@@ -53,7 +53,7 @@ module EventSourcery
53
53
  def create_aggregates(db: EventSourcery::Postgres.config.event_store_database,
54
54
  table_name: EventSourcery::Postgres.config.aggregates_table_name)
55
55
  db.create_table(table_name) do
56
- primary_key :aggregate_id, :uuid
56
+ uuid :aggregate_id, primary_key: true
57
57
  column :version, :bigint, default: 1
58
58
  end
59
59
  end
@@ -1,5 +1,5 @@
1
1
  module EventSourcery
2
2
  module Postgres
3
- VERSION = '0.7.0'.freeze
3
+ VERSION = '0.9.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_sourcery-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Envato
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-23 00:00:00.000000000 Z
11
+ date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -56,30 +56,30 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.10'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.10'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- description:
125
+ description:
126
126
  email:
127
127
  - rubygems@envato.com
128
128
  executables: []
@@ -147,8 +147,11 @@ files:
147
147
  - lib/event_sourcery/postgres/version.rb
148
148
  homepage: https://github.com/envato/event_sourcery-postgres
149
149
  licenses: []
150
- metadata: {}
151
- post_install_message:
150
+ metadata:
151
+ bug_tracker_uri: https://github.com/envato/event_sourcery-postgres/issues
152
+ changelog_uri: https://github.com/envato/event_sourcery-postgres/blob/HEAD/CHANGELOG.md
153
+ source_code_uri: https://github.com/envato/event_sourcery-postgres
154
+ post_install_message:
152
155
  rdoc_options: []
153
156
  require_paths:
154
157
  - lib
@@ -163,9 +166,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
166
  - !ruby/object:Gem::Version
164
167
  version: '0'
165
168
  requirements: []
166
- rubyforge_project:
167
- rubygems_version: 2.5.2
168
- signing_key:
169
+ rubygems_version: 3.2.22
170
+ signing_key:
169
171
  specification_version: 4
170
172
  summary: Postgres event store for use with EventSourcery
171
173
  test_files: []