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 | 
