after_commit_everywhere 1.4.0 → 1.6.0
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 +4 -4
- data/CHANGELOG.md +24 -6
- data/after_commit_everywhere.gemspec +5 -11
- data/lib/after_commit_everywhere/version.rb +1 -1
- data/lib/after_commit_everywhere/wrap.rb +7 -4
- metadata +11 -167
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e8c93e27108b99564c393136245d8de5a7ff9f9cb016543ed4ce051fb5211431
|
|
4
|
+
data.tar.gz: d128a05a3fcdf7cba41f2f65a36c19f07ac4dc4e637a7c9451fb02f69a6dc7ef
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 781ff08a01fac8c36d4557c86d7698af427ca49065099c84139878981b8a062dbef44960ff9c4ac30e570ca4ca75097e181f20df4643fa202f51b5adc92343cc
|
|
7
|
+
data.tar.gz: 2eee54b376a1b437dfa6e484cb03ba27aa7ada28709abe298c793cdc8cd515870e09aa407111379ccbf6adc8e8b633cc0ab69be7cdadad576db215b5ba7860cd
|
data/CHANGELOG.md
CHANGED
|
@@ -4,18 +4,34 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## Unreleased
|
|
8
|
+
|
|
9
|
+
## 1.6.0 (2025-02-07)
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- I18n support: preserve `I18n.locale` setting from when `after_commit` is called and restore it for callback execution. [Pull request #36](https://github.com/Envek/after_commit_everywhere/pull/36) by [Bilka2][]
|
|
14
|
+
|
|
15
|
+
## 1.5.0 (2024-12-09)
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Ability to propagate exception for multiple `after_commit` callbacks within transaction. Should handle exception inside callback to avoid stopping other callbacks.
|
|
20
|
+
|
|
21
|
+
[Pull request #35](https://github.com/Envek/after_commit_everywhere/pull/35) by [@kevink1103](). Also see discussion at [#34](https://github.com/Envek/after_commit_everywhere/issues/34).
|
|
22
|
+
|
|
7
23
|
## 1.4.0 (2024-02-07)
|
|
8
24
|
|
|
9
25
|
### Added
|
|
10
26
|
|
|
11
|
-
|
|
27
|
+
- Ability to prepend callbacks to the head of callback queue using `prepend: true` option.
|
|
12
28
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
```ruby
|
|
30
|
+
AfterCommitEverywhere.after_commit { puts "I'm second!" }
|
|
31
|
+
AfterCommitEverywhere.after_commit(prepend: true) { puts "I'm first!" }
|
|
32
|
+
```
|
|
17
33
|
|
|
18
|
-
|
|
34
|
+
See [Pull request #30](https://github.com/Envek/after_commit_everywhere/pull/30) by [@quentindemetz][] and [@A1090][].
|
|
19
35
|
|
|
20
36
|
## 1.3.1 (2023-06-21)
|
|
21
37
|
|
|
@@ -147,3 +163,5 @@ See [#11](https://github.com/Envek/after_commit_everywhere/issues/11) for discus
|
|
|
147
163
|
[@jpcamara]: https://github.com/jpcamara "JP Camara"
|
|
148
164
|
[@quentindemetz]: https://github.com/quentindemetz "Quentin de Metz"
|
|
149
165
|
[@A1090]: https://github.com/A1090 "Tabac Andreina"
|
|
166
|
+
[@kevink1103]: https://github.com/kevink1103 "Kevin (bum)"
|
|
167
|
+
[Bilka2]: https://github.com/Bilka2 "Bilka"
|
|
@@ -28,18 +28,12 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
29
29
|
spec.require_paths = ["lib"]
|
|
30
30
|
|
|
31
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
32
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
33
|
+
spec.metadata["changelog_uri"] = "https://github.com/Envek/after_commit_everywhere/blob/master/CHANGELOG.md"
|
|
34
|
+
spec.metadata["bug_tracker_uri"] = "https://github.com/Envek/after_commit_everywhere/issues"
|
|
35
|
+
|
|
31
36
|
spec.add_dependency "activerecord", ">= 4.2"
|
|
32
37
|
spec.add_dependency "activesupport"
|
|
33
38
|
spec.add_development_dependency "appraisal"
|
|
34
|
-
spec.add_development_dependency "bundler", "~> 2.0"
|
|
35
|
-
spec.add_development_dependency "isolator", "~> 0.7"
|
|
36
|
-
spec.add_development_dependency "pry"
|
|
37
|
-
spec.add_development_dependency "pry-byebug"
|
|
38
|
-
spec.add_development_dependency "rails"
|
|
39
|
-
spec.add_development_dependency "rake", "~> 13.0"
|
|
40
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
|
41
|
-
spec.add_development_dependency "rspec-rails"
|
|
42
|
-
spec.add_development_dependency "rubocop", "~> 0.81.0"
|
|
43
|
-
spec.add_development_dependency "sqlite3", "~> 1.3", ">= 1.3.6"
|
|
44
|
-
spec.add_development_dependency "yard"
|
|
45
39
|
end
|
|
@@ -7,6 +7,7 @@ module AfterCommitEverywhere
|
|
|
7
7
|
def initialize(connection: ActiveRecord::Base.connection, **handlers)
|
|
8
8
|
@connection = connection
|
|
9
9
|
@handlers = handlers
|
|
10
|
+
@locale = I18n.locale
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
# rubocop: disable Naming/PredicateName
|
|
@@ -16,19 +17,21 @@ module AfterCommitEverywhere
|
|
|
16
17
|
# rubocop: enable Naming/PredicateName
|
|
17
18
|
|
|
18
19
|
def before_committed!(*)
|
|
19
|
-
@handlers[:before_commit]&.call
|
|
20
|
+
I18n.with_locale(@locale) { @handlers[:before_commit]&.call }
|
|
20
21
|
end
|
|
21
22
|
|
|
22
23
|
def trigger_transactional_callbacks?
|
|
23
24
|
true
|
|
24
25
|
end
|
|
25
26
|
|
|
26
|
-
def committed!(
|
|
27
|
-
|
|
27
|
+
def committed!(should_run_callbacks: true)
|
|
28
|
+
return unless should_run_callbacks
|
|
29
|
+
|
|
30
|
+
I18n.with_locale(@locale) { @handlers[:after_commit]&.call }
|
|
28
31
|
end
|
|
29
32
|
|
|
30
33
|
def rolledback!(*)
|
|
31
|
-
@handlers[:after_rollback]&.call
|
|
34
|
+
I18n.with_locale(@locale) { @handlers[:after_rollback]&.call }
|
|
32
35
|
end
|
|
33
36
|
|
|
34
37
|
# Required for +transaction(requires_new: true)+
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: after_commit_everywhere
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrey Novikov
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-02-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -52,166 +52,6 @@ dependencies:
|
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: bundler
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '2.0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '2.0'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: isolator
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.7'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.7'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: pry
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: pry-byebug
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - ">="
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0'
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - ">="
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rails
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - ">="
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: rake
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '13.0'
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '13.0'
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: rspec
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: '3.0'
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: '3.0'
|
|
153
|
-
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: rspec-rails
|
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
|
156
|
-
requirements:
|
|
157
|
-
- - ">="
|
|
158
|
-
- !ruby/object:Gem::Version
|
|
159
|
-
version: '0'
|
|
160
|
-
type: :development
|
|
161
|
-
prerelease: false
|
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
-
requirements:
|
|
164
|
-
- - ">="
|
|
165
|
-
- !ruby/object:Gem::Version
|
|
166
|
-
version: '0'
|
|
167
|
-
- !ruby/object:Gem::Dependency
|
|
168
|
-
name: rubocop
|
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
|
170
|
-
requirements:
|
|
171
|
-
- - "~>"
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
version: 0.81.0
|
|
174
|
-
type: :development
|
|
175
|
-
prerelease: false
|
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
-
requirements:
|
|
178
|
-
- - "~>"
|
|
179
|
-
- !ruby/object:Gem::Version
|
|
180
|
-
version: 0.81.0
|
|
181
|
-
- !ruby/object:Gem::Dependency
|
|
182
|
-
name: sqlite3
|
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
|
184
|
-
requirements:
|
|
185
|
-
- - "~>"
|
|
186
|
-
- !ruby/object:Gem::Version
|
|
187
|
-
version: '1.3'
|
|
188
|
-
- - ">="
|
|
189
|
-
- !ruby/object:Gem::Version
|
|
190
|
-
version: 1.3.6
|
|
191
|
-
type: :development
|
|
192
|
-
prerelease: false
|
|
193
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
194
|
-
requirements:
|
|
195
|
-
- - "~>"
|
|
196
|
-
- !ruby/object:Gem::Version
|
|
197
|
-
version: '1.3'
|
|
198
|
-
- - ">="
|
|
199
|
-
- !ruby/object:Gem::Version
|
|
200
|
-
version: 1.3.6
|
|
201
|
-
- !ruby/object:Gem::Dependency
|
|
202
|
-
name: yard
|
|
203
|
-
requirement: !ruby/object:Gem::Requirement
|
|
204
|
-
requirements:
|
|
205
|
-
- - ">="
|
|
206
|
-
- !ruby/object:Gem::Version
|
|
207
|
-
version: '0'
|
|
208
|
-
type: :development
|
|
209
|
-
prerelease: false
|
|
210
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
211
|
-
requirements:
|
|
212
|
-
- - ">="
|
|
213
|
-
- !ruby/object:Gem::Version
|
|
214
|
-
version: '0'
|
|
215
55
|
description: Brings before_commit, after_commit, and after_rollback transactional
|
|
216
56
|
callbacks outside of your ActiveRecord models.
|
|
217
57
|
email:
|
|
@@ -230,8 +70,12 @@ files:
|
|
|
230
70
|
homepage: https://github.com/Envek/after_commit_everywhere
|
|
231
71
|
licenses:
|
|
232
72
|
- MIT
|
|
233
|
-
metadata:
|
|
234
|
-
|
|
73
|
+
metadata:
|
|
74
|
+
homepage_uri: https://github.com/Envek/after_commit_everywhere
|
|
75
|
+
source_code_uri: https://github.com/Envek/after_commit_everywhere
|
|
76
|
+
changelog_uri: https://github.com/Envek/after_commit_everywhere/blob/master/CHANGELOG.md
|
|
77
|
+
bug_tracker_uri: https://github.com/Envek/after_commit_everywhere/issues
|
|
78
|
+
post_install_message:
|
|
235
79
|
rdoc_options: []
|
|
236
80
|
require_paths:
|
|
237
81
|
- lib
|
|
@@ -246,8 +90,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
246
90
|
- !ruby/object:Gem::Version
|
|
247
91
|
version: '0'
|
|
248
92
|
requirements: []
|
|
249
|
-
rubygems_version: 3.5.
|
|
250
|
-
signing_key:
|
|
93
|
+
rubygems_version: 3.5.22
|
|
94
|
+
signing_key:
|
|
251
95
|
specification_version: 4
|
|
252
96
|
summary: Executes code after database commit wherever you want in your application
|
|
253
97
|
test_files: []
|