archival_record 2.0.2 → 3.0.1
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/.gitignore +3 -0
- data/.gitlab-ci.yml +20 -0
- data/.rubocop.yml +7 -5
- data/.rubocop_todo.yml +1 -8
- data/Appraisals +8 -11
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +77 -43
- data/LICENSE +5 -2
- data/README.md +36 -12
- data/archival_record.gemspec +36 -31
- data/gemfiles/{rails_5.1.gemfile → rails_6.1.gemfile} +1 -2
- data/gemfiles/{rails_5.2.gemfile → rails_7.0.gemfile} +1 -2
- data/gemfiles/{rails_5.0.gemfile → rails_7.1.gemfile} +1 -2
- data/init.rb +2 -2
- data/lib/archival_record/version.rb +1 -1
- data/lib/archival_record.rb +5 -5
- data/lib/archival_record_core/archival_record.rb +38 -21
- data/lib/archival_record_core/archival_record_active_record_methods.rb +3 -2
- data/lib/archival_record_core/association_operation/base.rb +4 -2
- data/test/application_record_test.rb +1 -1
- data/test/archive_dependents_option_test.rb +54 -0
- data/test/basic_test.rb +5 -5
- data/test/bogus_relation_test.rb +22 -0
- data/test/deep_nesting_test.rb +1 -1
- data/test/fixtures/bogus_relation.rb +6 -0
- data/test/fixtures/explicit_act_on_dependents_archival.rb +9 -0
- data/test/fixtures/ignorable_dependent.rb +10 -0
- data/test/fixtures/ignore_dependents_archival.rb +9 -0
- data/test/fixtures/nonignorable_dependent.rb +10 -0
- data/test/polymorphic_test.rb +2 -2
- data/test/relations_test.rb +1 -1
- data/test/schema.rb +27 -0
- data/test/scope_test.rb +4 -10
- data/test/test_helper.rb +19 -25
- data/test/transaction_test.rb +2 -1
- metadata +55 -53
- data/.travis.yml +0 -23
- data/test/fixtures/callback_archival_4.rb +0 -19
- /data/test/fixtures/{callback_archival_5.rb → callback_archival.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de698cb4c6c28dbc975343cbb8c64040423a401fe1963486e4d43feacdaf70fd
|
4
|
+
data.tar.gz: 423dc258212a7b8ff4fb78a6acc29bc979846820c50263859e0d9d2a9e634c81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a24054ef6cd9fc3ed12233e10e11fa194e26f72499534925bdd4d4bad05b9245bb994763ba6b449b7100e48dda00ce30de641b51f9d6a797697fba2805335f84
|
7
|
+
data.tar.gz: 3dab3e39d40c31fcfe60129b8eb9a3fb420be3ece65c18a7bfa3da367026b9c44ecee1e4b721ea71bd28cc85920308d427d391ddab10e2a0a82e1e2203e9ff30
|
data/.gitignore
CHANGED
data/.gitlab-ci.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
image: "ruby:3.2"
|
2
|
+
|
3
|
+
before_script:
|
4
|
+
- apt-get update -qq && apt-get install -y -qq sqlite3 libsqlite3-dev nodejs
|
5
|
+
- ruby -v
|
6
|
+
- which ruby
|
7
|
+
- gem install bundler --no-document
|
8
|
+
- bundle install --jobs $(nproc) "${FLAGS[@]}"
|
9
|
+
- bundle install --gemfile=gemfiles/rails_6.0.gemfile
|
10
|
+
- bundle install --gemfile=gemfiles/rails_6.1.gemfile
|
11
|
+
- bundle install --gemfile=gemfiles/rails_7.0.gemfile
|
12
|
+
- bundle install --gemfile=gemfiles/rails_7.1.gemfile
|
13
|
+
|
14
|
+
rake:
|
15
|
+
script:
|
16
|
+
- bundle exec rake
|
17
|
+
|
18
|
+
appraisal:
|
19
|
+
script:
|
20
|
+
- bundle exec appraisal rake
|
data/.rubocop.yml
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
|
+
require:
|
3
|
+
- rubocop-rails
|
4
|
+
- rubocop-rake
|
2
5
|
|
3
6
|
AllCops:
|
4
7
|
Exclude:
|
5
8
|
- vendor/**/*
|
6
9
|
- gemfiles/**/*
|
7
|
-
TargetRubyVersion:
|
10
|
+
TargetRubyVersion: 3.0
|
8
11
|
NewCops: enable
|
9
12
|
|
10
13
|
|
@@ -17,9 +20,6 @@ Layout/EmptyLinesAroundClassBody:
|
|
17
20
|
Layout/EmptyLinesAroundModuleBody:
|
18
21
|
EnforcedStyle: empty_lines_except_namespace
|
19
22
|
|
20
|
-
Layout/LineLength:
|
21
|
-
Max: 140
|
22
|
-
|
23
23
|
Layout/SpaceInsideHashLiteralBraces:
|
24
24
|
EnforcedStyle: space
|
25
25
|
|
@@ -52,6 +52,7 @@ Style/Alias:
|
|
52
52
|
Style/AsciiComments:
|
53
53
|
Enabled: false
|
54
54
|
|
55
|
+
# TODO: class documentation
|
55
56
|
Style/Documentation:
|
56
57
|
Enabled: false
|
57
58
|
|
@@ -66,9 +67,10 @@ Style/FrozenStringLiteralComment:
|
|
66
67
|
|
67
68
|
Style/HashSyntax:
|
68
69
|
EnforcedStyle: ruby19
|
70
|
+
EnforcedShorthandSyntax: always
|
69
71
|
|
70
72
|
Style/RaiseArgs:
|
71
|
-
EnforcedStyle:
|
73
|
+
EnforcedStyle: exploded
|
72
74
|
|
73
75
|
Style/StringLiterals:
|
74
76
|
EnforcedStyle: double_quotes
|
data/.rubocop_todo.yml
CHANGED
@@ -1,14 +1,7 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2024-06-11 01:38:42 UTC using RuboCop version 1.64.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
|
-
|
9
|
-
# Offense count: 7
|
10
|
-
# Cop supports --auto-correct.
|
11
|
-
Lint/SendWithMixinArgument:
|
12
|
-
Exclude:
|
13
|
-
- 'init.rb'
|
14
|
-
- 'lib/archival_record.rb'
|
data/Appraisals
CHANGED
@@ -1,18 +1,15 @@
|
|
1
|
-
appraise "rails-
|
2
|
-
gem "rails", "~>
|
3
|
-
gem "sqlite3", "~> 1.3.13"
|
1
|
+
appraise "rails-6.0" do
|
2
|
+
gem "rails", "~> 6.0.0"
|
4
3
|
end
|
5
4
|
|
6
|
-
appraise "rails-
|
7
|
-
gem "rails", "~>
|
8
|
-
gem "sqlite3", "~> 1.4.1"
|
5
|
+
appraise "rails-6.1" do
|
6
|
+
gem "rails", "~> 6.1.0"
|
9
7
|
end
|
10
8
|
|
11
|
-
appraise "rails-
|
12
|
-
gem "rails", "~>
|
13
|
-
gem "sqlite3", "~> 1.4.1"
|
9
|
+
appraise "rails-7.0" do
|
10
|
+
gem "rails", "~> 7.0.0"
|
14
11
|
end
|
15
12
|
|
16
|
-
appraise "rails-
|
17
|
-
gem "rails", "~>
|
13
|
+
appraise "rails-7.1" do
|
14
|
+
gem "rails", "~> 7.1.0"
|
18
15
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 3.0.1 - June 10, 2024
|
4
|
+
* a few more tidying items like fixing up some raw sql in a query to be arel
|
5
|
+
* changing a logging method to use error instead of debug so it surfaces more easily
|
6
|
+
|
7
|
+
## 3.0.0 - June 10, 2024
|
8
|
+
* **BREAKING CHANGE** Drop support for rails 5 - see `rails__4.x-and-5.x` branch for relevant code
|
9
|
+
* **BREAKING CHANGE** Drop support for Ruby 2.x
|
10
|
+
* **ADDED** new option for `archival_record` called `archive_dependents` which can control whether `dependent: :destroy` records are archived with their parent
|
11
|
+
* lots of cleanup of code, particularly the way `ApplicationRecord` gets patched
|
12
|
+
* remove travis-ci, use gitlab pipelines
|
13
|
+
|
14
|
+
## 2.0.2 - August 4, 2020
|
15
|
+
* fixing travis
|
16
|
+
* updating git hosting link
|
17
|
+
|
3
18
|
## 2.0.1 - August 3, 2020
|
4
19
|
* Add security policy
|
5
20
|
* Update depenedent gems: archival_record (:D oops) and rubocop, and dependencies
|
data/Gemfile.lock
CHANGED
@@ -1,60 +1,92 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
archival_record (
|
5
|
-
activerecord (>=
|
4
|
+
archival_record (3.0.1)
|
5
|
+
activerecord (>= 6.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (
|
11
|
-
activesupport (=
|
12
|
-
activerecord (
|
13
|
-
activemodel (=
|
14
|
-
activesupport (=
|
15
|
-
|
10
|
+
activemodel (7.1.3.4)
|
11
|
+
activesupport (= 7.1.3.4)
|
12
|
+
activerecord (7.1.3.4)
|
13
|
+
activemodel (= 7.1.3.4)
|
14
|
+
activesupport (= 7.1.3.4)
|
15
|
+
timeout (>= 0.4.0)
|
16
|
+
activesupport (7.1.3.4)
|
17
|
+
base64
|
18
|
+
bigdecimal
|
16
19
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
connection_pool (>= 2.2.5)
|
21
|
+
drb
|
22
|
+
i18n (>= 1.6, < 2)
|
23
|
+
minitest (>= 5.1)
|
24
|
+
mutex_m
|
25
|
+
tzinfo (~> 2.0)
|
26
|
+
appraisal (2.5.0)
|
22
27
|
bundler
|
23
28
|
rake
|
24
29
|
thor (>= 0.14.0)
|
25
|
-
ast (2.4.
|
26
|
-
|
27
|
-
|
28
|
-
|
30
|
+
ast (2.4.2)
|
31
|
+
base64 (0.2.0)
|
32
|
+
bigdecimal (3.1.8)
|
33
|
+
concurrent-ruby (1.3.3)
|
34
|
+
connection_pool (2.4.1)
|
35
|
+
database_cleaner (2.0.2)
|
36
|
+
database_cleaner-active_record (>= 2, < 3)
|
37
|
+
database_cleaner-active_record (2.1.0)
|
38
|
+
activerecord (>= 5.a)
|
39
|
+
database_cleaner-core (~> 2.0.0)
|
40
|
+
database_cleaner-core (2.0.1)
|
41
|
+
drb (2.2.1)
|
42
|
+
i18n (1.14.5)
|
29
43
|
concurrent-ruby (~> 1.0)
|
30
|
-
|
31
|
-
|
32
|
-
|
44
|
+
json (2.7.2)
|
45
|
+
language_server-protocol (3.17.0.3)
|
46
|
+
mini_portile2 (2.8.7)
|
47
|
+
minitest (5.23.1)
|
48
|
+
mutex_m (0.2.0)
|
49
|
+
parallel (1.25.1)
|
50
|
+
parser (3.3.2.0)
|
33
51
|
ast (~> 2.4.1)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
52
|
+
racc
|
53
|
+
racc (1.8.0)
|
54
|
+
rack (3.0.11)
|
55
|
+
rainbow (3.1.1)
|
56
|
+
rake (13.2.1)
|
57
|
+
regexp_parser (2.9.2)
|
58
|
+
rexml (3.2.9)
|
59
|
+
strscan
|
60
|
+
rr (3.1.0)
|
61
|
+
rubocop (1.64.1)
|
62
|
+
json (~> 2.3)
|
63
|
+
language_server-protocol (>= 3.17.0)
|
40
64
|
parallel (~> 1.10)
|
41
|
-
parser (>=
|
65
|
+
parser (>= 3.3.0.2)
|
42
66
|
rainbow (>= 2.2.2, < 4.0)
|
43
|
-
regexp_parser (>= 1.
|
44
|
-
rexml
|
45
|
-
rubocop-ast (>=
|
67
|
+
regexp_parser (>= 1.8, < 3.0)
|
68
|
+
rexml (>= 3.2.5, < 4.0)
|
69
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
46
70
|
ruby-progressbar (~> 1.7)
|
47
|
-
unicode-display_width (>=
|
48
|
-
rubocop-ast (
|
49
|
-
parser (>=
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
71
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
72
|
+
rubocop-ast (1.31.3)
|
73
|
+
parser (>= 3.3.1.0)
|
74
|
+
rubocop-rails (2.25.0)
|
75
|
+
activesupport (>= 4.2.0)
|
76
|
+
rack (>= 1.1)
|
77
|
+
rubocop (>= 1.33.0, < 2.0)
|
78
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
79
|
+
rubocop-rake (0.6.0)
|
80
|
+
rubocop (~> 1.0)
|
81
|
+
ruby-progressbar (1.13.0)
|
82
|
+
sqlite3 (1.7.3)
|
83
|
+
mini_portile2 (~> 2.8.0)
|
84
|
+
strscan (3.1.0)
|
85
|
+
thor (1.3.1)
|
86
|
+
timeout (0.4.1)
|
87
|
+
tzinfo (2.0.6)
|
88
|
+
concurrent-ruby (~> 1.0)
|
89
|
+
unicode-display_width (2.5.0)
|
58
90
|
|
59
91
|
PLATFORMS
|
60
92
|
ruby
|
@@ -66,7 +98,9 @@ DEPENDENCIES
|
|
66
98
|
rake
|
67
99
|
rr
|
68
100
|
rubocop
|
69
|
-
|
101
|
+
rubocop-rails
|
102
|
+
rubocop-rake
|
103
|
+
sqlite3 (< 2)
|
70
104
|
|
71
105
|
BUNDLED WITH
|
72
|
-
2.
|
106
|
+
2.5.11
|
data/LICENSE
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
Copyright for portions of project ArchivalRecord are held by Expected Behavior,
|
1
|
+
Copyright for portions of project ArchivalRecord are held by Expected Behavior,
|
2
|
+
2009-2020 as part of project ActsAsArchival.
|
3
|
+
|
4
|
+
All other copyright for project ArchivalRecord are held by Joel Meador, 2020.
|
2
5
|
|
3
6
|
-----
|
4
7
|
|
5
|
-
LICENSE for [ArchivalRecord](https://
|
8
|
+
LICENSE for [ArchivalRecord](https://gitlab.com/joelmeador/archival_record/)
|
6
9
|
|
7
10
|
Copyright (c) 2020 Joel Meador
|
8
11
|
|
data/README.md
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# ArchivalRecord
|
2
2
|
|
3
|
-
[](https://travis-ci.org/janxious/archival_record)
|
4
|
-
[](https://badge.fury.io/rb/archival_record)
|
5
|
-
|
6
3
|
Atomically archive object trees in your ActiveRecord models.
|
7
4
|
|
8
5
|
`acts_as_paranoid` and similar plugins/gems work on a record-by-record basis and made it difficult to restore records atomically (or archive them, for that matter).
|
@@ -11,6 +8,8 @@ Because the `#archive!` and `#unarchive!` methods are in transactions, and every
|
|
11
8
|
|
12
9
|
Additionally, other plugins generally change how `destroy`/`delete` work. ArchivalRecord does not, and thus one can destroy records like normal.
|
13
10
|
|
11
|
+
_This is a fork of [ActsAsArchival](https://github.com/expectedbehavior/acts_as_archival/)._
|
12
|
+
|
14
13
|
## Maintenance
|
15
14
|
|
16
15
|
You might read the commit logs and think "This must be abandonware! This hasn't been updated in 2y!" But! This is a mature project that solves a specific problem in ActiveRecord. It tends to only be updated when a new major version of ActiveRecord comes out and hence the infrequent updates.
|
@@ -21,23 +20,23 @@ Gemfile:
|
|
21
20
|
|
22
21
|
`gem "archival_record"`
|
23
22
|
|
24
|
-
Any models you want to be archival should have the columns `archive_number` (String) and `archived_at` (DateTime).
|
23
|
+
Any models you want to be archival should have the columns `archive_number` (`String`) and `archived_at` (`DateTime`).
|
25
24
|
|
26
25
|
i.e. `rails g migration AddArchivalRecordToPost archive_number archived_at:datetime`
|
27
26
|
|
28
27
|
Any dependent-destroy ArchivalRecord model associated to an ArchivalRecord model will be archived with its parent.
|
29
28
|
|
30
|
-
_If you're stuck on Rails
|
29
|
+
_If you're stuck on Rails 5x/4x/3x/2x, check out the older tags/branches, which are no longer in active development._
|
31
30
|
|
32
31
|
## Example
|
33
32
|
|
34
33
|
``` ruby
|
35
|
-
class Hole <
|
34
|
+
class Hole < ApplicationRecord
|
36
35
|
archival_record
|
37
36
|
has_many :rats, dependent: :destroy
|
38
37
|
end
|
39
38
|
|
40
|
-
class Rat <
|
39
|
+
class Rat < ApplicationRecord
|
41
40
|
archival_record
|
42
41
|
end
|
43
42
|
```
|
@@ -112,12 +111,13 @@ Hole.archival? # => true
|
|
112
111
|
|
113
112
|
### Options
|
114
113
|
|
114
|
+
#### `readonly_when_archived`
|
115
115
|
When defining an ArchivalRecord model, it is is possible to make it unmodifiable
|
116
116
|
when it is archived by passing `readonly_when_archived: true` to the
|
117
|
-
`archival_record` call in your model.
|
117
|
+
`archival_record` call in your model. The default value of this option is `false`.
|
118
118
|
|
119
119
|
``` ruby
|
120
|
-
class CantTouchThis <
|
120
|
+
class CantTouchThis < ApplicationRecord
|
121
121
|
archival_record readonly_when_archived: true
|
122
122
|
end
|
123
123
|
|
@@ -128,12 +128,32 @@ record.save # => false
|
|
128
128
|
record.errors.full_messages.first # => "Cannot modify an archived record."
|
129
129
|
```
|
130
130
|
|
131
|
+
#### `archive_dependents`
|
132
|
+
When defining an ArchivalRecord model, it is possible to deactivate archiving/unarchiving for `dependent: :destroy` relationships that are tied to ArchivalRecord models by passing `archive_dependents: false` to the `archival_record` call in your model. The default value of this option is `true`.
|
133
|
+
|
134
|
+
``` ruby
|
135
|
+
class WillArchive < ApplicationRecord
|
136
|
+
archival_record archive_dependents: false
|
137
|
+
has_many :wont_archives, dependent: :destroy
|
138
|
+
end
|
139
|
+
class WontArchive < ApplicationRecord
|
140
|
+
archival_record
|
141
|
+
end
|
142
|
+
|
143
|
+
record = WillArchive.create
|
144
|
+
wont_archive = record.wont_archives.create
|
145
|
+
record.archive!
|
146
|
+
|
147
|
+
record.archived? # => true
|
148
|
+
wont_archive.archived? # => false
|
149
|
+
```
|
150
|
+
|
131
151
|
### Callbacks
|
132
152
|
|
133
153
|
ArchivalRecord models have four additional callbacks to do any necessary cleanup or other processing before and after archiving and unarchiving, and can additionally halt the archive callback chain.
|
134
154
|
|
135
155
|
``` ruby
|
136
|
-
class Hole <
|
156
|
+
class Hole < ApplicationRecord
|
137
157
|
archival_record
|
138
158
|
|
139
159
|
# runs before #archive!
|
@@ -160,8 +180,12 @@ end
|
|
160
180
|
## Caveats
|
161
181
|
|
162
182
|
1. This will only work on associations that are dependent destroy. It
|
163
|
-
should be
|
164
|
-
1. If you would like to work on this, you will need to setup sqlite on your development machine. Alternately, you can
|
183
|
+
should be trivial to change that or make it optional.
|
184
|
+
1. If you would like to work on this, you will need to setup sqlite on your development machine. Alternately, you can deactivate specific dev dependencies in the gemspec and test_helper and ask for help.
|
185
|
+
|
186
|
+
## Compatibility with ActsAsArchival
|
187
|
+
|
188
|
+
For now, the `acts_as_archival` class method can be used, though it will print a deprecation warning. This is to allow users to transition without trouble to this library if they choose to.
|
165
189
|
|
166
190
|
## Testing
|
167
191
|
|
data/archival_record.gemspec
CHANGED
@@ -3,40 +3,44 @@ $LOAD_PATH.push File.expand_path("lib", __dir__)
|
|
3
3
|
require "archival_record/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
|
-
gem.name
|
7
|
-
gem.summary
|
8
|
-
gem.version
|
9
|
-
gem.authors
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
gem.email
|
25
|
-
gem.homepage
|
26
|
-
|
27
|
-
|
28
|
-
gem.
|
6
|
+
gem.name = "archival_record"
|
7
|
+
gem.summary = "Atomic archiving/unarchiving for ActiveRecord"
|
8
|
+
gem.version = ArchivalRecord::VERSION
|
9
|
+
gem.authors = ["Joel Meador",
|
10
|
+
"Michael Kuehl",
|
11
|
+
"Matthew Gordon",
|
12
|
+
"Vojtech Salbaba",
|
13
|
+
"David Jones",
|
14
|
+
"Dave Woodward",
|
15
|
+
"Miles Sterrett",
|
16
|
+
"James Hill",
|
17
|
+
"Maarten Claes",
|
18
|
+
"Anthony Panozzo",
|
19
|
+
"Aaron Milam",
|
20
|
+
"Anton Rieder",
|
21
|
+
"Josh Menden",
|
22
|
+
"Sergey Gnuskov",
|
23
|
+
"Elijah Miller"]
|
24
|
+
gem.email = ["joel.meador+archival_record@gmail.com"]
|
25
|
+
gem.homepage = "https://gitlab.com/joelmeador/archival_record/"
|
26
|
+
gem.licenses = ["MIT"]
|
27
|
+
|
28
|
+
gem.files = `git ls-files`.split("\n")
|
29
29
|
gem.require_paths = ["lib"]
|
30
|
-
gem.required_ruby_version = ">=
|
30
|
+
gem.required_ruby_version = ">= 3.0"
|
31
31
|
|
32
|
-
gem.add_dependency
|
32
|
+
gem.add_dependency("activerecord", ">= 6.0")
|
33
33
|
|
34
|
-
|
35
|
-
gem.add_development_dependency
|
36
|
-
gem.add_development_dependency
|
37
|
-
gem.add_development_dependency
|
38
|
-
gem.add_development_dependency
|
39
|
-
gem.add_development_dependency
|
34
|
+
# rubocop:disable Gemspec/DevelopmentDependencies
|
35
|
+
gem.add_development_dependency("appraisal")
|
36
|
+
gem.add_development_dependency("database_cleaner")
|
37
|
+
gem.add_development_dependency("rake")
|
38
|
+
gem.add_development_dependency("rr")
|
39
|
+
gem.add_development_dependency("rubocop")
|
40
|
+
gem.add_development_dependency("rubocop-rails")
|
41
|
+
gem.add_development_dependency("rubocop-rake")
|
42
|
+
gem.add_development_dependency("sqlite3", "< 2")
|
43
|
+
# rubocop:enable Gemspec/DevelopmentDependencies
|
40
44
|
|
41
45
|
gem.description =
|
42
46
|
<<~DESCRIPTION
|
@@ -48,4 +52,5 @@ Gem::Specification.new do |gem|
|
|
48
52
|
|
49
53
|
Additionally, other plugins generally change how destroy/delete work. ArchivalRecord does not, and thus one can destroy records like normal.
|
50
54
|
DESCRIPTION
|
55
|
+
gem.metadata["rubygems_mfa_required"] = "true"
|
51
56
|
end
|
data/init.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
# Include hook code here
|
2
|
-
|
3
|
-
|
2
|
+
ActiveSupport.on_load(:active_record) { include ArchivalRecordCore::ArchivalRecordActiveRecordMethods }
|
3
|
+
ActiveSupport.on_load(:active_record) { include ArchivalRecordCore::ArchivalRecord }
|
data/lib/archival_record.rb
CHANGED
@@ -9,11 +9,11 @@ require "archival_record_core/archival_record_active_record_methods"
|
|
9
9
|
|
10
10
|
# This assumes a fully Rails 5 compatible set of ActiveRecord models
|
11
11
|
if defined?(ApplicationRecord)
|
12
|
-
ApplicationRecord.
|
13
|
-
ApplicationRecord.
|
12
|
+
ApplicationRecord.include ArchivalRecordCore::ArchivalRecord
|
13
|
+
ApplicationRecord.include ArchivalRecordCore::ArchivalRecordActiveRecordMethods
|
14
14
|
else
|
15
|
-
|
16
|
-
|
15
|
+
ActiveSupport.on_load(:active_record) { include ArchivalRecordCore::ArchivalRecord }
|
16
|
+
ActiveSupport.on_load(:active_record) { include ArchivalRecordCore::ArchivalRecordActiveRecordMethods }
|
17
17
|
end
|
18
18
|
|
19
|
-
ActiveRecord::Relation.
|
19
|
+
ActiveRecord::Relation.include ArchivalRecordCore::ArchivalRecordActiveRecordMethods::ARRelationMethods
|