lib/mongoid/history/attributes/destroy.rb
module Mongoid
module History
module Attributes
class Destroy < ::Mongoid::History::Attributes::Base
def attributes
@attributes = {}
trackable.attributes.each { |k, v| @attributes[k] = [format_field(k, v), nil] if trackable_class.tracked_field?(k, :destroy) }
insert_embeds_one_changes
insert_embeds_many_changes
@attributes
end
private
def insert_embeds_one_changes
trackable_class.tracked_embeds_one
.map { |rel| aliased_fields.key(rel) || rel }
.each do |rel|
obj = trackable.send(rel)
@attributes[rel] = [format_embeds_one_relation(rel, obj.attributes), nil] if obj
end
end
def insert_embeds_many_changes
trackable_class.tracked_embeds_many
.map { |rel| aliased_fields.key(rel) || rel }
.each do |rel|
@attributes[rel] = [trackable.send(rel).map { |obj| format_embeds_many_relation(rel, obj.attributes) }, nil]
end
end
end
end
end
end