bulk_dependency_eraser 1.4.1 → 1.4.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 734c542b83d1cf827cadf8a8a41c30d8a86ebe7f98e539e0bdce4777f917c2e9
|
4
|
+
data.tar.gz: fedb350237abe9898c2d54077db57c1c500b76c99c6913431c2445f5fd49293a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b69927dd186b6eac307ff85a5bd06783245c5173a6d890ff29a8abb42edbf8df105a3ed592cf3ae92f649c4547f32c289316b83ae7f02d19233a05d9a2a5d47
|
7
|
+
data.tar.gz: 9a4febdbdd779faf17bc332b8853c41bb727e722fea564ed45a8b871ee53f8e4677983c2459a4894a4304c90397a48fa927d41609e4558033ee24c43badbc4b7
|
@@ -37,17 +37,18 @@ module BulkDependencyEraser
|
|
37
37
|
|
38
38
|
protected
|
39
39
|
|
40
|
-
def
|
40
|
+
def custom_scope_for_query(query)
|
41
|
+
klass = query.klass
|
41
42
|
if opts_c.proc_scopes_per_class_name.key?(klass.name)
|
42
|
-
opts_c.proc_scopes_per_class_name[klass.name]
|
43
|
+
opts_c.proc_scopes_per_class_name[klass.name].call(query)
|
43
44
|
else
|
44
45
|
# See if non-class-mapped proc returns a value
|
45
|
-
non_class_name_mapped_query = opts_c.proc_scopes.call(
|
46
|
+
non_class_name_mapped_query = opts_c.proc_scopes.call(query)
|
46
47
|
if !non_class_name_mapped_query.nil?
|
47
|
-
return
|
48
|
+
return non_class_name_mapped_query
|
48
49
|
else
|
49
50
|
# No custom wrapper, return non-effect default
|
50
|
-
return self.class::DEFAULT_KLASS_MAPPED_SCOPE_WRAPPER
|
51
|
+
return self.class::DEFAULT_KLASS_MAPPED_SCOPE_WRAPPER.call(query)
|
51
52
|
end
|
52
53
|
end
|
53
54
|
end
|
@@ -163,11 +163,12 @@ module BulkDependencyEraser
|
|
163
163
|
attr_reader :table_names_to_parsed_klass_names
|
164
164
|
attr_reader :ignore_table_name_and_dependencies, :ignore_klass_name_and_dependencies
|
165
165
|
|
166
|
-
def
|
166
|
+
def custom_scope_for_query(query)
|
167
|
+
klass = query.klass
|
167
168
|
if opts_c.reading_proc_scopes_per_class_name.key?(klass.name)
|
168
|
-
opts_c.reading_proc_scopes_per_class_name[klass.name]
|
169
|
+
opts_c.reading_proc_scopes_per_class_name[klass.name].call(query)
|
169
170
|
else
|
170
|
-
super(
|
171
|
+
super(query)
|
171
172
|
end
|
172
173
|
end
|
173
174
|
|
@@ -175,7 +176,7 @@ module BulkDependencyEraser
|
|
175
176
|
# ordering shouldn't matter in these queries, and would slow it down
|
176
177
|
# - we're ignoring default_scope ordering, but assoc-defined ordering would still take effect
|
177
178
|
query = query.reorder('')
|
178
|
-
query =
|
179
|
+
query = custom_scope_for_query(query)
|
179
180
|
|
180
181
|
query_ids = []
|
181
182
|
read_from_db do
|
@@ -639,7 +640,7 @@ module BulkDependencyEraser
|
|
639
640
|
return
|
640
641
|
end
|
641
642
|
|
642
|
-
query =
|
643
|
+
query = custom_scope_for_query(query)
|
643
644
|
|
644
645
|
foreign_ids_by_type = read_from_db do
|
645
646
|
if batching_disabled? || !query.where({}).limit_value.nil?
|
@@ -77,11 +77,12 @@ module BulkDependencyEraser
|
|
77
77
|
|
78
78
|
attr_reader :class_names_and_ids
|
79
79
|
|
80
|
-
def
|
80
|
+
def custom_scope_for_query(query)
|
81
|
+
klass = query.klass
|
81
82
|
if opts_c.deletion_proc_scopes_per_class_name.key?(klass.name)
|
82
|
-
opts_c.deletion_proc_scopes_per_class_name[klass.name]
|
83
|
+
opts_c.deletion_proc_scopes_per_class_name[klass.name].call(query)
|
83
84
|
else
|
84
|
-
super(
|
85
|
+
super(query)
|
85
86
|
end
|
86
87
|
end
|
87
88
|
|
@@ -96,7 +97,7 @@ module BulkDependencyEraser
|
|
96
97
|
def delete_by_klass_and_ids klass, ids
|
97
98
|
puts "Deleting #{klass.name}'s IDs: #{ids}" if opts_c.verbose
|
98
99
|
query = klass.unscoped
|
99
|
-
query =
|
100
|
+
query = custom_scope_for_query(query)
|
100
101
|
|
101
102
|
if batching_disabled?
|
102
103
|
puts "Deleting without batching" if opts_c.verbose
|
@@ -135,11 +135,12 @@ module BulkDependencyEraser
|
|
135
135
|
|
136
136
|
attr_reader :class_names_columns_and_ids
|
137
137
|
|
138
|
-
def
|
138
|
+
def custom_scope_for_query(query)
|
139
|
+
klass = query.klass
|
139
140
|
if opts_c.nullification_proc_scopes_per_class_name.key?(klass.name)
|
140
|
-
opts_c.nullification_proc_scopes_per_class_name[klass.name]
|
141
|
+
opts_c.nullification_proc_scopes_per_class_name[klass.name].call(query)
|
141
142
|
else
|
142
|
-
super(
|
143
|
+
super(query)
|
143
144
|
end
|
144
145
|
end
|
145
146
|
|
@@ -153,7 +154,7 @@ module BulkDependencyEraser
|
|
153
154
|
|
154
155
|
def nullify_by_klass_column_and_ids klass, columns, ids
|
155
156
|
query = klass.unscoped
|
156
|
-
query =
|
157
|
+
query = custom_scope_for_query(query)
|
157
158
|
|
158
159
|
nullify_columns = {}
|
159
160
|
# supporting nullification of groups of columns simultaneously
|