def revision_with(attributes)
dup.tap do |revision|
revision.id = id
revision.send :instance_variable_set, '@attributes', self.attributes if rails_below?('4.2.0')
revision.send :instance_variable_set, '@new_record', destroyed?
revision.send :instance_variable_set, '@persisted', !destroyed?
revision.send :instance_variable_set, '@readonly', false
revision.send :instance_variable_set, '@destroyed', false
revision.send :instance_variable_set, '@_destroyed', false
revision.send :instance_variable_set, '@marked_for_destruction', false
Audited.audit_class.assign_revision_attributes(revision, attributes)
revision.instance_variables.each do |ivar|
proxy = revision.instance_variable_get ivar
if !proxy.nil? && proxy.respond_to?(:proxy_respond_to?)
revision.instance_variable_set ivar, nil
end
end
end
end