70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/activerecord_bulkoperation/util/flush_dirty_objects.rb', line 70
def flush(args = {})
fail 'nil object' unless args
affected = 0
@scheduled_deletions.each_pair_in_detail_hierarchy do |k, v|
affected += k.delete_group(v, args)
@scheduled_deletions[k] = nil
v.each { |record| record.on_closed_scheduled_operation }
end
@scheduled_merges.each_pair_in_master_hierarchy do |k, v|
affected += k.merge_group( v.insert_or_update, args )
v.insert_on_missing.each_pair do |keys,records|
affected += k.insert_on_missing_group( keys, records, args )
end
@scheduled_merges[k] = nil
v.insert_or_update.each { |record| record.on_closed_scheduled_operation }
v.insert_on_missing.values.each { |array| array.each{ |record| record.on_closed_scheduled_operation } }
end
affected
end
|