acts_as_archival 1.2.0 → 1.3.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/.travis.yml +2 -4
- data/Appraisals +3 -3
- data/CHANGELOG.md +3 -0
- data/README.md +14 -10
- data/gemfiles/rails_5.0.gemfile +1 -1
- data/gemfiles/{rails_5.1.beta.gemfile → rails_5.1.gemfile} +1 -1
- data/lib/acts_as_archival/version.rb +1 -1
- data/lib/expected_behavior/acts_as_archival.rb +16 -0
- data/lib/expected_behavior/association_operation/archive.rb +1 -1
- data/lib/expected_behavior/association_operation/unarchive.rb +1 -1
- data/test/ambiguous_table_test.rb +1 -1
- data/test/application_record_test.rb +2 -2
- data/test/associations_test.rb +17 -17
- data/test/basic_test.rb +10 -10
- data/test/callbacks_test.rb +4 -4
- data/test/deep_nesting_test.rb +2 -2
- data/test/polymorphic_test.rb +2 -2
- data/test/readonly_when_archived_test.rb +2 -2
- data/test/scope_test.rb +11 -11
- data/test/through_association_test.rb +1 -1
- data/test/transaction_test.rb +5 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57fc429ad5b01bdcf06307addddfbfbcaa6d9c28
|
4
|
+
data.tar.gz: cd104110c549dd3e187c7e0095e22b1c4ba59fda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67046bb797b64b2b7de8079f4b95a1c55e1a07d92614711a775ff372931997f156139ad6aa920d7bd2398d9376c5f06834c25a4404dd524728eb0602c659ee7b
|
7
|
+
data.tar.gz: 24cf648a878a16eba6b089bf60504f2609386cd4a39735e6e163e6ffe48d70a50830005fb4ac58a303f87ae73854c3b608cab6dd8669e1bafd340ab95b555e4d
|
data/.travis.yml
CHANGED
@@ -14,7 +14,7 @@ gemfile:
|
|
14
14
|
- gemfiles/rails_4.1.gemfile
|
15
15
|
- gemfiles/rails_4.2.gemfile
|
16
16
|
- gemfiles/rails_5.0.gemfile
|
17
|
-
- gemfiles/rails_5.1.
|
17
|
+
- gemfiles/rails_5.1.gemfile
|
18
18
|
|
19
19
|
before_install:
|
20
20
|
- gem update --system
|
@@ -23,12 +23,10 @@ before_install:
|
|
23
23
|
|
24
24
|
matrix:
|
25
25
|
fast_finish: true
|
26
|
-
allow_failures:
|
27
|
-
- gemfile: gemfiles/rails_5.1.beta.gemfile
|
28
26
|
exclude:
|
29
27
|
- rvm: 2.1.10
|
30
28
|
gemfile: gemfiles/rails_5.0.gemfile
|
31
29
|
- rvm: 2.1.10
|
32
|
-
gemfile: gemfiles/rails_5.1.
|
30
|
+
gemfile: gemfiles/rails_5.1.gemfile
|
33
31
|
- rvm: 2.4.0
|
34
32
|
gemfile: gemfiles/rails_4.1.gemfile
|
data/Appraisals
CHANGED
@@ -7,9 +7,9 @@ appraise "rails-4.2" do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
appraise "rails-5.0" do
|
10
|
-
gem "rails", "~> 5.0
|
10
|
+
gem "rails", "~> 5.0.0"
|
11
11
|
end
|
12
12
|
|
13
|
-
appraise "rails-5.1
|
14
|
-
gem
|
13
|
+
appraise "rails-5.1" do
|
14
|
+
gem "rails", "~> 5.1.0"
|
15
15
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.3.0 - October 21, 2017
|
4
|
+
* deprecate `#archive` and `#unarchive` in favor of `#archive!` and `#unarchive!` [#36](https://github.com/expectedbehavior/acts_as_archival/pull/36)
|
5
|
+
|
3
6
|
## 1.2.0 - March 19, 2017
|
4
7
|
* **BREAKING CHANGE** the utility instance and class method `is_archival?` is now `archival?`. `is_archival?` is deprecated and will be removed
|
5
8
|
* hard dependency on rails 4.1+ – this shouldn't break anything since it was de facto before, but worth mentioning
|
data/README.md
CHANGED
@@ -41,7 +41,7 @@ _If you're stuck on Rails 4.0x/3x/2x, check out the older tags/branches, which a
|
|
41
41
|
``` ruby
|
42
42
|
class Hole < ActiveRecord::Base
|
43
43
|
acts_as_archival
|
44
|
-
has_many :rats, :
|
44
|
+
has_many :rats, dependent: :destroy
|
45
45
|
end
|
46
46
|
|
47
47
|
class Rat < ActiveRecord::Base
|
@@ -54,11 +54,11 @@ end
|
|
54
54
|
``` ruby
|
55
55
|
h = Hole.create #
|
56
56
|
h.archived? # => false
|
57
|
-
h.archive
|
57
|
+
h.archive! # => true
|
58
58
|
h.archived? # => true
|
59
59
|
h.archive_number # => "b56876de48a5dcfe71b2c13eec15e4a2"
|
60
60
|
h.archived_at # => Thu, 01 Jan 2012 01:49:21 -0400
|
61
|
-
h.unarchive
|
61
|
+
h.unarchive! # => true
|
62
62
|
h.archived? # => false
|
63
63
|
h.archive_number # => nil
|
64
64
|
h.archived_at # => nil
|
@@ -69,11 +69,11 @@ h.archived_at # => nil
|
|
69
69
|
``` ruby
|
70
70
|
h = Hole.create #
|
71
71
|
r = h.rats.create #
|
72
|
-
h.archive
|
72
|
+
h.archive! # => true
|
73
73
|
h.archive_number # => "b56876de48a5dcfe71b2c13eec15e4a2"
|
74
74
|
r.archived_at # => Thu, 01 Jan 2012 01:52:12 -0400
|
75
75
|
r.archived? # => true
|
76
|
-
h.unarchive
|
76
|
+
h.unarchive! # => true
|
77
77
|
h.archive_number # => nil
|
78
78
|
r.archived_at # => nil
|
79
79
|
r.archived? # => false
|
@@ -85,7 +85,7 @@ r.archived? # => false
|
|
85
85
|
h = Hole.create
|
86
86
|
Hole.archived.size # => 0
|
87
87
|
Hole.unarchived.size # => 1
|
88
|
-
h.archive
|
88
|
+
h.archive!
|
89
89
|
Hole.archived.size # => 1
|
90
90
|
Hole.unarchived.size # => 0
|
91
91
|
```
|
@@ -103,16 +103,16 @@ Hole.is_archival? # => true # deprecated
|
|
103
103
|
### Options
|
104
104
|
|
105
105
|
When defining an AAA model, it is is possible to make it unmodifiable
|
106
|
-
when it is archived by passing
|
106
|
+
when it is archived by passing `readonly_when_archived: true` to the
|
107
107
|
`acts_as_archival` call in your model.
|
108
108
|
|
109
109
|
``` ruby
|
110
110
|
class CantTouchThis < ActiveRecord::Base
|
111
|
-
acts_as_archival :
|
111
|
+
acts_as_archival readonly_when_archived: true
|
112
112
|
end
|
113
113
|
|
114
|
-
record = CantTouchThis.create(:
|
115
|
-
record.archive
|
114
|
+
record = CantTouchThis.create(foo: "bar")
|
115
|
+
record.archive! # => true
|
116
116
|
record.foo = "I want this to work"
|
117
117
|
record.save # => false
|
118
118
|
record.errors.full_messages.first # => "Cannot modify an archived record."
|
@@ -126,12 +126,16 @@ AAA models have four additional callbacks to do any necessary cleanup or other p
|
|
126
126
|
class Hole < ActiveRecord::Base
|
127
127
|
acts_as_archival
|
128
128
|
|
129
|
+
# runs before #archive!
|
129
130
|
before_archive :some_method_before_archiving
|
130
131
|
|
132
|
+
# runs after #archive!
|
131
133
|
after_archive :some_method_after_archiving
|
132
134
|
|
135
|
+
# runs before #unarchive!
|
133
136
|
before_unarchive :some_method_before_unarchiving
|
134
137
|
|
138
|
+
# runs after #unarchive!
|
135
139
|
after_unarchive :some_method_after_unarchiving
|
136
140
|
|
137
141
|
# ... implement those methods
|
data/gemfiles/rails_5.0.gemfile
CHANGED
@@ -105,6 +105,14 @@ module ExpectedBehavior
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def archive(head_archive_number = nil)
|
108
|
+
ActiveSupport::Deprecation.warn <<-EOS.strip_heredoc.gsub(/\s+/, " ")
|
109
|
+
'.archive' is deprecated and will be removed in future versions of acts_as_archival.
|
110
|
+
Please use '.archive!' instead.
|
111
|
+
EOS
|
112
|
+
archive!(head_archive_number)
|
113
|
+
end
|
114
|
+
|
115
|
+
def archive!(head_archive_number = nil)
|
108
116
|
execute_archival_action(:archive) do
|
109
117
|
unless archived?
|
110
118
|
head_archive_number ||= Digest::MD5.hexdigest("#{self.class.name}#{id}")
|
@@ -117,6 +125,14 @@ module ExpectedBehavior
|
|
117
125
|
end
|
118
126
|
|
119
127
|
def unarchive(head_archive_number = nil)
|
128
|
+
ActiveSupport::Deprecation.warn <<-EOS.strip_heredoc.gsub(/\s+/, " ")
|
129
|
+
'.unarchive' is deprecated and will be removed in future versions of acts_as_archival.
|
130
|
+
Please use '.unarchive!' instead.
|
131
|
+
EOS
|
132
|
+
unarchive!(head_archive_number)
|
133
|
+
end
|
134
|
+
|
135
|
+
def unarchive!(head_archive_number = nil)
|
120
136
|
execute_archival_action(:unarchive) do
|
121
137
|
if archived?
|
122
138
|
head_archive_number ||= archive_number
|
@@ -7,7 +7,7 @@ module ExpectedBehavior
|
|
7
7
|
|
8
8
|
def act_on_archivals(archivals)
|
9
9
|
archivals.unarchived.find_each do |related_record|
|
10
|
-
raise ActiveRecord::Rollback unless related_record.archive(head_archive_number)
|
10
|
+
raise ActiveRecord::Rollback unless related_record.archive!(head_archive_number)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -7,7 +7,7 @@ module ExpectedBehavior
|
|
7
7
|
|
8
8
|
def act_on_archivals(scope)
|
9
9
|
scope.archived.where(archive_number: head_archive_number).find_each do |related_record|
|
10
|
-
raise ActiveRecord::Rollback unless related_record.unarchive(head_archive_number)
|
10
|
+
raise ActiveRecord::Rollback unless related_record.unarchive!(head_archive_number)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -5,7 +5,7 @@ class AmbiguousTableTest < ActiveSupport::TestCase
|
|
5
5
|
test "no ambiguous table problem" do
|
6
6
|
archival = Archival.create!
|
7
7
|
child = archival.archivals.create!
|
8
|
-
child.archive
|
8
|
+
child.archive!
|
9
9
|
|
10
10
|
# this is a bug fix for a problem wherein table names weren't being
|
11
11
|
# namespaced, so if a table joined against itself, incorrect SQL was
|
@@ -6,13 +6,13 @@ if defined?(ApplicationRecord)
|
|
6
6
|
|
7
7
|
test "archive archives the record" do
|
8
8
|
archival = ApplicationRecordRow.create!
|
9
|
-
archival.archive
|
9
|
+
archival.archive!
|
10
10
|
assert archival.reload.archived?
|
11
11
|
end
|
12
12
|
|
13
13
|
test "unarchive unarchives archival records" do
|
14
14
|
archival = ApplicationRecordRow.create!(archived_at: Time.now, archive_number: 1)
|
15
|
-
archival.unarchive
|
15
|
+
archival.unarchive!
|
16
16
|
assert_not archival.reload.archived?
|
17
17
|
end
|
18
18
|
|
data/test/associations_test.rb
CHANGED
@@ -5,7 +5,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
5
5
|
test "archive archives 'has_' associated archival objects that are dependent destroy" do
|
6
6
|
archival = Archival.create!
|
7
7
|
child = archival.archivals.create!
|
8
|
-
archival.archive
|
8
|
+
archival.archive!
|
9
9
|
|
10
10
|
assert archival.reload.archived?
|
11
11
|
assert child.reload.archived?
|
@@ -14,7 +14,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
14
14
|
test "archive acts on all objects in the 'has_' relationship" do
|
15
15
|
archival = Archival.create!
|
16
16
|
children = [archival.archivals.create!, archival.archivals.create!]
|
17
|
-
archival.archive
|
17
|
+
archival.archive!
|
18
18
|
|
19
19
|
assert archival.reload.archived?
|
20
20
|
assert children.map(&:reload).all?(&:archived?)
|
@@ -24,8 +24,8 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
24
24
|
archival = Archival.create!
|
25
25
|
archival.archivals.create!
|
26
26
|
prearchived_child = archival.archivals.create!
|
27
|
-
prearchived_child.archive
|
28
|
-
archival.archive
|
27
|
+
prearchived_child.archive!
|
28
|
+
archival.archive!
|
29
29
|
|
30
30
|
assert_not_equal archival.archive_number, prearchived_child.reload.archive_number
|
31
31
|
end
|
@@ -33,7 +33,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
33
33
|
test "archive does not archive 'has_' associated archival objects that are not dependent destroy" do
|
34
34
|
archival = Archival.create!
|
35
35
|
non_dependent_child = archival.independent_archivals.create!
|
36
|
-
archival.archive
|
36
|
+
archival.archive!
|
37
37
|
|
38
38
|
assert archival.reload.archived?
|
39
39
|
assert_not non_dependent_child.reload.archived?
|
@@ -42,7 +42,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
42
42
|
test "archive doesn't do anything to associated dependent destroy models that are non-archival" do
|
43
43
|
archival = Archival.create!
|
44
44
|
plain = archival.plains.create!
|
45
|
-
archival.archive
|
45
|
+
archival.archive!
|
46
46
|
|
47
47
|
assert archival.archived?
|
48
48
|
assert plain.reload
|
@@ -51,7 +51,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
51
51
|
test "archive sets the object hierarchy to all have the same archive_number" do
|
52
52
|
archival = Archival.create!
|
53
53
|
child = archival.archivals.create!
|
54
|
-
archival.archive
|
54
|
+
archival.archive!
|
55
55
|
expected_digest = Digest::MD5.hexdigest("Archival#{archival.id}")
|
56
56
|
|
57
57
|
assert_equal expected_digest, archival.archive_number
|
@@ -61,8 +61,8 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
61
61
|
test "unarchive acts on child objects" do
|
62
62
|
archival = Archival.create!
|
63
63
|
child = archival.archivals.create!
|
64
|
-
archival.archive
|
65
|
-
archival.unarchive
|
64
|
+
archival.archive!
|
65
|
+
archival.unarchive!
|
66
66
|
|
67
67
|
assert_not archival.archived?
|
68
68
|
assert_not child.reload.archived?
|
@@ -72,9 +72,9 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
72
72
|
archival = Archival.create!
|
73
73
|
child = archival.archivals.create!
|
74
74
|
prearchived_child = archival.archivals.create!
|
75
|
-
prearchived_child.archive
|
76
|
-
archival.archive
|
77
|
-
archival.unarchive
|
75
|
+
prearchived_child.archive!
|
76
|
+
archival.archive!
|
77
|
+
archival.unarchive!
|
78
78
|
|
79
79
|
assert_not archival.archived?
|
80
80
|
assert_not child.reload.archived?
|
@@ -84,9 +84,9 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
84
84
|
test "unarchive acts on 'has_' associated non-dependent_destroy objects" do
|
85
85
|
archival = Archival.create!
|
86
86
|
independent = archival.independent_archivals.create!
|
87
|
-
archival.archive
|
88
|
-
independent.archive(archival.archive_number)
|
89
|
-
archival.unarchive
|
87
|
+
archival.archive!
|
88
|
+
independent.archive!(archival.archive_number)
|
89
|
+
archival.unarchive!
|
90
90
|
|
91
91
|
assert_not archival.reload.archived?
|
92
92
|
assert_not independent.reload.archived?
|
@@ -95,8 +95,8 @@ class AssociationsTest < ActiveSupport::TestCase
|
|
95
95
|
test "unarchive doesn't unarchive associated objects if the head object is already unarchived" do
|
96
96
|
archival = Archival.create!
|
97
97
|
prearchived_child = archival.archivals.create!
|
98
|
-
prearchived_child.archive
|
99
|
-
archival.unarchive
|
98
|
+
prearchived_child.archive!
|
99
|
+
archival.unarchive!
|
100
100
|
|
101
101
|
assert prearchived_child.reload.archived?
|
102
102
|
end
|
data/test/basic_test.rb
CHANGED
@@ -4,43 +4,43 @@ class BasicTest < ActiveSupport::TestCase
|
|
4
4
|
|
5
5
|
test "archive archives the record" do
|
6
6
|
archival = Archival.create!
|
7
|
-
archival.archive
|
7
|
+
archival.archive!
|
8
8
|
assert_equal true, archival.reload.archived?
|
9
9
|
end
|
10
10
|
|
11
11
|
test "unarchive unarchives archival records" do
|
12
12
|
archival = Archival.create!(archived_at: Time.now, archive_number: 1)
|
13
|
-
archival.unarchive
|
13
|
+
archival.unarchive!
|
14
14
|
assert_equal false, archival.reload.archived?
|
15
15
|
end
|
16
16
|
|
17
17
|
test "archive returns true on success" do
|
18
18
|
normal = Archival.create!
|
19
|
-
assert_equal true, normal.archive
|
19
|
+
assert_equal true, normal.archive!
|
20
20
|
end
|
21
21
|
|
22
22
|
test "archive returns false on failure" do
|
23
23
|
readonly = Archival.create!
|
24
24
|
readonly.readonly!
|
25
|
-
assert_equal false, readonly.archive
|
25
|
+
assert_equal false, readonly.archive!
|
26
26
|
end
|
27
27
|
|
28
28
|
test "unarchive returns true on success" do
|
29
29
|
normal = Archival.create!(archived_at: Time.now, archive_number: "1")
|
30
|
-
assert_equal true, normal.unarchive
|
30
|
+
assert_equal true, normal.unarchive!
|
31
31
|
end
|
32
32
|
|
33
33
|
test "unarchive returns false on failure" do
|
34
34
|
readonly = Archival.create!(archived_at: Time.now, archive_number: "1")
|
35
35
|
readonly.readonly!
|
36
|
-
assert_equal false, readonly.unarchive
|
36
|
+
assert_equal false, readonly.unarchive!
|
37
37
|
end
|
38
38
|
|
39
39
|
test "archive sets archived_at to the time of archiving" do
|
40
40
|
archival = Archival.create!
|
41
41
|
before = DateTime.now
|
42
42
|
sleep(0.001)
|
43
|
-
archival.archive
|
43
|
+
archival.archive!
|
44
44
|
sleep(0.001)
|
45
45
|
after = DateTime.now
|
46
46
|
assert before < archival.archived_at.to_datetime
|
@@ -49,16 +49,16 @@ class BasicTest < ActiveSupport::TestCase
|
|
49
49
|
|
50
50
|
test "archive sets the archive number to the md5 hexdigest for the model and id that is archived" do
|
51
51
|
archival = Archival.create!
|
52
|
-
archival.archive
|
52
|
+
archival.archive!
|
53
53
|
expected_digest = Digest::MD5.hexdigest("#{archival.class.name}#{archival.id}")
|
54
54
|
assert_equal expected_digest, archival.archive_number
|
55
55
|
end
|
56
56
|
|
57
57
|
test "archive on archived object doesn't alter the archive_number" do
|
58
58
|
archived = Archival.create
|
59
|
-
archived.archive
|
59
|
+
archived.archive!
|
60
60
|
initial_number = archived.archive_number
|
61
|
-
archived.reload.archive
|
61
|
+
archived.reload.archive!
|
62
62
|
second_number = archived.archive_number
|
63
63
|
assert_equal initial_number, second_number
|
64
64
|
end
|
data/test/callbacks_test.rb
CHANGED
@@ -7,7 +7,7 @@ class CallbacksTest < ActiveSupport::TestCase
|
|
7
7
|
archival = CallbackArchival5.create
|
8
8
|
archival.set_this_value = "a test string"
|
9
9
|
assert_nil archival.settable_field
|
10
|
-
archival.archive
|
10
|
+
archival.archive!
|
11
11
|
assert_equal "a test string", archival.reload.settable_field
|
12
12
|
end
|
13
13
|
|
@@ -16,7 +16,7 @@ class CallbacksTest < ActiveSupport::TestCase
|
|
16
16
|
archival.set_this_value = "a test string"
|
17
17
|
archival.pass_callback = false
|
18
18
|
assert_nil archival.settable_field
|
19
|
-
archival.archive
|
19
|
+
archival.archive!
|
20
20
|
assert_nil archival.reload.settable_field
|
21
21
|
end
|
22
22
|
else
|
@@ -24,7 +24,7 @@ class CallbacksTest < ActiveSupport::TestCase
|
|
24
24
|
archival = CallbackArchival4.create
|
25
25
|
archival.set_this_value = "a test string"
|
26
26
|
assert_nil archival.settable_field
|
27
|
-
archival.archive
|
27
|
+
archival.archive!
|
28
28
|
assert_equal "a test string", archival.reload.settable_field
|
29
29
|
end
|
30
30
|
|
@@ -33,7 +33,7 @@ class CallbacksTest < ActiveSupport::TestCase
|
|
33
33
|
archival.set_this_value = "a test string"
|
34
34
|
archival.pass_callback = false
|
35
35
|
assert_nil archival.settable_field
|
36
|
-
archival.archive
|
36
|
+
archival.archive!
|
37
37
|
assert_nil archival.reload.settable_field
|
38
38
|
end
|
39
39
|
end
|
data/test/deep_nesting_test.rb
CHANGED
@@ -6,7 +6,7 @@ class DeepNestingTest < ActiveSupport::TestCase
|
|
6
6
|
archival = Archival.create!
|
7
7
|
child = archival.archivals.create!
|
8
8
|
grandchild = child.archivals.create!
|
9
|
-
archival.archive
|
9
|
+
archival.archive!
|
10
10
|
assert archival.reload.archived?
|
11
11
|
assert child.reload.archived?
|
12
12
|
assert grandchild.reload.archived?
|
@@ -22,7 +22,7 @@ class DeepNestingTest < ActiveSupport::TestCase
|
|
22
22
|
archival = Archival.create!(archival_attributes)
|
23
23
|
child = archival.archivals.create!(archival_attributes)
|
24
24
|
grandchild = child.archivals.create!(archival_attributes)
|
25
|
-
archival.unarchive
|
25
|
+
archival.unarchive!
|
26
26
|
assert_not archival.reload.archived?
|
27
27
|
assert_not child.reload.archived?
|
28
28
|
assert_not grandchild.reload.archived?
|
data/test/polymorphic_test.rb
CHANGED
@@ -5,7 +5,7 @@ class PolymorphicTest < ActiveSupport::TestCase
|
|
5
5
|
test "archive item with polymorphic association" do
|
6
6
|
archival = Archival.create!
|
7
7
|
poly = archival.polys.create!
|
8
|
-
archival.archive
|
8
|
+
archival.archive!
|
9
9
|
|
10
10
|
assert archival.reload.archived?
|
11
11
|
assert poly.reload.archived?
|
@@ -18,7 +18,7 @@ class PolymorphicTest < ActiveSupport::TestCase
|
|
18
18
|
}
|
19
19
|
archival = Archival.create!(archive_attributes)
|
20
20
|
poly = archival.polys.create!(archive_attributes)
|
21
|
-
archival.unarchive
|
21
|
+
archival.unarchive!
|
22
22
|
|
23
23
|
assert_not archival.reload.archived?
|
24
24
|
assert_not poly.reload.archived?
|
@@ -4,7 +4,7 @@ class ReadonlyWhenArchivedTest < ActiveSupport::TestCase
|
|
4
4
|
|
5
5
|
test "acts_as_archival objects can normally be altered after archive" do
|
6
6
|
archival = Archival.create!(name: "original")
|
7
|
-
archival.archive
|
7
|
+
archival.archive!
|
8
8
|
archival.name = "updated"
|
9
9
|
archival.save!
|
10
10
|
|
@@ -13,7 +13,7 @@ class ReadonlyWhenArchivedTest < ActiveSupport::TestCase
|
|
13
13
|
|
14
14
|
test "acts_as_archival marked as readonly_when_archived cannot be updated after archive" do
|
15
15
|
archival = ReadonlyWhenArchived.create!(name: "original")
|
16
|
-
archival.archive
|
16
|
+
archival.archive!
|
17
17
|
archival.name = "updated"
|
18
18
|
|
19
19
|
assert_not archival.save
|
data/test/scope_test.rb
CHANGED
@@ -10,15 +10,15 @@ class ScopeTest < ActiveSupport::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
test "simple archived scope" do
|
13
|
-
Archival.create!.archive
|
14
|
-
Archival.create!.archive
|
13
|
+
Archival.create!.archive!
|
14
|
+
Archival.create!.archive!
|
15
15
|
|
16
16
|
assert_equal 2, Archival.archived.count
|
17
17
|
end
|
18
18
|
|
19
19
|
test "mixed scopes" do
|
20
20
|
Archival.create!
|
21
|
-
Archival.create!.archive
|
21
|
+
Archival.create!.archive!
|
22
22
|
|
23
23
|
assert_equal 1, Archival.archived.count
|
24
24
|
assert_equal 1, Archival.unarchived.count
|
@@ -26,8 +26,8 @@ class ScopeTest < ActiveSupport::TestCase
|
|
26
26
|
|
27
27
|
test "simple archived_from_archive_number" do
|
28
28
|
archive_number = "TEST-IT"
|
29
|
-
Archival.create!.archive(archive_number)
|
30
|
-
Archival.create!.archive(archive_number)
|
29
|
+
Archival.create!.archive!(archive_number)
|
30
|
+
Archival.create!.archive!(archive_number)
|
31
31
|
|
32
32
|
assert_equal 2, Archival.archived_from_archive_number(archive_number).count
|
33
33
|
end
|
@@ -35,16 +35,16 @@ class ScopeTest < ActiveSupport::TestCase
|
|
35
35
|
test "negative archived_from_archive_number" do
|
36
36
|
archive_number = "TEST-IT"
|
37
37
|
bogus_number = "BROKE-IT"
|
38
|
-
Archival.create!.archive(archive_number)
|
39
|
-
Archival.create!.archive(archive_number)
|
38
|
+
Archival.create!.archive!(archive_number)
|
39
|
+
Archival.create!.archive!(archive_number)
|
40
40
|
|
41
41
|
assert_equal 0, Archival.archived_from_archive_number(bogus_number).count
|
42
42
|
end
|
43
43
|
|
44
44
|
test "mixed archived_from_archive_number" do
|
45
45
|
archive_number = "TEST-IT"
|
46
|
-
Archival.create!.archive(archive_number)
|
47
|
-
Archival.create!.archive
|
46
|
+
Archival.create!.archive!(archive_number)
|
47
|
+
Archival.create!.archive!
|
48
48
|
|
49
49
|
assert_equal 1, Archival.archived_from_archive_number(archive_number).count
|
50
50
|
end
|
@@ -69,7 +69,7 @@ class ScopeTest < ActiveSupport::TestCase
|
|
69
69
|
Archival.create!(name: "Bobby")
|
70
70
|
Archival.create!(name: "Sue")
|
71
71
|
bob = Archival.create!(name: "Bob")
|
72
|
-
bob.archive
|
72
|
+
bob.archive!
|
73
73
|
assert_equal 3, Archival.bobs.count
|
74
74
|
assert_equal 3, Archival.unarchived.count
|
75
75
|
assert_equal 2, Archival.bobs.unarchived.count
|
@@ -83,7 +83,7 @@ class ScopeTest < ActiveSupport::TestCase
|
|
83
83
|
parent.archivals.create!
|
84
84
|
parent.archivals.create!
|
85
85
|
child = parent.archivals.create!
|
86
|
-
child.archive
|
86
|
+
child.archive!
|
87
87
|
assert_equal 3, parent.archivals.count
|
88
88
|
assert_equal 1, parent.archivals.archived.count
|
89
89
|
assert_equal 2, parent.archivals.unarchived.count
|
@@ -6,7 +6,7 @@ class ThroughAssociationTest < ActiveSupport::TestCase
|
|
6
6
|
archival = Archival.create!
|
7
7
|
bridge = archival.archival_kids.create!
|
8
8
|
through = bridge.archival_grandkids.create!
|
9
|
-
archival.archive
|
9
|
+
archival.archive!
|
10
10
|
|
11
11
|
assert archival.reload.archived?
|
12
12
|
assert bridge.reload.archived?
|
data/test/transaction_test.rb
CHANGED
@@ -7,9 +7,9 @@ class TransactionTest < ActiveSupport::TestCase
|
|
7
7
|
archival = Archival.create!
|
8
8
|
exploder = archival.exploders.create!
|
9
9
|
any_instance_of(Exploder) do |canary|
|
10
|
-
stub(canary).archive { raise "Rollback Imminent" }
|
10
|
+
stub(canary).archive! { raise "Rollback Imminent" }
|
11
11
|
end
|
12
|
-
archival.archive
|
12
|
+
archival.archive!
|
13
13
|
|
14
14
|
assert_not archival.archived?, "If this failed, you might be trying to test on a system that doesn't support nested transactions"
|
15
15
|
assert_not exploder.reload.archived?
|
@@ -19,10 +19,10 @@ class TransactionTest < ActiveSupport::TestCase
|
|
19
19
|
archival = Archival.create!
|
20
20
|
exploder = archival.exploders.create!
|
21
21
|
any_instance_of(Exploder) do |canary|
|
22
|
-
stub(canary).unarchive { raise "Rollback Imminent" }
|
22
|
+
stub(canary).unarchive! { raise "Rollback Imminent" }
|
23
23
|
end
|
24
|
-
archival.archive
|
25
|
-
archival.unarchive
|
24
|
+
archival.archive!
|
25
|
+
archival.unarchive!
|
26
26
|
|
27
27
|
assert archival.reload.archived?
|
28
28
|
assert exploder.reload.archived?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_archival
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Meador
|
@@ -16,7 +16,7 @@ authors:
|
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date: 2017-
|
19
|
+
date: 2017-10-21 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: activerecord
|
@@ -167,7 +167,7 @@ files:
|
|
167
167
|
- gemfiles/rails_4.1.gemfile
|
168
168
|
- gemfiles/rails_4.2.gemfile
|
169
169
|
- gemfiles/rails_5.0.gemfile
|
170
|
-
- gemfiles/rails_5.1.
|
170
|
+
- gemfiles/rails_5.1.gemfile
|
171
171
|
- init.rb
|
172
172
|
- lib/acts_as_archival.rb
|
173
173
|
- lib/acts_as_archival/version.rb
|