soft_deleter 0.1.1 → 0.3.1
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/README.md +2 -1
- data/lib/soft_deleter/version.rb +1 -1
- data/lib/soft_deleter.rb +31 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1075ffd8808a9f4fd6ccb64b965ffe966a4a8a3708ac128a8005a88522b10f5b
|
4
|
+
data.tar.gz: f3897475f6af066ac4539c4ef3d8ba9f6a6e097075b9053bbc47532077c4b6b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f609a071a3ce88e348e4f82101411d4b6dbf9bbaaa88dd088c3543bc4ddf257c07aac5224b26d34c3e22ba18261e3c4bfc9a4d873fa5b47231ee9cb63d56b7b
|
7
|
+
data.tar.gz: 8fcc88756079ff57e9af970b4a3fa2cf37f0938f38fd8789735a157749a08504436da792c8e23daa9124da22523f169d4eb2471ed7976529a9a8317d7c5390e6
|
data/README.md
CHANGED
@@ -66,8 +66,9 @@ deleted_users = User.deleted.all
|
|
66
66
|
```ruby
|
67
67
|
user = User.enabled.first
|
68
68
|
user.soft_delete # soft delete
|
69
|
-
user.soft_delete! # soft delete or raise
|
69
|
+
user.soft_delete! # soft delete or raise when fail occurs
|
70
70
|
user.restore # restore soft deleted user
|
71
|
+
user.restore! # restore soft deleted user or raise when fail occurs
|
71
72
|
```
|
72
73
|
If your app have some models other than user, like `Admin` model,<br />
|
73
74
|
and you need to record to that Admin user did soft delete.<br />
|
data/lib/soft_deleter/version.rb
CHANGED
data/lib/soft_deleter.rb
CHANGED
@@ -16,7 +16,7 @@ module SoftDeleter
|
|
16
16
|
|
17
17
|
i.options[:class_name]&.underscore&.pluralize&.to_sym || i.name
|
18
18
|
end.compact
|
19
|
-
result
|
19
|
+
result - [:"active_storage/attachments"]
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -33,6 +33,16 @@ module SoftDeleter
|
|
33
33
|
with_associations(:soft_delete_witout_associations, deleter)
|
34
34
|
end
|
35
35
|
|
36
|
+
true
|
37
|
+
rescue ActiveRecord::RecordInvalid
|
38
|
+
false
|
39
|
+
end
|
40
|
+
|
41
|
+
def restore!
|
42
|
+
ActiveRecord::Base.transaction do
|
43
|
+
with_associations(:restore_without_associations!)
|
44
|
+
end
|
45
|
+
|
36
46
|
true
|
37
47
|
end
|
38
48
|
|
@@ -40,6 +50,10 @@ module SoftDeleter
|
|
40
50
|
ActiveRecord::Base.transaction do
|
41
51
|
with_associations(:restore_without_associations)
|
42
52
|
end
|
53
|
+
|
54
|
+
true
|
55
|
+
rescue ActiveRecord::RecordInvalid
|
56
|
+
false
|
43
57
|
end
|
44
58
|
|
45
59
|
def deleter_type
|
@@ -75,6 +89,8 @@ module SoftDeleter
|
|
75
89
|
private
|
76
90
|
|
77
91
|
def soft_delete_witout_associations!(deleter)
|
92
|
+
raise ActiveRecord::RecordInvalid, self if invalid?
|
93
|
+
|
78
94
|
update!(
|
79
95
|
deleter_type: deleter.class.to_s,
|
80
96
|
deleter_id: deleter.id,
|
@@ -83,6 +99,8 @@ module SoftDeleter
|
|
83
99
|
end
|
84
100
|
|
85
101
|
def soft_delete_witout_associations(deleter)
|
102
|
+
raise ActiveRecord::RecordInvalid if invalid?
|
103
|
+
|
86
104
|
update(
|
87
105
|
deleter_type: deleter.class.to_s,
|
88
106
|
deleter_id: deleter.id,
|
@@ -90,7 +108,19 @@ module SoftDeleter
|
|
90
108
|
)
|
91
109
|
end
|
92
110
|
|
111
|
+
def restore_without_associations!
|
112
|
+
raise ActiveRecord::RecordInvalid, self if invalid?
|
113
|
+
|
114
|
+
update(
|
115
|
+
deleter_type: nil,
|
116
|
+
deleter_id: nil,
|
117
|
+
deleted_at: nil
|
118
|
+
)
|
119
|
+
end
|
120
|
+
|
93
121
|
def restore_without_associations
|
122
|
+
raise ActiveRecord::RecordInvalid if invalid?
|
123
|
+
|
94
124
|
update(
|
95
125
|
deleter_type: nil,
|
96
126
|
deleter_id: nil,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soft_deleter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- testCodeV01
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-12-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|