def revision_with(attributes)
self.dup.tap do |revision|
revision.id = id
revision.send :instance_variable_set, '@attributes', self.attributes
revision.send :instance_variable_set, '@new_record', self.destroyed?
revision.send :instance_variable_set, '@persisted', !self.destroyed?
revision.send :instance_variable_set, '@readonly', 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)
for ivar in revision.instance_variables
proxy = revision.instance_variable_get ivar
if !proxy.nil? and proxy.respond_to? :proxy_respond_to?
revision.instance_variable_set ivar, nil
end
end
end
end