Sha256: c485a000fb09118d87bbcec735607b83ccf20bf04c65197b57d7958975160d14

Contents?: true

Size: 918 Bytes

Versions: 2

Compression:

Stored size: 918 Bytes

Contents

# frozen_string_literal: true
require 'active_record'

module ActiveModelCachers::Hook
  module OnModelDelete
    module InstanceMethods
      def delete
        self.class.delete(id, self) if persisted?
        @destroyed = true
        freeze
      end
    end

    module ClassMethods
      def delete(id, model = nil)
        ActiveModelCachers::ActiveRecord::Extension.global_callbacks.pre_before_delete.exec(self, self, id, model)
        ActiveModelCachers::ActiveRecord::Extension.global_callbacks.before_delete.exec(self, self, id, model)

        result = super(id)

        ActiveModelCachers::ActiveRecord::Extension.global_callbacks.after_delete.exec(self, self, id, model)
        return result
      end
    end
  end
end

ActiveRecord::Base.send(:include, ActiveModelCachers::Hook::OnModelDelete::InstanceMethods)
ActiveRecord::Base.send(:extend, ActiveModelCachers::Hook::OnModelDelete::ClassMethods)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_model_cachers-2.1.4 lib/active_model_cachers/hook/on_model_delete.rb
active_model_cachers-2.1.3 lib/active_model_cachers/hook/on_model_delete.rb