soft_deletion 0.8.1 → 0.8.2
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/lib/soft_deletion/core.rb +13 -2
- data/lib/soft_deletion/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 242f3f52d3bb58d98d9b58a668d8a876732c7acc
|
4
|
+
data.tar.gz: 7ec068a7d632b58b886a24249bb763ce410fe650
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 674ffbe315ab1e2b25422711cba3e37f6fad43866fa5c7ffabf99fbdca215fdc23fc51780764995e59d557babb2131c60151a40502aa09b743171a649d119e78
|
7
|
+
data.tar.gz: 0ac228265266ab92dc0e4965191ac7432013f0f2d21c1f8abbd26d2d5aabc8b0c2b605f20de19092905eef427283614d3f1843a7458260feca48c262982fd102
|
data/lib/soft_deletion/core.rb
CHANGED
@@ -73,15 +73,19 @@ module SoftDeletion
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def soft_delete!
|
76
|
-
_run_soft_delete { save! }
|
76
|
+
_run_soft_delete { save! } || soft_delete_hook_failed(:before_soft_delete)
|
77
77
|
end
|
78
78
|
|
79
79
|
def soft_delete(*args)
|
80
80
|
_run_soft_delete{ save(*args) }
|
81
81
|
end
|
82
82
|
|
83
|
+
def soft_undelete
|
84
|
+
_run_soft_undelete{ save }
|
85
|
+
end
|
86
|
+
|
83
87
|
def soft_undelete!
|
84
|
-
_run_soft_undelete{ save! }
|
88
|
+
_run_soft_undelete{ save! } || soft_delete_hook_failed(:before_soft_undelete)
|
85
89
|
end
|
86
90
|
|
87
91
|
def soft_delete_dependencies
|
@@ -122,5 +126,12 @@ module SoftDeletion
|
|
122
126
|
|
123
127
|
result
|
124
128
|
end
|
129
|
+
|
130
|
+
def soft_delete_hook_failed(hook)
|
131
|
+
error = (errors.full_messages.presence || ["None"]).join(", ")
|
132
|
+
message = "#{hook} hook failed, errors: #{error}"
|
133
|
+
# not passing record (self) as 2nd argument to be rails 3/4.1 compatible
|
134
|
+
raise ActiveRecord::RecordNotSaved.new(message)
|
135
|
+
end
|
125
136
|
end
|
126
137
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soft_deletion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zendesk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|