after_commit_everywhere 1.0.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8b2847b6af9346bd5c042b364ccc1d94bbb696d82ef118362ad8085c2a96715
4
- data.tar.gz: b0089a18d4087f800e161477678a8dd69871d2413801e33556751a5e7d6731f4
3
+ metadata.gz: 4425b11aa2651bd44ec24dc839e1338537f087f89c3f19f250d3ad2aeb0fad07
4
+ data.tar.gz: 143406ceecd3d9d3e1f7999f8cbb3754c19186036a7b2f47f19996c932048e26
5
5
  SHA512:
6
- metadata.gz: 2c8342d72f9a2d076d62f52842aff823cdef8a8024e23f45c3360fdb662338878258efde0e2f09fe1f471d5830ed068d723af46f3ac628ef62daea843efdc723
7
- data.tar.gz: b6a74ddc5d7e8f34db311fd44d9b88627c2213c70931e6ebaf635f64cc74a3051724af088b4c2ba04f4420b856779626a1fbab2bc0f07c2c9c22168f5a9ff779
6
+ metadata.gz: fdaa287369af57e90b69699fdbd11b687491ea9c938af714e8a68871954b3685e07c4a9ba16939094ea6f082cec84ce351c9354341685f42bcd58bcc0307ee29
7
+ data.tar.gz: 5a42c24b63cbdf2d84597e3fa6071d588a76e8821736239a146708dd155a8492dc657c29577022d7072c13ecdcc4d0b1ee22243701d1e1058ebcd13ee6072573
data/Appraisals CHANGED
@@ -39,7 +39,4 @@ appraise "activerecord-master" do
39
39
 
40
40
  gem "sqlite3", "~> 1.4"
41
41
  gem "rspec-rails", "~> 4.0"
42
-
43
- # See https://github.com/cgriego/active_attr/pull/183
44
- gem "active_attr", git: "https://github.com/Envek/active_attr.git", branch: "chore/loose-dependency-constraint"
45
42
  end
data/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## 1.1.0 (2021-08-05)
10
+
11
+ ### Added
12
+
13
+ - Allow to call transactional callbacks directly on `AfterCommitEverywhere` module:
14
+
15
+ ```ruby
16
+ AfterCommitEverywhere.after_commit { puts "If you see me then transaction has been successfully commited!" }
17
+ ```
18
+
19
+ - Allow to call `in_transaction?` helper method from instance methods in classes that includes `AfterCommitEverywhere` module.
20
+
9
21
  ## 1.0.0 (2021-02-17)
10
22
 
11
23
  Declare gem as stable. No changes since 0.1.5.
data/Gemfile.lock CHANGED
@@ -1,70 +1,71 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- after_commit_everywhere (0.1.5)
4
+ after_commit_everywhere (1.0.0)
5
5
  activerecord (>= 4.2)
6
+ activesupport
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- actioncable (6.1.2.1)
11
- actionpack (= 6.1.2.1)
12
- activesupport (= 6.1.2.1)
11
+ actioncable (6.1.4)
12
+ actionpack (= 6.1.4)
13
+ activesupport (= 6.1.4)
13
14
  nio4r (~> 2.0)
14
15
  websocket-driver (>= 0.6.1)
15
- actionmailbox (6.1.2.1)
16
- actionpack (= 6.1.2.1)
17
- activejob (= 6.1.2.1)
18
- activerecord (= 6.1.2.1)
19
- activestorage (= 6.1.2.1)
20
- activesupport (= 6.1.2.1)
16
+ actionmailbox (6.1.4)
17
+ actionpack (= 6.1.4)
18
+ activejob (= 6.1.4)
19
+ activerecord (= 6.1.4)
20
+ activestorage (= 6.1.4)
21
+ activesupport (= 6.1.4)
21
22
  mail (>= 2.7.1)
22
- actionmailer (6.1.2.1)
23
- actionpack (= 6.1.2.1)
24
- actionview (= 6.1.2.1)
25
- activejob (= 6.1.2.1)
26
- activesupport (= 6.1.2.1)
23
+ actionmailer (6.1.4)
24
+ actionpack (= 6.1.4)
25
+ actionview (= 6.1.4)
26
+ activejob (= 6.1.4)
27
+ activesupport (= 6.1.4)
27
28
  mail (~> 2.5, >= 2.5.4)
28
29
  rails-dom-testing (~> 2.0)
29
- actionpack (6.1.2.1)
30
- actionview (= 6.1.2.1)
31
- activesupport (= 6.1.2.1)
30
+ actionpack (6.1.4)
31
+ actionview (= 6.1.4)
32
+ activesupport (= 6.1.4)
32
33
  rack (~> 2.0, >= 2.0.9)
33
34
  rack-test (>= 0.6.3)
34
35
  rails-dom-testing (~> 2.0)
35
36
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
36
- actiontext (6.1.2.1)
37
- actionpack (= 6.1.2.1)
38
- activerecord (= 6.1.2.1)
39
- activestorage (= 6.1.2.1)
40
- activesupport (= 6.1.2.1)
37
+ actiontext (6.1.4)
38
+ actionpack (= 6.1.4)
39
+ activerecord (= 6.1.4)
40
+ activestorage (= 6.1.4)
41
+ activesupport (= 6.1.4)
41
42
  nokogiri (>= 1.8.5)
42
- actionview (6.1.2.1)
43
- activesupport (= 6.1.2.1)
43
+ actionview (6.1.4)
44
+ activesupport (= 6.1.4)
44
45
  builder (~> 3.1)
45
46
  erubi (~> 1.4)
46
47
  rails-dom-testing (~> 2.0)
47
48
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
48
- active_attr (0.15.1)
49
- actionpack (>= 3.0.2, < 6.2)
50
- activemodel (>= 3.0.2, < 6.2)
51
- activesupport (>= 3.0.2, < 6.2)
52
- activejob (6.1.2.1)
53
- activesupport (= 6.1.2.1)
49
+ active_attr (0.15.3)
50
+ actionpack (>= 3.0.2, < 7.0)
51
+ activemodel (>= 3.0.2, < 7.0)
52
+ activesupport (>= 3.0.2, < 7.0)
53
+ activejob (6.1.4)
54
+ activesupport (= 6.1.4)
54
55
  globalid (>= 0.3.6)
55
- activemodel (6.1.2.1)
56
- activesupport (= 6.1.2.1)
57
- activerecord (6.1.2.1)
58
- activemodel (= 6.1.2.1)
59
- activesupport (= 6.1.2.1)
60
- activestorage (6.1.2.1)
61
- actionpack (= 6.1.2.1)
62
- activejob (= 6.1.2.1)
63
- activerecord (= 6.1.2.1)
64
- activesupport (= 6.1.2.1)
65
- marcel (~> 0.3.1)
66
- mimemagic (~> 0.3.2)
67
- activesupport (6.1.2.1)
56
+ activemodel (6.1.4)
57
+ activesupport (= 6.1.4)
58
+ activerecord (6.1.4)
59
+ activemodel (= 6.1.4)
60
+ activesupport (= 6.1.4)
61
+ activestorage (6.1.4)
62
+ actionpack (= 6.1.4)
63
+ activejob (= 6.1.4)
64
+ activerecord (= 6.1.4)
65
+ activesupport (= 6.1.4)
66
+ marcel (~> 1.0.0)
67
+ mini_mime (>= 1.1.0)
68
+ activesupport (6.1.4)
68
69
  concurrent-ruby (~> 1.0, >= 1.0.2)
69
70
  i18n (>= 1.6, < 2)
70
71
  minitest (>= 5.1)
@@ -72,79 +73,77 @@ GEM
72
73
  zeitwerk (~> 2.3)
73
74
  anyway_config (2.1.0)
74
75
  ruby-next-core (>= 0.11.0)
75
- appraisal (2.3.0)
76
+ appraisal (2.4.1)
76
77
  bundler
77
78
  rake
78
79
  thor (>= 0.14.0)
79
80
  ast (2.4.2)
80
81
  builder (3.2.4)
81
82
  coderay (1.1.3)
82
- concurrent-ruby (1.1.8)
83
+ concurrent-ruby (1.1.9)
83
84
  crass (1.0.6)
84
85
  diff-lcs (1.4.4)
85
86
  erubi (1.10.0)
86
- globalid (0.4.2)
87
- activesupport (>= 4.2.0)
88
- i18n (1.8.9)
87
+ globalid (0.5.2)
88
+ activesupport (>= 5.0)
89
+ i18n (1.8.10)
89
90
  concurrent-ruby (~> 1.0)
90
91
  isolator (0.7.0)
91
92
  sniffer (>= 0.3.1)
92
93
  jaro_winkler (1.5.4)
93
- loofah (2.9.0)
94
+ loofah (2.11.0)
94
95
  crass (~> 1.0.2)
95
96
  nokogiri (>= 1.5.9)
96
97
  mail (2.7.1)
97
98
  mini_mime (>= 0.1.1)
98
- marcel (0.3.3)
99
- mimemagic (~> 0.3.2)
99
+ marcel (1.0.1)
100
100
  method_source (1.0.0)
101
- mimemagic (0.3.5)
102
- mini_mime (1.0.2)
103
- mini_portile2 (2.5.0)
104
- minitest (5.14.3)
105
- nio4r (2.5.5)
106
- nokogiri (1.11.1)
107
- mini_portile2 (~> 2.5.0)
101
+ mini_mime (1.1.0)
102
+ mini_portile2 (2.6.1)
103
+ minitest (5.14.4)
104
+ nio4r (2.5.8)
105
+ nokogiri (1.12.2)
106
+ mini_portile2 (~> 2.6.1)
108
107
  racc (~> 1.4)
109
108
  parallel (1.20.1)
110
- parser (3.0.0.0)
109
+ parser (3.0.2.0)
111
110
  ast (~> 2.4.1)
112
- pry (0.14.0)
111
+ pry (0.14.1)
113
112
  coderay (~> 1.1)
114
113
  method_source (~> 1.0)
115
114
  racc (1.5.2)
116
115
  rack (2.2.3)
117
116
  rack-test (1.1.0)
118
117
  rack (>= 1.0, < 3)
119
- rails (6.1.2.1)
120
- actioncable (= 6.1.2.1)
121
- actionmailbox (= 6.1.2.1)
122
- actionmailer (= 6.1.2.1)
123
- actionpack (= 6.1.2.1)
124
- actiontext (= 6.1.2.1)
125
- actionview (= 6.1.2.1)
126
- activejob (= 6.1.2.1)
127
- activemodel (= 6.1.2.1)
128
- activerecord (= 6.1.2.1)
129
- activestorage (= 6.1.2.1)
130
- activesupport (= 6.1.2.1)
118
+ rails (6.1.4)
119
+ actioncable (= 6.1.4)
120
+ actionmailbox (= 6.1.4)
121
+ actionmailer (= 6.1.4)
122
+ actionpack (= 6.1.4)
123
+ actiontext (= 6.1.4)
124
+ actionview (= 6.1.4)
125
+ activejob (= 6.1.4)
126
+ activemodel (= 6.1.4)
127
+ activerecord (= 6.1.4)
128
+ activestorage (= 6.1.4)
129
+ activesupport (= 6.1.4)
131
130
  bundler (>= 1.15.0)
132
- railties (= 6.1.2.1)
131
+ railties (= 6.1.4)
133
132
  sprockets-rails (>= 2.0.0)
134
133
  rails-dom-testing (2.0.3)
135
134
  activesupport (>= 4.2.0)
136
135
  nokogiri (>= 1.6)
137
136
  rails-html-sanitizer (1.3.0)
138
137
  loofah (~> 2.3)
139
- railties (6.1.2.1)
140
- actionpack (= 6.1.2.1)
141
- activesupport (= 6.1.2.1)
138
+ railties (6.1.4)
139
+ actionpack (= 6.1.4)
140
+ activesupport (= 6.1.4)
142
141
  method_source
143
- rake (>= 0.8.7)
142
+ rake (>= 0.13)
144
143
  thor (~> 1.0)
145
144
  rainbow (3.0.0)
146
- rake (13.0.3)
147
- rexml (3.2.4)
145
+ rake (13.0.6)
146
+ rexml (3.2.5)
148
147
  rspec (3.10.0)
149
148
  rspec-core (~> 3.10.0)
150
149
  rspec-expectations (~> 3.10.0)
@@ -157,10 +156,10 @@ GEM
157
156
  rspec-mocks (3.10.2)
158
157
  diff-lcs (>= 1.2.0, < 2.0)
159
158
  rspec-support (~> 3.10.0)
160
- rspec-rails (4.0.2)
161
- actionpack (>= 4.2)
162
- activesupport (>= 4.2)
163
- railties (>= 4.2)
159
+ rspec-rails (5.0.1)
160
+ actionpack (>= 5.2)
161
+ activesupport (>= 5.2)
162
+ railties (>= 5.2)
164
163
  rspec-core (~> 3.10)
165
164
  rspec-expectations (~> 3.10)
166
165
  rspec-mocks (~> 3.10)
@@ -191,7 +190,7 @@ GEM
191
190
  tzinfo (2.0.4)
192
191
  concurrent-ruby (~> 1.0)
193
192
  unicode-display_width (1.7.0)
194
- websocket-driver (0.7.3)
193
+ websocket-driver (0.7.5)
195
194
  websocket-extensions (>= 0.1.0)
196
195
  websocket-extensions (0.1.5)
197
196
  zeitwerk (2.4.2)
@@ -213,4 +212,4 @@ DEPENDENCIES
213
212
  sqlite3 (~> 1.3, >= 1.3.6)
214
213
 
215
214
  BUNDLED WITH
216
- 2.2.9
215
+ 2.2.25
data/README.md CHANGED
@@ -55,6 +55,12 @@ ActiveRecord::Base.transaction do
55
55
  end
56
56
  ```
57
57
 
58
+ Or call it directly on module:
59
+
60
+ ```ruby
61
+ AfterCommitEverywhere.after_commit { puts "We're all done!" }
62
+ ```
63
+
58
64
  That's it!
59
65
 
60
66
  But the main benefit is that it works with nested `transaction` blocks (may be even spread across many files in your codebase):
@@ -107,6 +113,12 @@ If called outside transaction will raise an exception!
107
113
 
108
114
  Please keep in mind ActiveRecord's [limitations for rolling back nested transactions](http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html#module-ActiveRecord::Transactions::ClassMethods-label-Nested+transactions).
109
115
 
116
+ ### Available helper methods
117
+
118
+ #### `in_transaction?`
119
+
120
+ Returns `true` when called inside open transaction, `false` otherwise.
121
+
110
122
  ### FAQ
111
123
 
112
124
  #### Does it works with transactional_test or DatabaseCleaner
@@ -133,6 +145,34 @@ By calling [the class level `after_commit` method on models](https://api.rubyonr
133
145
 
134
146
  See https://github.com/Envek/after_commit_everywhere/issues/13 for details.
135
147
 
148
+ #### But what if I want to use it inside models anyway?
149
+
150
+ In class-level methods call `AfterCommitEverywhere.after_commit` directly:
151
+
152
+ ```ruby
153
+ class Post < ActiveRecord::Base
154
+ def self.bulk_ops
155
+ find_each do
156
+ AfterCommitEverywhere.after_commit { puts "Now it works as expected!" }
157
+ end
158
+ end
159
+ end
160
+ ```
161
+
162
+ For usage in instance-level methods include this module to your model class (or right into your `ApplicationRecord`):
163
+
164
+ ```ruby
165
+ class Post < ActiveRecord::Base
166
+ include AfterCommitEverywhere
167
+
168
+ def do_some_stuff
169
+ after_commit { puts "Now it works!" }
170
+ end
171
+ end
172
+ ```
173
+
174
+ However, if you do something in models that requires defining such ad-hoc transactional callbacks, it may indicate that your models have too many responsibilities and these methods should be extracted to separate secialized layers (service objects, etc).
175
+
136
176
  ## Development
137
177
 
138
178
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  spec.add_dependency "activerecord", ">= 4.2"
32
+ spec.add_dependency "activesupport"
32
33
  spec.add_development_dependency "appraisal"
33
34
  spec.add_development_dependency "bundler", "~> 2.0"
34
35
  spec.add_development_dependency "isolator", "~> 0.7"
@@ -9,6 +9,5 @@ end
9
9
 
10
10
  gem "sqlite3", "~> 1.4"
11
11
  gem "rspec-rails", "~> 4.0"
12
- gem "active_attr", git: "https://github.com/Envek/active_attr.git", branch: "chore/loose-dependency-constraint"
13
12
 
14
13
  gemspec path: "../"
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_record"
4
+ require "active_support/core_ext/module/delegation"
4
5
 
5
6
  require "after_commit_everywhere/version"
6
7
  require "after_commit_everywhere/wrap"
@@ -12,65 +13,69 @@ require "after_commit_everywhere/wrap"
12
13
  module AfterCommitEverywhere
13
14
  class NotInTransaction < RuntimeError; end
14
15
 
15
- # Runs +callback+ after successful commit of outermost transaction for
16
- # database +connection+.
17
- #
18
- # If called outside transaction it will execute callback immediately.
19
- #
20
- # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
21
- # @param callback [#call] Callback to be executed
22
- # @return void
23
- def after_commit(connection: ActiveRecord::Base.connection, &callback)
24
- AfterCommitEverywhere.register_callback(
25
- connection: connection,
26
- name: __method__,
27
- callback: callback,
28
- no_tx_action: :execute,
29
- )
30
- end
16
+ delegate :after_commit, :before_commit, :after_rollback, to: AfterCommitEverywhere
17
+ delegate :in_transaction?, to: AfterCommitEverywhere
31
18
 
32
- # Runs +callback+ before committing of outermost transaction for +connection+.
33
- #
34
- # If called outside transaction it will execute callback immediately.
35
- #
36
- # Available only since Ruby on Rails 5.0. See https://github.com/rails/rails/pull/18936
37
- #
38
- # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
39
- # @param callback [#call] Callback to be executed
40
- # @return void
41
- def before_commit(connection: ActiveRecord::Base.connection, &callback)
42
- if ActiveRecord::VERSION::MAJOR < 5
43
- raise NotImplementedError, "#{__method__} works only with Rails 5.0+"
19
+ class << self
20
+ # Runs +callback+ after successful commit of outermost transaction for
21
+ # database +connection+.
22
+ #
23
+ # If called outside transaction it will execute callback immediately.
24
+ #
25
+ # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
26
+ # @param callback [#call] Callback to be executed
27
+ # @return void
28
+ def after_commit(connection: ActiveRecord::Base.connection, &callback)
29
+ register_callback(
30
+ connection: connection,
31
+ name: __method__,
32
+ callback: callback,
33
+ no_tx_action: :execute,
34
+ )
44
35
  end
45
36
 
46
- AfterCommitEverywhere.register_callback(
47
- connection: connection,
48
- name: __method__,
49
- callback: callback,
50
- no_tx_action: :warn_and_execute,
51
- )
52
- end
37
+ # Runs +callback+ before committing of outermost transaction for +connection+.
38
+ #
39
+ # If called outside transaction it will execute callback immediately.
40
+ #
41
+ # Available only since Ruby on Rails 5.0. See https://github.com/rails/rails/pull/18936
42
+ #
43
+ # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
44
+ # @param callback [#call] Callback to be executed
45
+ # @return void
46
+ def before_commit(connection: ActiveRecord::Base.connection, &callback)
47
+ if ActiveRecord::VERSION::MAJOR < 5
48
+ raise NotImplementedError, "#{__method__} works only with Rails 5.0+"
49
+ end
53
50
 
54
- # Runs +callback+ after rolling back of transaction or savepoint (if declared
55
- # in nested transaction) for database +connection+.
56
- #
57
- # Caveat: do not raise +ActivRecord::Rollback+ in nested transaction block!
58
- # See http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html#module-ActiveRecord::Transactions::ClassMethods-label-Nested+transactions
59
- #
60
- # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
61
- # @param callback [#call] Callback to be executed
62
- # @return void
63
- # @raise [NotInTransaction] if called outside transaction.
64
- def after_rollback(connection: ActiveRecord::Base.connection, &callback)
65
- AfterCommitEverywhere.register_callback(
66
- connection: connection,
67
- name: __method__,
68
- callback: callback,
69
- no_tx_action: :exception,
70
- )
71
- end
51
+ register_callback(
52
+ connection: connection,
53
+ name: __method__,
54
+ callback: callback,
55
+ no_tx_action: :warn_and_execute,
56
+ )
57
+ end
72
58
 
73
- class << self
59
+ # Runs +callback+ after rolling back of transaction or savepoint (if declared
60
+ # in nested transaction) for database +connection+.
61
+ #
62
+ # Caveat: do not raise +ActivRecord::Rollback+ in nested transaction block!
63
+ # See http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html#module-ActiveRecord::Transactions::ClassMethods-label-Nested+transactions
64
+ #
65
+ # @param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter]
66
+ # @param callback [#call] Callback to be executed
67
+ # @return void
68
+ # @raise [NotInTransaction] if called outside transaction.
69
+ def after_rollback(connection: ActiveRecord::Base.connection, &callback)
70
+ register_callback(
71
+ connection: connection,
72
+ name: __method__,
73
+ callback: callback,
74
+ no_tx_action: :exception,
75
+ )
76
+ end
77
+
78
+ # @api private
74
79
  def register_callback(connection:, name:, no_tx_action:, callback:)
75
80
  raise ArgumentError, "Provide callback to #{name}" unless callback
76
81
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AfterCommitEverywhere
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
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.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Novikov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-17 00:00:00.000000000 Z
11
+ date: 2021-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: appraisal
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -224,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
238
  - !ruby/object:Gem::Version
225
239
  version: '0'
226
240
  requirements: []
227
- rubygems_version: 3.1.4
241
+ rubygems_version: 3.1.6
228
242
  signing_key:
229
243
  specification_version: 4
230
244
  summary: Executes code after database commit wherever you want in your application