after_commit_everywhere 1.3.0 → 1.4.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 +33 -0
- data/README.md +4 -2
- data/after_commit_everywhere.gemspec +1 -1
- data/lib/after_commit_everywhere/version.rb +1 -1
- data/lib/after_commit_everywhere.rb +17 -3
- metadata +3 -24
- data/.github/workflows/release.yml +0 -82
- data/.github/workflows/test.yml +0 -57
- data/.gitignore +0 -12
- data/.rspec +0 -3
- data/.rubocop.yml +0 -61
- data/Appraisals +0 -48
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -230
- data/Rakefile +0 -8
- data/bin/console +0 -11
- data/bin/setup +0 -8
- data/gemfiles/.bundle/config +0 -2
- data/gemfiles/activerecord_4_2.gemfile +0 -8
- data/gemfiles/activerecord_5_0.gemfile +0 -8
- data/gemfiles/activerecord_5_1.gemfile +0 -8
- data/gemfiles/activerecord_5_2.gemfile +0 -8
- data/gemfiles/activerecord_6_0.gemfile +0 -8
- data/gemfiles/activerecord_6_1.gemfile +0 -9
- data/gemfiles/activerecord_7_0.gemfile +0 -9
- data/gemfiles/activerecord_master.gemfile +0 -13
- data/tmp/.keep +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 749225d1d1a6000f08b986f6c2704767339fc576648811f4421fb7344b864761
|
|
4
|
+
data.tar.gz: af075362eeaa19f6e893d5fcefadd751f8cf7817bd310ddea0a024e49482100e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c816318efea508b86763b07f69b6164eab40edb52f5c95953e05c6dd7df1b2432b1a933e0bfa68605b7b67c3e99dbee6a3e7c4c30389214c7ed9bab5d6afa704
|
|
7
|
+
data.tar.gz: 4b20e061dfbd60ca6caef4da43ba1866c92a4c3be3418016da1f1f768f01321c99d19f024020d48139dd4320b0c0d21854554e15ee67bf0e9a6a1f3b072e21ad
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,37 @@ 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
|
+
## 1.4.0 (2024-02-07)
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Ability to prepend callbacks to the head of callback queue using `prepend: true` option.
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
AfterCommitEverywhere.after_commit { puts "I'm second!" }
|
|
15
|
+
AfterCommitEverywhere.after_commit(prepend: true) { puts "I'm first!" }
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
See [Pull request #30](https://github.com/Envek/after_commit_everywhere/pull/30) by [@quentindemetz][] and [@A1090][].
|
|
19
|
+
|
|
20
|
+
## 1.3.1 (2023-06-21)
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Don't include development-related files into packaged gem to avoid confusing users or software tools. [@Envek][].
|
|
25
|
+
|
|
26
|
+
See discussion at [#26](https://github.com/Envek/after_commit_everywhere/issues/26).
|
|
27
|
+
|
|
28
|
+
Files packaged after this change:
|
|
29
|
+
|
|
30
|
+
CHANGELOG.md
|
|
31
|
+
LICENSE.txt
|
|
32
|
+
README.md
|
|
33
|
+
after_commit_everywhere.gemspec
|
|
34
|
+
lib/after_commit_everywhere.rb
|
|
35
|
+
lib/after_commit_everywhere/version.rb
|
|
36
|
+
lib/after_commit_everywhere/wrap.rb
|
|
37
|
+
|
|
7
38
|
## 1.3.0 (2022-10-28)
|
|
8
39
|
|
|
9
40
|
### Added
|
|
@@ -114,3 +145,5 @@ See [#11](https://github.com/Envek/after_commit_everywhere/issues/11) for discus
|
|
|
114
145
|
[@stokarenko]: https://github.com/stokarenko "Sergey Tokarenko"
|
|
115
146
|
[@lolripgg]: https://github.com/lolripgg "James Brewer"
|
|
116
147
|
[@jpcamara]: https://github.com/jpcamara "JP Camara"
|
|
148
|
+
[@quentindemetz]: https://github.com/quentindemetz "Quentin de Metz"
|
|
149
|
+
[@A1090]: https://github.com/A1090 "Tabac Andreina"
|
data/README.md
CHANGED
|
@@ -111,7 +111,7 @@ Will be executed right after transaction in which it have been declared was roll
|
|
|
111
111
|
|
|
112
112
|
If called outside transaction will raise an exception!
|
|
113
113
|
|
|
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). See [`in_transaction`](#in_transaction) for a workaround to this limitation.
|
|
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). See [`in_transaction`](#in_transaction) for a workaround to this limitation.
|
|
115
115
|
|
|
116
116
|
### Available helper methods
|
|
117
117
|
|
|
@@ -139,7 +139,7 @@ class ServiceObjectBtw
|
|
|
139
139
|
end
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
Our service object can run its database operations safely when run in isolation.
|
|
142
|
+
Our service object can run its database operations safely when run in isolation.
|
|
143
143
|
|
|
144
144
|
```rb
|
|
145
145
|
ServiceObjectBtw.new.call # This opens a new #transaction block
|
|
@@ -195,6 +195,8 @@ end
|
|
|
195
195
|
- `:warn_and_execute` to print warning and execute immediately
|
|
196
196
|
- `:raise` to raise an exception instead of executing
|
|
197
197
|
|
|
198
|
+
- `prepend` puts the callback at the head of the callback chain, instead of at the end.
|
|
199
|
+
|
|
198
200
|
### FAQ
|
|
199
201
|
|
|
200
202
|
#### Does it works with transactional_test or DatabaseCleaner
|
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
spec.license = "MIT"
|
|
23
23
|
|
|
24
24
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
|
25
|
-
f.match(%r{^(
|
|
25
|
+
f.match(%r{^(\.|gemfiles/|bin/|spec/|tmp/|Appraisals|Gemfile|Rakefile)})
|
|
26
26
|
end
|
|
27
27
|
spec.bindir = "exe"
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
@@ -39,11 +39,13 @@ module AfterCommitEverywhere
|
|
|
39
39
|
# @param callback [#call] Callback to be executed
|
|
40
40
|
# @return void
|
|
41
41
|
def after_commit(
|
|
42
|
+
prepend: false,
|
|
42
43
|
connection: nil,
|
|
43
44
|
without_tx: EXECUTE,
|
|
44
45
|
&callback
|
|
45
46
|
)
|
|
46
47
|
register_callback(
|
|
48
|
+
prepend: prepend,
|
|
47
49
|
connection: connection,
|
|
48
50
|
name: __method__,
|
|
49
51
|
callback: callback,
|
|
@@ -64,6 +66,7 @@ module AfterCommitEverywhere
|
|
|
64
66
|
# @param callback [#call] Callback to be executed
|
|
65
67
|
# @return void
|
|
66
68
|
def before_commit(
|
|
69
|
+
prepend: false,
|
|
67
70
|
connection: nil,
|
|
68
71
|
without_tx: WARN_AND_EXECUTE,
|
|
69
72
|
&callback
|
|
@@ -73,6 +76,7 @@ module AfterCommitEverywhere
|
|
|
73
76
|
end
|
|
74
77
|
|
|
75
78
|
register_callback(
|
|
79
|
+
prepend: prepend,
|
|
76
80
|
connection: connection,
|
|
77
81
|
name: __method__,
|
|
78
82
|
callback: callback,
|
|
@@ -90,8 +94,9 @@ module AfterCommitEverywhere
|
|
|
90
94
|
# @param callback [#call] Callback to be executed
|
|
91
95
|
# @return void
|
|
92
96
|
# @raise [NotInTransaction] if called outside transaction.
|
|
93
|
-
def after_rollback(connection: nil, &callback)
|
|
97
|
+
def after_rollback(prepend: false, connection: nil, &callback)
|
|
94
98
|
register_callback(
|
|
99
|
+
prepend: prepend,
|
|
95
100
|
connection: connection,
|
|
96
101
|
name: __method__,
|
|
97
102
|
callback: callback,
|
|
@@ -100,7 +105,7 @@ module AfterCommitEverywhere
|
|
|
100
105
|
end
|
|
101
106
|
|
|
102
107
|
# @api private
|
|
103
|
-
def register_callback(connection: nil, name:, without_tx:, callback:)
|
|
108
|
+
def register_callback(prepend:, connection: nil, name:, without_tx:, callback:)
|
|
104
109
|
raise ArgumentError, "Provide callback to #{name}" unless callback
|
|
105
110
|
|
|
106
111
|
unless in_transaction?(connection)
|
|
@@ -119,7 +124,16 @@ module AfterCommitEverywhere
|
|
|
119
124
|
|
|
120
125
|
connection ||= default_connection
|
|
121
126
|
wrap = Wrap.new(connection: connection, "#{name}": callback)
|
|
122
|
-
|
|
127
|
+
|
|
128
|
+
if prepend
|
|
129
|
+
# Hacking ActiveRecord's transaction internals to prepend our callback
|
|
130
|
+
# See https://github.com/rails/rails/blob/f0d433bb46ac233ec7fd7fae48f458978908d905/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb#L148-L156
|
|
131
|
+
records = connection.current_transaction.instance_variable_get(:@records)
|
|
132
|
+
records = connection.current_transaction.instance_variable_set(:@records, []) if records.nil?
|
|
133
|
+
records.unshift(wrap)
|
|
134
|
+
else
|
|
135
|
+
connection.add_transaction_record(wrap)
|
|
136
|
+
end
|
|
123
137
|
end
|
|
124
138
|
|
|
125
139
|
# Helper method to determine whether we're currently in transaction or not
|
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.4.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: 2024-02-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -220,34 +220,13 @@ executables: []
|
|
|
220
220
|
extensions: []
|
|
221
221
|
extra_rdoc_files: []
|
|
222
222
|
files:
|
|
223
|
-
- ".github/workflows/release.yml"
|
|
224
|
-
- ".github/workflows/test.yml"
|
|
225
|
-
- ".gitignore"
|
|
226
|
-
- ".rspec"
|
|
227
|
-
- ".rubocop.yml"
|
|
228
|
-
- Appraisals
|
|
229
223
|
- CHANGELOG.md
|
|
230
|
-
- Gemfile
|
|
231
|
-
- Gemfile.lock
|
|
232
224
|
- LICENSE.txt
|
|
233
225
|
- README.md
|
|
234
|
-
- Rakefile
|
|
235
226
|
- after_commit_everywhere.gemspec
|
|
236
|
-
- bin/console
|
|
237
|
-
- bin/setup
|
|
238
|
-
- gemfiles/.bundle/config
|
|
239
|
-
- gemfiles/activerecord_4_2.gemfile
|
|
240
|
-
- gemfiles/activerecord_5_0.gemfile
|
|
241
|
-
- gemfiles/activerecord_5_1.gemfile
|
|
242
|
-
- gemfiles/activerecord_5_2.gemfile
|
|
243
|
-
- gemfiles/activerecord_6_0.gemfile
|
|
244
|
-
- gemfiles/activerecord_6_1.gemfile
|
|
245
|
-
- gemfiles/activerecord_7_0.gemfile
|
|
246
|
-
- gemfiles/activerecord_master.gemfile
|
|
247
227
|
- lib/after_commit_everywhere.rb
|
|
248
228
|
- lib/after_commit_everywhere/version.rb
|
|
249
229
|
- lib/after_commit_everywhere/wrap.rb
|
|
250
|
-
- tmp/.keep
|
|
251
230
|
homepage: https://github.com/Envek/after_commit_everywhere
|
|
252
231
|
licenses:
|
|
253
232
|
- MIT
|
|
@@ -267,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
267
246
|
- !ruby/object:Gem::Version
|
|
268
247
|
version: '0'
|
|
269
248
|
requirements: []
|
|
270
|
-
rubygems_version: 3.
|
|
249
|
+
rubygems_version: 3.5.3
|
|
271
250
|
signing_key:
|
|
272
251
|
specification_version: 4
|
|
273
252
|
summary: Executes code after database commit wherever you want in your application
|
|
@@ -1,82 +0,0 @@
|
|
|
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
|
data/.github/workflows/test.yml
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
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.6'
|
|
22
|
-
activerecord: '5.2'
|
|
23
|
-
gemfile: 'activerecord_5_2.gemfile'
|
|
24
|
-
- ruby: '2.7'
|
|
25
|
-
activerecord: '6.0'
|
|
26
|
-
gemfile: 'activerecord_6_0.gemfile'
|
|
27
|
-
- ruby: '2.7'
|
|
28
|
-
activerecord: '6.1'
|
|
29
|
-
gemfile: 'activerecord_6_1.gemfile'
|
|
30
|
-
- ruby: '3.0'
|
|
31
|
-
activerecord: '7.0'
|
|
32
|
-
gemfile: 'activerecord_7_0.gemfile'
|
|
33
|
-
- ruby: '3.1'
|
|
34
|
-
activerecord: 'HEAD'
|
|
35
|
-
gemfile: 'activerecord_master.gemfile'
|
|
36
|
-
container:
|
|
37
|
-
image: ruby:${{ matrix.ruby }}
|
|
38
|
-
env:
|
|
39
|
-
CI: true
|
|
40
|
-
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
|
|
41
|
-
steps:
|
|
42
|
-
- uses: actions/checkout@v2
|
|
43
|
-
- uses: actions/cache@v2
|
|
44
|
-
with:
|
|
45
|
-
path: vendor/bundle
|
|
46
|
-
key: bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
|
47
|
-
restore-keys: |
|
|
48
|
-
bundle-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}-${{ hashFiles('**/Gemfile') }}
|
|
49
|
-
bundle-${{ matrix.ruby }}-
|
|
50
|
-
- name: Upgrade Bundler to 2.x (mostly for Rubies older than 2.7)
|
|
51
|
-
run: gem install bundler -v '~> 2.0' -v '!= 2.2.10'
|
|
52
|
-
- name: Bundle install
|
|
53
|
-
run: |
|
|
54
|
-
bundle config path vendor/bundle
|
|
55
|
-
bundle update
|
|
56
|
-
- name: Run RSpec
|
|
57
|
-
run: bundle exec rspec
|
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
AllCops:
|
|
2
|
-
TargetRubyVersion: 2.3
|
|
3
|
-
UseCache: false
|
|
4
|
-
DisplayCopNames: true
|
|
5
|
-
Exclude:
|
|
6
|
-
- "gemfiles/*"
|
|
7
|
-
|
|
8
|
-
Metrics/LineLength:
|
|
9
|
-
Max: 100
|
|
10
|
-
# To make it possible to copy or click on URIs in the code, we allow lines
|
|
11
|
-
# contaning a URI to be longer than Max.
|
|
12
|
-
AllowURI: true
|
|
13
|
-
URISchemes:
|
|
14
|
-
- http
|
|
15
|
-
- https
|
|
16
|
-
Enabled: true
|
|
17
|
-
|
|
18
|
-
Metrics/AbcSize:
|
|
19
|
-
Max: 30
|
|
20
|
-
|
|
21
|
-
Metrics/MethodLength:
|
|
22
|
-
Max: 25
|
|
23
|
-
|
|
24
|
-
Metrics/BlockLength:
|
|
25
|
-
Exclude:
|
|
26
|
-
- "spec/**/*.*"
|
|
27
|
-
- "*.gemspec"
|
|
28
|
-
|
|
29
|
-
Lint/SuppressedException:
|
|
30
|
-
Exclude:
|
|
31
|
-
- "spec/**/*.*"
|
|
32
|
-
|
|
33
|
-
Style/TrailingCommaInArguments:
|
|
34
|
-
Description: 'Checks for trailing comma in argument lists.'
|
|
35
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma'
|
|
36
|
-
Enabled: true
|
|
37
|
-
EnforcedStyleForMultiline: consistent_comma
|
|
38
|
-
|
|
39
|
-
Style/TrailingCommaInArrayLiteral:
|
|
40
|
-
Description: 'Checks for trailing comma in array literals.'
|
|
41
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
|
42
|
-
Enabled: true
|
|
43
|
-
EnforcedStyleForMultiline: consistent_comma
|
|
44
|
-
|
|
45
|
-
Style/TrailingCommaInHashLiteral:
|
|
46
|
-
Description: 'Checks for trailing comma in hash literals.'
|
|
47
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
|
|
48
|
-
Enabled: true
|
|
49
|
-
EnforcedStyleForMultiline: consistent_comma
|
|
50
|
-
|
|
51
|
-
Style/StringLiterals:
|
|
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
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
appraise "activerecord-4-2" do
|
|
4
|
-
gem "activerecord", "~> 4.2.0"
|
|
5
|
-
gem "sqlite3", "~> 1.3.6"
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
appraise "activerecord-5-0" do
|
|
9
|
-
gem "activerecord", "~> 5.0.0"
|
|
10
|
-
gem "sqlite3", "~> 1.3.6"
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
appraise "activerecord-5-1" do
|
|
14
|
-
gem "activerecord", "~> 5.1.0"
|
|
15
|
-
gem "sqlite3", "~> 1.3", ">= 1.3.6"
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
appraise "activerecord-5-2" do
|
|
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"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
appraise "activerecord-7-0" do
|
|
35
|
-
gem "activerecord", "~> 7.0.0"
|
|
36
|
-
gem "sqlite3", "~> 1.4"
|
|
37
|
-
gem "rspec-rails", "~> 5.0"
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
appraise "activerecord-master" do
|
|
41
|
-
git "https://github.com/rails/rails.git" do
|
|
42
|
-
gem "rails"
|
|
43
|
-
gem "activerecord"
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
gem "sqlite3", "~> 1.4"
|
|
47
|
-
gem "rspec-rails", "~> 5.0"
|
|
48
|
-
end
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
after_commit_everywhere (1.3.0)
|
|
5
|
-
activerecord (>= 4.2)
|
|
6
|
-
activesupport
|
|
7
|
-
|
|
8
|
-
GEM
|
|
9
|
-
remote: https://rubygems.org/
|
|
10
|
-
specs:
|
|
11
|
-
actioncable (7.0.4)
|
|
12
|
-
actionpack (= 7.0.4)
|
|
13
|
-
activesupport (= 7.0.4)
|
|
14
|
-
nio4r (~> 2.0)
|
|
15
|
-
websocket-driver (>= 0.6.1)
|
|
16
|
-
actionmailbox (7.0.4)
|
|
17
|
-
actionpack (= 7.0.4)
|
|
18
|
-
activejob (= 7.0.4)
|
|
19
|
-
activerecord (= 7.0.4)
|
|
20
|
-
activestorage (= 7.0.4)
|
|
21
|
-
activesupport (= 7.0.4)
|
|
22
|
-
mail (>= 2.7.1)
|
|
23
|
-
net-imap
|
|
24
|
-
net-pop
|
|
25
|
-
net-smtp
|
|
26
|
-
actionmailer (7.0.4)
|
|
27
|
-
actionpack (= 7.0.4)
|
|
28
|
-
actionview (= 7.0.4)
|
|
29
|
-
activejob (= 7.0.4)
|
|
30
|
-
activesupport (= 7.0.4)
|
|
31
|
-
mail (~> 2.5, >= 2.5.4)
|
|
32
|
-
net-imap
|
|
33
|
-
net-pop
|
|
34
|
-
net-smtp
|
|
35
|
-
rails-dom-testing (~> 2.0)
|
|
36
|
-
actionpack (7.0.4)
|
|
37
|
-
actionview (= 7.0.4)
|
|
38
|
-
activesupport (= 7.0.4)
|
|
39
|
-
rack (~> 2.0, >= 2.2.0)
|
|
40
|
-
rack-test (>= 0.6.3)
|
|
41
|
-
rails-dom-testing (~> 2.0)
|
|
42
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
43
|
-
actiontext (7.0.4)
|
|
44
|
-
actionpack (= 7.0.4)
|
|
45
|
-
activerecord (= 7.0.4)
|
|
46
|
-
activestorage (= 7.0.4)
|
|
47
|
-
activesupport (= 7.0.4)
|
|
48
|
-
globalid (>= 0.6.0)
|
|
49
|
-
nokogiri (>= 1.8.5)
|
|
50
|
-
actionview (7.0.4)
|
|
51
|
-
activesupport (= 7.0.4)
|
|
52
|
-
builder (~> 3.1)
|
|
53
|
-
erubi (~> 1.4)
|
|
54
|
-
rails-dom-testing (~> 2.0)
|
|
55
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
56
|
-
activejob (7.0.4)
|
|
57
|
-
activesupport (= 7.0.4)
|
|
58
|
-
globalid (>= 0.3.6)
|
|
59
|
-
activemodel (7.0.4)
|
|
60
|
-
activesupport (= 7.0.4)
|
|
61
|
-
activerecord (7.0.4)
|
|
62
|
-
activemodel (= 7.0.4)
|
|
63
|
-
activesupport (= 7.0.4)
|
|
64
|
-
activestorage (7.0.4)
|
|
65
|
-
actionpack (= 7.0.4)
|
|
66
|
-
activejob (= 7.0.4)
|
|
67
|
-
activerecord (= 7.0.4)
|
|
68
|
-
activesupport (= 7.0.4)
|
|
69
|
-
marcel (~> 1.0)
|
|
70
|
-
mini_mime (>= 1.1.0)
|
|
71
|
-
activesupport (7.0.4)
|
|
72
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
73
|
-
i18n (>= 1.6, < 2)
|
|
74
|
-
minitest (>= 5.1)
|
|
75
|
-
tzinfo (~> 2.0)
|
|
76
|
-
anyway_config (2.3.0)
|
|
77
|
-
ruby-next-core (>= 0.14.0)
|
|
78
|
-
appraisal (2.4.1)
|
|
79
|
-
bundler
|
|
80
|
-
rake
|
|
81
|
-
thor (>= 0.14.0)
|
|
82
|
-
ast (2.4.2)
|
|
83
|
-
builder (3.2.4)
|
|
84
|
-
byebug (11.1.3)
|
|
85
|
-
coderay (1.1.3)
|
|
86
|
-
concurrent-ruby (1.1.10)
|
|
87
|
-
crass (1.0.6)
|
|
88
|
-
diff-lcs (1.5.0)
|
|
89
|
-
dry-initializer (3.1.1)
|
|
90
|
-
erubi (1.11.0)
|
|
91
|
-
globalid (1.0.0)
|
|
92
|
-
activesupport (>= 5.0)
|
|
93
|
-
i18n (1.12.0)
|
|
94
|
-
concurrent-ruby (~> 1.0)
|
|
95
|
-
isolator (0.8.0)
|
|
96
|
-
sniffer (>= 0.3.1)
|
|
97
|
-
jaro_winkler (1.5.4)
|
|
98
|
-
loofah (2.19.0)
|
|
99
|
-
crass (~> 1.0.2)
|
|
100
|
-
nokogiri (>= 1.5.9)
|
|
101
|
-
mail (2.7.1)
|
|
102
|
-
mini_mime (>= 0.1.1)
|
|
103
|
-
marcel (1.0.2)
|
|
104
|
-
method_source (1.0.0)
|
|
105
|
-
mini_mime (1.1.2)
|
|
106
|
-
mini_portile2 (2.8.0)
|
|
107
|
-
minitest (5.16.3)
|
|
108
|
-
net-imap (0.3.1)
|
|
109
|
-
net-protocol
|
|
110
|
-
net-pop (0.1.2)
|
|
111
|
-
net-protocol
|
|
112
|
-
net-protocol (0.1.3)
|
|
113
|
-
timeout
|
|
114
|
-
net-smtp (0.3.2)
|
|
115
|
-
net-protocol
|
|
116
|
-
nio4r (2.5.8)
|
|
117
|
-
nokogiri (1.13.9)
|
|
118
|
-
mini_portile2 (~> 2.8.0)
|
|
119
|
-
racc (~> 1.4)
|
|
120
|
-
parallel (1.22.1)
|
|
121
|
-
parser (3.1.2.1)
|
|
122
|
-
ast (~> 2.4.1)
|
|
123
|
-
pry (0.14.1)
|
|
124
|
-
coderay (~> 1.1)
|
|
125
|
-
method_source (~> 1.0)
|
|
126
|
-
pry-byebug (3.10.1)
|
|
127
|
-
byebug (~> 11.0)
|
|
128
|
-
pry (>= 0.13, < 0.15)
|
|
129
|
-
racc (1.6.0)
|
|
130
|
-
rack (2.2.3.1)
|
|
131
|
-
rack-test (2.0.2)
|
|
132
|
-
rack (>= 1.3)
|
|
133
|
-
rails (7.0.4)
|
|
134
|
-
actioncable (= 7.0.4)
|
|
135
|
-
actionmailbox (= 7.0.4)
|
|
136
|
-
actionmailer (= 7.0.4)
|
|
137
|
-
actionpack (= 7.0.4)
|
|
138
|
-
actiontext (= 7.0.4)
|
|
139
|
-
actionview (= 7.0.4)
|
|
140
|
-
activejob (= 7.0.4)
|
|
141
|
-
activemodel (= 7.0.4)
|
|
142
|
-
activerecord (= 7.0.4)
|
|
143
|
-
activestorage (= 7.0.4)
|
|
144
|
-
activesupport (= 7.0.4)
|
|
145
|
-
bundler (>= 1.15.0)
|
|
146
|
-
railties (= 7.0.4)
|
|
147
|
-
rails-dom-testing (2.0.3)
|
|
148
|
-
activesupport (>= 4.2.0)
|
|
149
|
-
nokogiri (>= 1.6)
|
|
150
|
-
rails-html-sanitizer (1.4.3)
|
|
151
|
-
loofah (~> 2.3)
|
|
152
|
-
railties (7.0.4)
|
|
153
|
-
actionpack (= 7.0.4)
|
|
154
|
-
activesupport (= 7.0.4)
|
|
155
|
-
method_source
|
|
156
|
-
rake (>= 12.2)
|
|
157
|
-
thor (~> 1.0)
|
|
158
|
-
zeitwerk (~> 2.5)
|
|
159
|
-
rainbow (3.1.1)
|
|
160
|
-
rake (13.0.6)
|
|
161
|
-
rexml (3.2.5)
|
|
162
|
-
rspec (3.12.0)
|
|
163
|
-
rspec-core (~> 3.12.0)
|
|
164
|
-
rspec-expectations (~> 3.12.0)
|
|
165
|
-
rspec-mocks (~> 3.12.0)
|
|
166
|
-
rspec-core (3.12.0)
|
|
167
|
-
rspec-support (~> 3.12.0)
|
|
168
|
-
rspec-expectations (3.12.0)
|
|
169
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
170
|
-
rspec-support (~> 3.12.0)
|
|
171
|
-
rspec-mocks (3.12.0)
|
|
172
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
173
|
-
rspec-support (~> 3.12.0)
|
|
174
|
-
rspec-rails (6.0.1)
|
|
175
|
-
actionpack (>= 6.1)
|
|
176
|
-
activesupport (>= 6.1)
|
|
177
|
-
railties (>= 6.1)
|
|
178
|
-
rspec-core (~> 3.11)
|
|
179
|
-
rspec-expectations (~> 3.11)
|
|
180
|
-
rspec-mocks (~> 3.11)
|
|
181
|
-
rspec-support (~> 3.11)
|
|
182
|
-
rspec-support (3.12.0)
|
|
183
|
-
rubocop (0.81.0)
|
|
184
|
-
jaro_winkler (~> 1.5.1)
|
|
185
|
-
parallel (~> 1.10)
|
|
186
|
-
parser (>= 2.7.0.1)
|
|
187
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
188
|
-
rexml
|
|
189
|
-
ruby-progressbar (~> 1.7)
|
|
190
|
-
unicode-display_width (>= 1.4.0, < 2.0)
|
|
191
|
-
ruby-next-core (0.15.3)
|
|
192
|
-
ruby-progressbar (1.11.0)
|
|
193
|
-
sniffer (0.5.0)
|
|
194
|
-
anyway_config (>= 1.0)
|
|
195
|
-
dry-initializer (~> 3)
|
|
196
|
-
sqlite3 (1.5.3)
|
|
197
|
-
mini_portile2 (~> 2.8.0)
|
|
198
|
-
thor (1.2.1)
|
|
199
|
-
timeout (0.3.0)
|
|
200
|
-
tzinfo (2.0.5)
|
|
201
|
-
concurrent-ruby (~> 1.0)
|
|
202
|
-
unicode-display_width (1.8.0)
|
|
203
|
-
webrick (1.7.0)
|
|
204
|
-
websocket-driver (0.7.5)
|
|
205
|
-
websocket-extensions (>= 0.1.0)
|
|
206
|
-
websocket-extensions (0.1.5)
|
|
207
|
-
yard (0.9.28)
|
|
208
|
-
webrick (~> 1.7.0)
|
|
209
|
-
zeitwerk (2.6.1)
|
|
210
|
-
|
|
211
|
-
PLATFORMS
|
|
212
|
-
ruby
|
|
213
|
-
|
|
214
|
-
DEPENDENCIES
|
|
215
|
-
after_commit_everywhere!
|
|
216
|
-
appraisal
|
|
217
|
-
bundler (~> 2.0)
|
|
218
|
-
isolator (~> 0.7)
|
|
219
|
-
pry
|
|
220
|
-
pry-byebug
|
|
221
|
-
rails
|
|
222
|
-
rake (~> 13.0)
|
|
223
|
-
rspec (~> 3.0)
|
|
224
|
-
rspec-rails
|
|
225
|
-
rubocop (~> 0.81.0)
|
|
226
|
-
sqlite3 (~> 1.3, >= 1.3.6)
|
|
227
|
-
yard
|
|
228
|
-
|
|
229
|
-
BUNDLED WITH
|
|
230
|
-
2.3.16
|
data/Rakefile
DELETED
data/bin/console
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "bundler/setup"
|
|
5
|
-
require "after_commit_everywhere"
|
|
6
|
-
|
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
-
|
|
10
|
-
require "pry"
|
|
11
|
-
Pry.start
|
data/bin/setup
DELETED
data/gemfiles/.bundle/config
DELETED
data/tmp/.keep
DELETED
|
File without changes
|