acts_as_archival 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|