cascade-deleter 0.1.0 → 0.1.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/lib/cascade_deleter.rb +9 -5
- 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: b934bc407806ec7485cb96761b93cf7f5d10a26f6e8b2ec8da77fa4335c921d6
|
4
|
+
data.tar.gz: 9d7e7eff340bd2001e917a73703848a28c204c5a71658fb9a4743c20de1ff5ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3986554df3d2ac25ff6c0184b2abd6aeaea462ddcbd7790c8b462ec17aeeb5d1d4bc53528871e9f172fa66b2b1328c0d86731933eaaf1dcc3694b74ad6ad44b1
|
7
|
+
data.tar.gz: ae1e25d8873e3f5863ae50b629526c7a648cb91c174e7a6aab82db221cb8a2e2c433917574f7b2263c8e15f1b3609988eca22634f5c60e26daa81fa2e9dc69cf
|
data/lib/cascade_deleter.rb
CHANGED
@@ -7,17 +7,20 @@ require 'deactivator'
|
|
7
7
|
# 2. No validations or callbacks will be triggered
|
8
8
|
# Usage 1: CascadeDeleter.new(Project.unscoped.where(active: false)).delete_all
|
9
9
|
# Usage 2: CascadeDeleter.new(Project.unscoped.where(active: false)).delete_all(
|
10
|
+
# except: ['Audited::Audit', 'Picture', 'Attachment']
|
11
|
+
# )
|
12
|
+
# Usage 3: CascadeDeleter.new(Project.unscoped.where(active: false)).delete_all(
|
10
13
|
# custom_joins: { 'Attachment' => {:subproject=>:project} }
|
11
14
|
# )
|
12
|
-
# Usage
|
15
|
+
# Usage 4: CascadeDeleter.new(Discipline.where_like(description: '[TO BE DELETED]')).delete_all(
|
13
16
|
# method: :soft
|
14
17
|
# )
|
15
18
|
|
16
19
|
################ Debug ################
|
17
20
|
# gem cleanup cascade-deleter
|
18
|
-
# rm cascade-deleter-
|
21
|
+
# rm cascade-deleter-X.Y.Z.gem
|
19
22
|
# gem build cascade_deleter
|
20
|
-
# gem install cascade-deleter-
|
23
|
+
# gem install cascade-deleter-X.Y.Z.gem
|
21
24
|
# ruby -Itest test/test_cascade_deleter.rb
|
22
25
|
class CascadeDeleter
|
23
26
|
def initialize(items)
|
@@ -26,7 +29,8 @@ class CascadeDeleter
|
|
26
29
|
@classes = classes
|
27
30
|
end
|
28
31
|
|
29
|
-
def delete_all(custom_joins: {}, method: :hard)
|
32
|
+
def delete_all(except: [], custom_joins: {}, method: :hard)
|
33
|
+
@classes = @classes.without(*except)
|
30
34
|
Deactivator.new(@classes).without_default_scopes do
|
31
35
|
ActiveRecord::Base.connection.execute('SET FOREIGN_KEY_CHECKS = 0;')
|
32
36
|
|
@@ -43,7 +47,7 @@ class CascadeDeleter
|
|
43
47
|
private
|
44
48
|
|
45
49
|
def classes
|
46
|
-
Hierarchy.bottom_up_classes(@class)
|
50
|
+
Hierarchy.bottom_up_classes(@class)
|
47
51
|
end
|
48
52
|
|
49
53
|
def delete(klass, join, method)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cascade-deleter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Cordeiro Costa
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hierarchy-tree
|