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 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