diff options
| -rw-r--r-- | app/models/concerns/checksum_support.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/app/models/concerns/checksum_support.rb b/app/models/concerns/checksum_support.rb index 97209f810..696844fbd 100644 --- a/app/models/concerns/checksum_support.rb +++ b/app/models/concerns/checksum_support.rb @@ -14,10 +14,13 @@ module ChecksumSupport parent_class = self belongs_to = opts[:relation] || self.model_name.singular has_many = opts[:relation] || self.model_name.plural + + Rails.logger.debug "Define callback in #{klass} to update checksums #{self.model_name} (via #{has_many}/#{belongs_to})" klass.after_save do parents = [] parents << self.send(belongs_to) if klass.reflections[belongs_to].present? parents += self.send(has_many) if klass.reflections[has_many].present? + Rails.logger.debug "Request from #{klass.name} checksum updates for #{parents.count} #{parent_class} parent(s)" parents.each &:update_checksum_without_callbacks! end end @@ -60,22 +63,24 @@ module ChecksumSupport def update_checksum if self.checksum_source_changed? self.checksum = Digest::SHA256.new.hexdigest(self.checksum_source) + Rails.logger.debug("Changed #{self.class.name}:#{id} checksum: #{self.checksum}") end end def update_checksum! - set_current_checksum_source - if checksum_source_changed? - update checksum: Digest::SHA256.new.hexdigest(checksum_source) - end + _checksum_source = current_checksum_source + update checksum_source: _checksum_source, checksum: Digest::SHA256.new.hexdigest(_checksum_source) + Rails.logger.debug("Updated #{self.class.name}:#{id} checksum: #{self.checksum}") end def update_checksum_without_callbacks! set_current_checksum_source _checksum = Digest::SHA256.new.hexdigest(checksum_source) + Rails.logger.debug("Compute checksum for #{self.class.name}:#{id} checksum_source:'#{checksum_source}' checksum: #{_checksum}") if _checksum != self.checksum self.checksum = _checksum self.class.where(id: self.id).update_all(checksum: _checksum) unless self.new_record? + Rails.logger.debug("Updated #{self.class.name}:#{id} checksum: #{self.checksum}") end end end |
