after_commit_everywhere 1.0.0 → 1.1.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: 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