after_commit_everywhere 0.1.3 → 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 +4 -4
- data/.github/workflows/release.yml +82 -0
- data/.github/workflows/test.yml +63 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +12 -1
- data/Appraisals +22 -2
- data/CHANGELOG.md +30 -0
- data/Gemfile.lock +215 -0
- data/README.md +94 -4
- data/after_commit_everywhere.gemspec +6 -5
- data/gemfiles/activerecord_4_2.gemfile +1 -2
- data/gemfiles/activerecord_5_0.gemfile +1 -2
- data/gemfiles/activerecord_5_1.gemfile +1 -2
- data/gemfiles/activerecord_5_2.gemfile +1 -2
- data/gemfiles/activerecord_6_0.gemfile +8 -0
- data/gemfiles/activerecord_6_1.gemfile +9 -0
- data/gemfiles/activerecord_master.gemfile +7 -4
- data/lib/after_commit_everywhere.rb +59 -54
- data/lib/after_commit_everywhere/version.rb +1 -1
- data/lib/after_commit_everywhere/wrap.rb +4 -0
- metadata +38 -14
- data/.travis.yml +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4425b11aa2651bd44ec24dc839e1338537f087f89c3f19f250d3ad2aeb0fad07
|
4
|
+
data.tar.gz: 143406ceecd3d9d3e1f7999f8cbb3754c19186036a7b2f47f19996c932048e26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdaa287369af57e90b69699fdbd11b687491ea9c938af714e8a68871954b3685e07c4a9ba16939094ea6f082cec84ce351c9354341685f42bcd58bcc0307ee29
|
7
|
+
data.tar.gz: 5a42c24b63cbdf2d84597e3fa6071d588a76e8821736239a146708dd155a8492dc657c29577022d7072c13ecdcc4d0b1ee22243701d1e1058ebcd13ee6072573
|
@@ -0,0 +1,82 @@
|
|
1
|
+
name: Build and release gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- v*
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
release:
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v2
|
13
|
+
with:
|
14
|
+
fetch-depth: 0 # Fetch current tag as annotated. See https://github.com/actions/checkout/issues/290
|
15
|
+
- uses: ruby/setup-ruby@v1
|
16
|
+
with:
|
17
|
+
ruby-version: 2.7
|
18
|
+
- name: "Extract data from tag: version, message, body"
|
19
|
+
id: tag
|
20
|
+
run: |
|
21
|
+
git fetch --tags --force # Really fetch annotated tag. See https://github.com/actions/checkout/issues/290#issuecomment-680260080
|
22
|
+
echo ::set-output name=version::${GITHUB_REF#refs/tags/v}
|
23
|
+
echo ::set-output name=subject::$(git for-each-ref $GITHUB_REF --format='%(contents:subject)')
|
24
|
+
BODY="$(git for-each-ref $GITHUB_REF --format='%(contents:body)')"
|
25
|
+
# Extract changelog entries between this and previous version headers
|
26
|
+
escaped_version=$(echo ${GITHUB_REF#refs/tags/v} | sed -e 's/[]\/$*.^[]/\\&/g')
|
27
|
+
changelog=$(awk "BEGIN{inrelease=0} /## ${escaped_version}/{inrelease=1;next} /## [0-9]+\.[0-9]+\.[0-9]+/{inrelease=0;exit} {if (inrelease) print}" CHANGELOG.md)
|
28
|
+
# Multiline body for release. See https://github.community/t/set-output-truncates-multiline-strings/16852/5
|
29
|
+
BODY="${BODY}"$'\n'"${changelog}"
|
30
|
+
BODY="${BODY//'%'/'%25'}"
|
31
|
+
BODY="${BODY//$'\n'/'%0A'}"
|
32
|
+
BODY="${BODY//$'\r'/'%0D'}"
|
33
|
+
echo "::set-output name=body::$BODY"
|
34
|
+
# Add pre-release option if tag name has any suffix after vMAJOR.MINOR.PATCH
|
35
|
+
if [[ ${GITHUB_REF#refs/tags/} =~ ^v[0-9]+\.[0-9]+\.[0-9]+.+ ]]; then
|
36
|
+
echo ::set-output name=prerelease::true
|
37
|
+
fi
|
38
|
+
- name: Build gem
|
39
|
+
run: gem build
|
40
|
+
- name: Calculate checksums
|
41
|
+
run: sha256sum after_commit_everywhere-${{ steps.tag.outputs.version }}.gem > SHA256SUM
|
42
|
+
- name: Check version
|
43
|
+
run: ls -l after_commit_everywhere-${{ steps.tag.outputs.version }}.gem
|
44
|
+
- name: Create Release
|
45
|
+
id: create_release
|
46
|
+
uses: actions/create-release@v1
|
47
|
+
env:
|
48
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
49
|
+
with:
|
50
|
+
tag_name: ${{ github.ref }}
|
51
|
+
release_name: ${{ steps.tag.outputs.subject }}
|
52
|
+
body: ${{ steps.tag.outputs.body }}
|
53
|
+
draft: false
|
54
|
+
prerelease: ${{ steps.tag.outputs.prerelease }}
|
55
|
+
- name: Upload built gem as release asset
|
56
|
+
uses: actions/upload-release-asset@v1
|
57
|
+
env:
|
58
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
59
|
+
with:
|
60
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
61
|
+
asset_path: after_commit_everywhere-${{ steps.tag.outputs.version }}.gem
|
62
|
+
asset_name: after_commit_everywhere-${{ steps.tag.outputs.version }}.gem
|
63
|
+
asset_content_type: application/x-tar
|
64
|
+
- name: Upload checksums as release asset
|
65
|
+
uses: actions/upload-release-asset@v1
|
66
|
+
env:
|
67
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
68
|
+
with:
|
69
|
+
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
70
|
+
asset_path: SHA256SUM
|
71
|
+
asset_name: SHA256SUM
|
72
|
+
asset_content_type: text/plain
|
73
|
+
- name: Publish to GitHub packages
|
74
|
+
env:
|
75
|
+
GEM_HOST_API_KEY: Bearer ${{ secrets.GITHUB_TOKEN }}
|
76
|
+
run: |
|
77
|
+
gem push after_commit_everywhere-${{ steps.tag.outputs.version }}.gem --host https://rubygems.pkg.github.com/${{ github.repository_owner }}
|
78
|
+
- name: Publish to RubyGems
|
79
|
+
env:
|
80
|
+
GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_API_KEY }}"
|
81
|
+
run: |
|
82
|
+
gem push after_commit_everywhere-${{ steps.tag.outputs.version }}.gem
|
@@ -0,0 +1,63 @@
|
|
1
|
+
name: Run tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- '**'
|
8
|
+
tags-ignore:
|
9
|
+
- 'v*'
|
10
|
+
schedule:
|
11
|
+
- cron: '42 0 1 * *' # on 1st day of every month at 00:42
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
test:
|
15
|
+
name: 'ActiveRecord ${{ matrix.activerecord }} on Ruby ${{ matrix.ruby }}'
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
strategy:
|
18
|
+
fail-fast: false
|
19
|
+
matrix:
|
20
|
+
include:
|
21
|
+
- ruby: '2.5'
|
22
|
+
activerecord: '4.2'
|
23
|
+
gemfile: 'activerecord_4_2.gemfile'
|
24
|
+
- ruby: '2.6'
|
25
|
+
activerecord: '5.0'
|
26
|
+
gemfile: 'activerecord_5_0.gemfile'
|
27
|
+
- ruby: '2.6'
|
28
|
+
activerecord: '5.1'
|
29
|
+
gemfile: 'activerecord_5_1.gemfile'
|
30
|
+
- ruby: '2.6'
|
31
|
+
activerecord: '5.2'
|
32
|
+
gemfile: 'activerecord_5_2.gemfile'
|
33
|
+
- ruby: '2.7'
|
34
|
+
activerecord: '6.0'
|
35
|
+
gemfile: 'activerecord_6_0.gemfile'
|
36
|
+
- ruby: '2.7'
|
37
|
+
activerecord: '6.1'
|
38
|
+
gemfile: 'activerecord_6_1.gemfile'
|
39
|
+
- ruby: '3.0'
|
40
|
+
activerecord: 'HEAD'
|
41
|
+
gemfile: 'activerecord_master.gemfile'
|
42
|
+
container:
|
43
|
+
image: ruby:${{ matrix.ruby }}
|
44
|
+
env:
|
45
|
+
CI: true
|
46
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
|
47
|
+
steps:
|
48
|
+
- uses: actions/checkout@v2
|
49
|
+
- uses: actions/cache@v2
|
50
|
+
with:
|
51
|
+
path: vendor/bundle
|
52
|
+
key: bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
53
|
+
restore-keys: |
|
54
|
+
bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
55
|
+
bundle-${{ matrix.ruby }}-
|
56
|
+
- name: Upgrade Bundler to 2.x (mostly for Rubies older than 2.7)
|
57
|
+
run: gem install bundler -v '~> 2.0' -v '!= 2.2.10'
|
58
|
+
- name: Bundle install
|
59
|
+
run: |
|
60
|
+
bundle config path vendor/bundle
|
61
|
+
bundle update
|
62
|
+
- name: Run RSpec
|
63
|
+
run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -2,6 +2,8 @@ AllCops:
|
|
2
2
|
TargetRubyVersion: 2.3
|
3
3
|
UseCache: false
|
4
4
|
DisplayCopNames: true
|
5
|
+
Exclude:
|
6
|
+
- "gemfiles/*"
|
5
7
|
|
6
8
|
Metrics/LineLength:
|
7
9
|
Max: 100
|
@@ -24,7 +26,7 @@ Metrics/BlockLength:
|
|
24
26
|
- "spec/**/*.*"
|
25
27
|
- "*.gemspec"
|
26
28
|
|
27
|
-
Lint/
|
29
|
+
Lint/SuppressedException:
|
28
30
|
Exclude:
|
29
31
|
- "spec/**/*.*"
|
30
32
|
|
@@ -48,3 +50,12 @@ Style/TrailingCommaInHashLiteral:
|
|
48
50
|
|
49
51
|
Style/StringLiterals:
|
50
52
|
EnforcedStyle: double_quotes
|
53
|
+
|
54
|
+
Style/HashEachMethods:
|
55
|
+
Enabled: true
|
56
|
+
|
57
|
+
Style/HashTransformKeys:
|
58
|
+
Enabled: true
|
59
|
+
|
60
|
+
Style/HashTransformValues:
|
61
|
+
Enabled: true
|
data/Appraisals
CHANGED
@@ -2,21 +2,41 @@
|
|
2
2
|
|
3
3
|
appraise "activerecord-4-2" do
|
4
4
|
gem "activerecord", "~> 4.2.0"
|
5
|
+
gem "sqlite3", "~> 1.3.6"
|
5
6
|
end
|
6
7
|
|
7
8
|
appraise "activerecord-5-0" do
|
8
9
|
gem "activerecord", "~> 5.0.0"
|
10
|
+
gem "sqlite3", "~> 1.3.6"
|
9
11
|
end
|
10
12
|
|
11
13
|
appraise "activerecord-5-1" do
|
12
14
|
gem "activerecord", "~> 5.1.0"
|
15
|
+
gem "sqlite3", "~> 1.3", ">= 1.3.6"
|
13
16
|
end
|
14
17
|
|
15
18
|
appraise "activerecord-5-2" do
|
16
19
|
gem "activerecord", "~> 5.2.0"
|
20
|
+
gem "sqlite3", "~> 1.3", ">= 1.3.6"
|
21
|
+
end
|
22
|
+
|
23
|
+
appraise "activerecord-6-0" do
|
24
|
+
gem "activerecord", "~> 6.0.0"
|
25
|
+
gem "sqlite3", "~> 1.4"
|
26
|
+
end
|
27
|
+
|
28
|
+
appraise "activerecord-6-1" do
|
29
|
+
gem "activerecord", "~> 6.1.0"
|
30
|
+
gem "sqlite3", "~> 1.4"
|
31
|
+
gem "rspec-rails", "~> 4.0"
|
17
32
|
end
|
18
33
|
|
19
34
|
appraise "activerecord-master" do
|
20
|
-
|
21
|
-
|
35
|
+
git "https://github.com/rails/rails.git" do
|
36
|
+
gem "rails"
|
37
|
+
gem "activerecord"
|
38
|
+
end
|
39
|
+
|
40
|
+
gem "sqlite3", "~> 1.4"
|
41
|
+
gem "rspec-rails", "~> 4.0"
|
22
42
|
end
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,34 @@ 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
|
+
|
21
|
+
## 1.0.0 (2021-02-17)
|
22
|
+
|
23
|
+
Declare gem as stable. No changes since 0.1.5.
|
24
|
+
|
25
|
+
See [#11](https://github.com/Envek/after_commit_everywhere/issues/11) for discussion.
|
26
|
+
|
27
|
+
## 0.1.5 (2020-03-22)
|
28
|
+
|
29
|
+
### Fixed
|
30
|
+
|
31
|
+
- [PR [#8](https://github.com/Envek/after_commit_everywhere/pull/8)] Callback registration when callback methods are aliased. ([@stokarenko])
|
32
|
+
|
33
|
+
## 0.1.4 (2019-09-10)
|
34
|
+
|
35
|
+
- [PR [#6](https://github.com/Envek/after_commit_everywhere/pull/6)] ActiveRecord 6.0 compatibility. ([@joevandyk])
|
36
|
+
|
9
37
|
## 0.1.3 (2019-02-18)
|
10
38
|
|
11
39
|
- Make `in_transaction?` helper method public. ([@Envek])
|
@@ -24,3 +52,5 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
24
52
|
|
25
53
|
[@Envek]: https://github.com/Envek "Andrey Novikov"
|
26
54
|
[@arjun810]: https://github.com/arjun810 "Arjun Singh"
|
55
|
+
[@joevandyk]: https://github.com/joevandyk "Joe Van Dyk"
|
56
|
+
[@stokarenko]: https://github.com/stokarenko "Sergey Tokarenko"
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,215 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
after_commit_everywhere (1.0.0)
|
5
|
+
activerecord (>= 4.2)
|
6
|
+
activesupport
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
actioncable (6.1.4)
|
12
|
+
actionpack (= 6.1.4)
|
13
|
+
activesupport (= 6.1.4)
|
14
|
+
nio4r (~> 2.0)
|
15
|
+
websocket-driver (>= 0.6.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)
|
22
|
+
mail (>= 2.7.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)
|
28
|
+
mail (~> 2.5, >= 2.5.4)
|
29
|
+
rails-dom-testing (~> 2.0)
|
30
|
+
actionpack (6.1.4)
|
31
|
+
actionview (= 6.1.4)
|
32
|
+
activesupport (= 6.1.4)
|
33
|
+
rack (~> 2.0, >= 2.0.9)
|
34
|
+
rack-test (>= 0.6.3)
|
35
|
+
rails-dom-testing (~> 2.0)
|
36
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
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)
|
42
|
+
nokogiri (>= 1.8.5)
|
43
|
+
actionview (6.1.4)
|
44
|
+
activesupport (= 6.1.4)
|
45
|
+
builder (~> 3.1)
|
46
|
+
erubi (~> 1.4)
|
47
|
+
rails-dom-testing (~> 2.0)
|
48
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
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)
|
55
|
+
globalid (>= 0.3.6)
|
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)
|
69
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
70
|
+
i18n (>= 1.6, < 2)
|
71
|
+
minitest (>= 5.1)
|
72
|
+
tzinfo (~> 2.0)
|
73
|
+
zeitwerk (~> 2.3)
|
74
|
+
anyway_config (2.1.0)
|
75
|
+
ruby-next-core (>= 0.11.0)
|
76
|
+
appraisal (2.4.1)
|
77
|
+
bundler
|
78
|
+
rake
|
79
|
+
thor (>= 0.14.0)
|
80
|
+
ast (2.4.2)
|
81
|
+
builder (3.2.4)
|
82
|
+
coderay (1.1.3)
|
83
|
+
concurrent-ruby (1.1.9)
|
84
|
+
crass (1.0.6)
|
85
|
+
diff-lcs (1.4.4)
|
86
|
+
erubi (1.10.0)
|
87
|
+
globalid (0.5.2)
|
88
|
+
activesupport (>= 5.0)
|
89
|
+
i18n (1.8.10)
|
90
|
+
concurrent-ruby (~> 1.0)
|
91
|
+
isolator (0.7.0)
|
92
|
+
sniffer (>= 0.3.1)
|
93
|
+
jaro_winkler (1.5.4)
|
94
|
+
loofah (2.11.0)
|
95
|
+
crass (~> 1.0.2)
|
96
|
+
nokogiri (>= 1.5.9)
|
97
|
+
mail (2.7.1)
|
98
|
+
mini_mime (>= 0.1.1)
|
99
|
+
marcel (1.0.1)
|
100
|
+
method_source (1.0.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)
|
107
|
+
racc (~> 1.4)
|
108
|
+
parallel (1.20.1)
|
109
|
+
parser (3.0.2.0)
|
110
|
+
ast (~> 2.4.1)
|
111
|
+
pry (0.14.1)
|
112
|
+
coderay (~> 1.1)
|
113
|
+
method_source (~> 1.0)
|
114
|
+
racc (1.5.2)
|
115
|
+
rack (2.2.3)
|
116
|
+
rack-test (1.1.0)
|
117
|
+
rack (>= 1.0, < 3)
|
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)
|
130
|
+
bundler (>= 1.15.0)
|
131
|
+
railties (= 6.1.4)
|
132
|
+
sprockets-rails (>= 2.0.0)
|
133
|
+
rails-dom-testing (2.0.3)
|
134
|
+
activesupport (>= 4.2.0)
|
135
|
+
nokogiri (>= 1.6)
|
136
|
+
rails-html-sanitizer (1.3.0)
|
137
|
+
loofah (~> 2.3)
|
138
|
+
railties (6.1.4)
|
139
|
+
actionpack (= 6.1.4)
|
140
|
+
activesupport (= 6.1.4)
|
141
|
+
method_source
|
142
|
+
rake (>= 0.13)
|
143
|
+
thor (~> 1.0)
|
144
|
+
rainbow (3.0.0)
|
145
|
+
rake (13.0.6)
|
146
|
+
rexml (3.2.5)
|
147
|
+
rspec (3.10.0)
|
148
|
+
rspec-core (~> 3.10.0)
|
149
|
+
rspec-expectations (~> 3.10.0)
|
150
|
+
rspec-mocks (~> 3.10.0)
|
151
|
+
rspec-core (3.10.1)
|
152
|
+
rspec-support (~> 3.10.0)
|
153
|
+
rspec-expectations (3.10.1)
|
154
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
155
|
+
rspec-support (~> 3.10.0)
|
156
|
+
rspec-mocks (3.10.2)
|
157
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
158
|
+
rspec-support (~> 3.10.0)
|
159
|
+
rspec-rails (5.0.1)
|
160
|
+
actionpack (>= 5.2)
|
161
|
+
activesupport (>= 5.2)
|
162
|
+
railties (>= 5.2)
|
163
|
+
rspec-core (~> 3.10)
|
164
|
+
rspec-expectations (~> 3.10)
|
165
|
+
rspec-mocks (~> 3.10)
|
166
|
+
rspec-support (~> 3.10)
|
167
|
+
rspec-support (3.10.2)
|
168
|
+
rubocop (0.81.0)
|
169
|
+
jaro_winkler (~> 1.5.1)
|
170
|
+
parallel (~> 1.10)
|
171
|
+
parser (>= 2.7.0.1)
|
172
|
+
rainbow (>= 2.2.2, < 4.0)
|
173
|
+
rexml
|
174
|
+
ruby-progressbar (~> 1.7)
|
175
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
176
|
+
ruby-next-core (0.12.0)
|
177
|
+
ruby-progressbar (1.11.0)
|
178
|
+
sniffer (0.4.0)
|
179
|
+
active_attr (>= 0.10.2)
|
180
|
+
anyway_config (>= 1.0)
|
181
|
+
sprockets (4.0.2)
|
182
|
+
concurrent-ruby (~> 1.0)
|
183
|
+
rack (> 1, < 3)
|
184
|
+
sprockets-rails (3.2.2)
|
185
|
+
actionpack (>= 4.0)
|
186
|
+
activesupport (>= 4.0)
|
187
|
+
sprockets (>= 3.0.0)
|
188
|
+
sqlite3 (1.4.2)
|
189
|
+
thor (1.1.0)
|
190
|
+
tzinfo (2.0.4)
|
191
|
+
concurrent-ruby (~> 1.0)
|
192
|
+
unicode-display_width (1.7.0)
|
193
|
+
websocket-driver (0.7.5)
|
194
|
+
websocket-extensions (>= 0.1.0)
|
195
|
+
websocket-extensions (0.1.5)
|
196
|
+
zeitwerk (2.4.2)
|
197
|
+
|
198
|
+
PLATFORMS
|
199
|
+
ruby
|
200
|
+
|
201
|
+
DEPENDENCIES
|
202
|
+
after_commit_everywhere!
|
203
|
+
appraisal
|
204
|
+
bundler (~> 2.0)
|
205
|
+
isolator (~> 0.7)
|
206
|
+
pry
|
207
|
+
rails
|
208
|
+
rake (~> 13.0)
|
209
|
+
rspec (~> 3.0)
|
210
|
+
rspec-rails
|
211
|
+
rubocop (~> 0.81.0)
|
212
|
+
sqlite3 (~> 1.3, >= 1.3.6)
|
213
|
+
|
214
|
+
BUNDLED WITH
|
215
|
+
2.2.25
|
data/README.md
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
[](https://rubygems.org/gems/after_commit_everywhere)
|
2
|
-
[](https://travis-ci.org/Envek/after_commit_everywhere)
|
3
2
|
|
4
3
|
# `after_commit` everywhere
|
5
4
|
|
6
|
-
Allows to use ActiveRecord transactional callbacks outside of ActiveRecord models, literally everywhere in your application.
|
5
|
+
Allows to use ActiveRecord transactional callbacks **outside** of ActiveRecord models, literally everywhere in your application.
|
7
6
|
|
8
7
|
Inspired by these articles:
|
9
8
|
|
10
|
-
- https://
|
9
|
+
- https://evilmartians.com/chronicles/rails-after_commit-everywhere
|
11
10
|
- https://blog.arkency.com/2015/10/run-it-in-background-job-after-commit/
|
12
11
|
|
13
12
|
<a href="https://evilmartians.com/?utm_source=after_commit_everywhere&utm_campaign=project_page"><img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
|
@@ -56,6 +55,12 @@ ActiveRecord::Base.transaction do
|
|
56
55
|
end
|
57
56
|
```
|
58
57
|
|
58
|
+
Or call it directly on module:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
AfterCommitEverywhere.after_commit { puts "We're all done!" }
|
62
|
+
```
|
63
|
+
|
59
64
|
That's it!
|
60
65
|
|
61
66
|
But the main benefit is that it works with nested `transaction` blocks (may be even spread across many files in your codebase):
|
@@ -108,18 +113,103 @@ If called outside transaction will raise an exception!
|
|
108
113
|
|
109
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).
|
110
115
|
|
116
|
+
### Available helper methods
|
117
|
+
|
118
|
+
#### `in_transaction?`
|
119
|
+
|
120
|
+
Returns `true` when called inside open transaction, `false` otherwise.
|
121
|
+
|
111
122
|
### FAQ
|
112
123
|
|
113
124
|
#### Does it works with transactional_test or DatabaseCleaner
|
114
125
|
|
115
126
|
**Yes**.
|
116
127
|
|
128
|
+
### Be aware of mental traps
|
129
|
+
|
130
|
+
While it is convenient to have `after_commit` method at a class level to be able to call it from anywhere, take care not to call it on models.
|
131
|
+
|
132
|
+
So, **DO NOT DO THIS**:
|
133
|
+
|
134
|
+
```ruby
|
135
|
+
class Post < ActiveRecord::Base
|
136
|
+
def self.bulk_ops
|
137
|
+
find_each do
|
138
|
+
after_commit { raise "Some doesn't expect that this screw up everything, but they should" }
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
```
|
143
|
+
|
144
|
+
By calling [the class level `after_commit` method on models](https://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html#method-i-after_commit), you're effectively adding callback for all `Post` instances, including **future** ones.
|
145
|
+
|
146
|
+
See https://github.com/Envek/after_commit_everywhere/issues/13 for details.
|
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).
|
117
175
|
|
118
176
|
## Development
|
119
177
|
|
120
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.
|
121
179
|
|
122
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
180
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
181
|
+
|
182
|
+
### Releasing new versions
|
183
|
+
|
184
|
+
1. Bump version number in `lib/after_commit_everywhere/version.rb`
|
185
|
+
|
186
|
+
In case of pre-releases keep in mind [rubygems/rubygems#3086](https://github.com/rubygems/rubygems/issues/3086) and check version with command like `Gem::Version.new(AfterCommitEverywhere::VERSION).to_s`
|
187
|
+
|
188
|
+
2. Fill `CHANGELOG.md` with missing changes, add header with version and date.
|
189
|
+
|
190
|
+
3. Make a commit:
|
191
|
+
|
192
|
+
```sh
|
193
|
+
git add lib/after_commit_everywhere/version.rb CHANGELOG.md
|
194
|
+
version=$(ruby -r ./lib/after_commit_everywhere/version.rb -e "puts Gem::Version.new(AfterCommitEverywhere::VERSION)")
|
195
|
+
git commit --message="${version}: " --edit
|
196
|
+
```
|
197
|
+
|
198
|
+
4. Create annotated tag:
|
199
|
+
|
200
|
+
```sh
|
201
|
+
git tag v${version} --annotate --message="${version}: " --edit --sign
|
202
|
+
```
|
203
|
+
|
204
|
+
5. Fill version name into subject line and (optionally) some description (list of changes will be taken from `CHANGELOG.md` and appended automatically)
|
205
|
+
|
206
|
+
6. Push it:
|
207
|
+
|
208
|
+
```sh
|
209
|
+
git push --follow-tags
|
210
|
+
```
|
211
|
+
|
212
|
+
7. GitHub Actions will create a new release, build and push gem into [rubygems.org](https://rubygems.org)! You're done!
|
123
213
|
|
124
214
|
|
125
215
|
## Contributing
|
@@ -29,14 +29,15 @@ 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
|
-
spec.add_development_dependency "bundler", "~>
|
34
|
-
spec.add_development_dependency "isolator"
|
34
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
35
|
+
spec.add_development_dependency "isolator", "~> 0.7"
|
35
36
|
spec.add_development_dependency "pry"
|
36
37
|
spec.add_development_dependency "rails"
|
37
|
-
spec.add_development_dependency "rake", "~>
|
38
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
38
39
|
spec.add_development_dependency "rspec", "~> 3.0"
|
39
40
|
spec.add_development_dependency "rspec-rails"
|
40
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
41
|
-
spec.add_development_dependency "sqlite3", "~> 1.3.6"
|
41
|
+
spec.add_development_dependency "rubocop", "~> 0.81.0"
|
42
|
+
spec.add_development_dependency "sqlite3", "~> 1.3", ">= 1.3.6"
|
42
43
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
1
|
# This file was generated by Appraisal
|
4
2
|
|
5
3
|
source "https://rubygems.org"
|
6
4
|
|
7
|
-
|
8
|
-
gem "rails"
|
5
|
+
git "https://github.com/rails/rails.git" do
|
6
|
+
gem "rails"
|
7
|
+
gem "activerecord"
|
8
|
+
end
|
9
|
+
|
10
|
+
gem "sqlite3", "~> 1.4"
|
11
|
+
gem "rspec-rails", "~> 4.0"
|
9
12
|
|
10
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
|
-
|
16
|
-
|
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: __callee__,
|
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
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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: __callee__,
|
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
|
-
|
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
|
|
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:
|
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:
|
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
|
@@ -44,28 +58,28 @@ dependencies:
|
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '2.0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '2.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: isolator
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - "
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
75
|
+
version: '0.7'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - "
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
82
|
+
version: '0.7'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: pry
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +114,14 @@ dependencies:
|
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
117
|
+
version: '13.0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
124
|
+
version: '13.0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: rspec
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,19 +156,22 @@ dependencies:
|
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: 0.81.0
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 0.81.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: sqlite3
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.3'
|
174
|
+
- - ">="
|
158
175
|
- !ruby/object:Gem::Version
|
159
176
|
version: 1.3.6
|
160
177
|
type: :development
|
@@ -162,6 +179,9 @@ dependencies:
|
|
162
179
|
version_requirements: !ruby/object:Gem::Requirement
|
163
180
|
requirements:
|
164
181
|
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '1.3'
|
184
|
+
- - ">="
|
165
185
|
- !ruby/object:Gem::Version
|
166
186
|
version: 1.3.6
|
167
187
|
description: Brings before_commit, after_commit, and after_rollback transactional
|
@@ -172,13 +192,15 @@ executables: []
|
|
172
192
|
extensions: []
|
173
193
|
extra_rdoc_files: []
|
174
194
|
files:
|
195
|
+
- ".github/workflows/release.yml"
|
196
|
+
- ".github/workflows/test.yml"
|
175
197
|
- ".gitignore"
|
176
198
|
- ".rspec"
|
177
199
|
- ".rubocop.yml"
|
178
|
-
- ".travis.yml"
|
179
200
|
- Appraisals
|
180
201
|
- CHANGELOG.md
|
181
202
|
- Gemfile
|
203
|
+
- Gemfile.lock
|
182
204
|
- LICENSE.txt
|
183
205
|
- README.md
|
184
206
|
- Rakefile
|
@@ -190,6 +212,8 @@ files:
|
|
190
212
|
- gemfiles/activerecord_5_0.gemfile
|
191
213
|
- gemfiles/activerecord_5_1.gemfile
|
192
214
|
- gemfiles/activerecord_5_2.gemfile
|
215
|
+
- gemfiles/activerecord_6_0.gemfile
|
216
|
+
- gemfiles/activerecord_6_1.gemfile
|
193
217
|
- gemfiles/activerecord_master.gemfile
|
194
218
|
- lib/after_commit_everywhere.rb
|
195
219
|
- lib/after_commit_everywhere/version.rb
|
@@ -214,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
238
|
- !ruby/object:Gem::Version
|
215
239
|
version: '0'
|
216
240
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
241
|
+
rubygems_version: 3.1.6
|
218
242
|
signing_key:
|
219
243
|
specification_version: 4
|
220
244
|
summary: Executes code after database commit wherever you want in your application
|
data/.travis.yml
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
cache: bundler
|
2
|
-
sudo: false
|
3
|
-
language: ruby
|
4
|
-
|
5
|
-
addons:
|
6
|
-
apt:
|
7
|
-
sources:
|
8
|
-
- travis-ci/sqlite3
|
9
|
-
packages:
|
10
|
-
- sqlite3
|
11
|
-
|
12
|
-
matrix:
|
13
|
-
include:
|
14
|
-
- rvm: 2.5.3
|
15
|
-
gemfile: gemfiles/activerecord_4_2.gemfile
|
16
|
-
- rvm: 2.5.3
|
17
|
-
gemfile: gemfiles/activerecord_5_0.gemfile
|
18
|
-
- rvm: 2.5.3
|
19
|
-
gemfile: gemfiles/activerecord_5_1.gemfile
|
20
|
-
- rvm: 2.4.5
|
21
|
-
gemfile: gemfiles/activerecord_5_2.gemfile
|
22
|
-
- rvm: 2.3.8
|
23
|
-
gemfile: gemfiles/activerecord_5_2.gemfile
|
24
|
-
- rvm: 2.5.3
|
25
|
-
gemfile: gemfiles/activerecord_5_2.gemfile
|
26
|
-
- rvm: 2.6.1
|
27
|
-
gemfile: gemfiles/activerecord_5_2.gemfile
|
28
|
-
- rvm: 2.6.1
|
29
|
-
gemfile: gemfiles/activerecord_master.gemfile
|
30
|
-
|
31
|
-
# https://github.com/travis-ci/travis-ci/issues/8969#issuecomment-380028168
|
32
|
-
before_install:
|
33
|
-
- gem update --system
|
34
|
-
- gem install bundler -v "~> 1.17.2"
|