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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cascade_deleter.rb +9 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6a0e10f1734aed0dcc89834897e051c0e26bbf463706843f60fa90564e90188a
4
- data.tar.gz: 46fdd8434d43e0ab32c92cfcff66047988023c2494f00e47eff5ea5b87512e7e
3
+ metadata.gz: b934bc407806ec7485cb96761b93cf7f5d10a26f6e8b2ec8da77fa4335c921d6
4
+ data.tar.gz: 9d7e7eff340bd2001e917a73703848a28c204c5a71658fb9a4743c20de1ff5ba
5
5
  SHA512:
6
- metadata.gz: 7dd2d5bb3669bd742fe76fecf44ff5236b47e43c27cddfeaf7cf675ac85f1a8ca0b2dd3d2d1523451c9e08cc43e489502fa06d04e079441b28a67b4c76456c36
7
- data.tar.gz: 7697d23ef95f3661b30a82c29f22882e02d2fdf4c3bdbad12befb8c99255b976c0f8f1d1a1c4e9b1e625a21bac862f80ac12d3a873b83888d5c4efd5a691da00
6
+ metadata.gz: 3986554df3d2ac25ff6c0184b2abd6aeaea462ddcbd7790c8b462ec17aeeb5d1d4bc53528871e9f172fa66b2b1328c0d86731933eaaf1dcc3694b74ad6ad44b1
7
+ data.tar.gz: ae1e25d8873e3f5863ae50b629526c7a648cb91c174e7a6aab82db221cb8a2e2c433917574f7b2263c8e15f1b3609988eca22634f5c60e26daa81fa2e9dc69cf
@@ -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 3: CascadeDeleter.new(Discipline.where_like(description: '[TO BE DELETED]')).delete_all(
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-0.1.0.gem
21
+ # rm cascade-deleter-X.Y.Z.gem
19
22
  # gem build cascade_deleter
20
- # gem install cascade-deleter-0.1.0.gem
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).without('Audited::Audit')
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.0
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-22 00:00:00.000000000 Z
11
+ date: 2023-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hierarchy-tree