diff options
| author | Alban Peignier | 2018-04-25 20:32:15 +0200 |
|---|---|---|
| committer | Alban Peignier | 2018-04-25 20:32:15 +0200 |
| commit | 7ccff199edb73a277ee15ac95d36f6b50df896fb (patch) | |
| tree | d11d40a58b1498ece309c1c8b7dc9005adcb69fe | |
| parent | 015fb3796c2c91f206c8e1addac7996b1c0a94d6 (diff) | |
| download | chouette-core-7ccff199edb73a277ee15ac95d36f6b50df896fb.tar.bz2 | |
Add debug in ChecksumSupport. Change update_checksum! to save both checksum_source and checksum. Refs #6711
| -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 |
