cascade-deleter 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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