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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f406689608dbc8a4a3c904dffd3f090ad6e284f037a4316728e7cadd5ccdb9ed
4
- data.tar.gz: 9d70381c05b482fee5f7f1f705bd263c9e43bdfac2d7558dff2ac82e98c9201e
3
+ metadata.gz: 749225d1d1a6000f08b986f6c2704767339fc576648811f4421fb7344b864761
4
+ data.tar.gz: af075362eeaa19f6e893d5fcefadd751f8cf7817bd310ddea0a024e49482100e
5
5
  SHA512:
6
- metadata.gz: 28bc55a3725c4baaca95574bf0b3631a411466dbcdee4e7c148c4d00c30f0ecd8a476863c65497a2c81df85978aa0705838376cc02f0a40fd4ff9f79d062db1c
7
- data.tar.gz: 3013886554bb909368399f258a0047f55b87a4e9420eb2e923569b4c8cddfca438fb6ca2c470ae109f93fe668318efdf4cd59e785d858754f7df9df032f1b211
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{^(test|spec|features)/})
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) }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AfterCommitEverywhere
4
- VERSION = "1.3.0"
4
+ VERSION = "1.4.0"
5
5
  end
@@ -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
- connection.add_transaction_record(wrap)
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.3.0
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: 2022-10-28 00:00:00.000000000 Z
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.1.6
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
@@ -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
@@ -1,12 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
- /gemfiles/*.lock
10
-
11
- # rspec failure tracking
12
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
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
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- # Specify your gem's dependencies in after_commit_everywhere.gemspec
8
- gemspec
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
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task default: :spec
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
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,2 +0,0 @@
1
- ---
2
- BUNDLE_RETRY: "1"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 4.2.0"
6
- gem "sqlite3", "~> 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.0.0"
6
- gem "sqlite3", "~> 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.1.0"
6
- gem "sqlite3", "~> 1.3", ">= 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.2.0"
6
- gem "sqlite3", "~> 1.3", ">= 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 6.0.0"
6
- gem "sqlite3", "~> 1.4"
7
-
8
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 6.1.0"
6
- gem "sqlite3", "~> 1.4"
7
- gem "rspec-rails", "~> 4.0"
8
-
9
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 7.0.0"
6
- gem "sqlite3", "~> 1.4"
7
- gem "rspec-rails", "~> 5.0"
8
-
9
- gemspec path: "../"
@@ -1,13 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
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", "~> 5.0"
12
-
13
- gemspec path: "../"
data/tmp/.keep DELETED
File without changes