class Mongoid::History::Attributes::Create
Public Instance Methods
attributes()
click to toggle source
# File lib/mongoid/history/attributes/create.rb, line 5 def attributes @attributes = {} changes.each do |k, v| next unless trackable_class.tracked_field?(k, :create) @attributes[k] = format_field(k, v) end insert_embeds_one_changes insert_embeds_many_changes @attributes end
Private Instance Methods
insert_embeds_many_changes()
click to toggle source
# File lib/mongoid/history/attributes/create.rb, line 30 def insert_embeds_many_changes trackable_class.tracked_embeds_many.each do |rel| rel_class = trackable_class.relation_class_of(rel) paranoia_field = Mongoid::History.trackable_class_settings(rel_class)[:paranoia_field] paranoia_field = rel_class.aliased_fields.key(paranoia_field) || paranoia_field rel = aliased_fields.key(rel) || rel @attributes[rel] = [nil, trackable.send(rel) .reject { |obj| obj.respond_to?(paranoia_field) && obj.public_send(paranoia_field).present? } .map { |obj| format_embeds_many_relation(rel, obj.attributes) }] end end
insert_embeds_one_changes()
click to toggle source
# File lib/mongoid/history/attributes/create.rb, line 18 def insert_embeds_one_changes trackable_class.tracked_embeds_one.each do |rel| rel_class = trackable_class.relation_class_of(rel) paranoia_field = Mongoid::History.trackable_class_settings(rel_class)[:paranoia_field] paranoia_field = rel_class.aliased_fields.key(paranoia_field) || paranoia_field rel = aliased_fields.key(rel) || rel obj = trackable.send(rel) next if !obj || (obj.respond_to?(paranoia_field) && obj.public_send(paranoia_field).present?) @attributes[rel] = [nil, format_embeds_one_relation(rel, obj.attributes)] end end