af83/chouette-core

View on GitHub
app/lib/chouette/checksum_manager/base.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Chouette::ChecksumManager
  class Base
    def child_after_save object
      if object.saved_changes.present? || object.destroyed?
        parents = Chouette::ChecksumManager.checksum_parents object
        log "Request from #{object.class.name}##{object.id} checksum updates for #{parents.count} parent(s): #{Chouette::ChecksumManager.parents_to_sentence(parents)}"
        parents.each { |parent| Chouette::ChecksumManager.watch parent, from: object }
      end
    end

    def object_signature object
      Chouette::ChecksumManager.object_signature object
    end

    def after_create object
    end

    def after_destroy object
    end

    def log msg
      Chouette::ChecksumManager.log msg
    end

    def update_object_synchronously object, force_save: false
      serialized_object = SerializedObject.new(object, load_object: true)
      if serialized_object.need_save || force_save
        serialized_object.object.update_checksum_without_callbacks!
      else
        serialized_object.object.set_current_checksum_source
        serialized_object.object.update_checksum
      end
    end
  end
end