soft_deletion 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c38ff4e3d7bdbc70186a1c89328478f1c1ddb45
4
- data.tar.gz: ae7ca5ac0261da84b8f6be925a906b5e75f5bc6e
3
+ metadata.gz: 242f3f52d3bb58d98d9b58a668d8a876732c7acc
4
+ data.tar.gz: 7ec068a7d632b58b886a24249bb763ce410fe650
5
5
  SHA512:
6
- metadata.gz: 143ddcf36fd45613db6588d50f81e76c4fac780dd6bcc65180a2b550c60497b80ea56dc0941d0e5e5759093fdd6b60e68e14624889a5afe58d95bf2ac17bfd29
7
- data.tar.gz: 7bbf2ba8a4671a149a55123986bad969cefc29b2d43c23bc544b5b44383e7ed0cbede5c3dc24a29b6cc7c8181a3bf188c5a6c6f92256978eda8a895e882ced1d
6
+ metadata.gz: 674ffbe315ab1e2b25422711cba3e37f6fad43866fa5c7ffabf99fbdca215fdc23fc51780764995e59d557babb2131c60151a40502aa09b743171a649d119e78
7
+ data.tar.gz: 0ac228265266ab92dc0e4965191ac7432013f0f2d21c1f8abbd26d2d5aabc8b0c2b605f20de19092905eef427283614d3f1843a7458260feca48c262982fd102
@@ -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
@@ -1,3 +1,3 @@
1
1
  module SoftDeletion
2
- VERSION = '0.8.1'
2
+ VERSION = '0.8.2'
3
3
  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.1
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-08-18 00:00:00.000000000 Z
11
+ date: 2016-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord