lib/purgatory/purgatory.rb in purgatory-2.9.0 vs lib/purgatory/purgatory.rb in purgatory-2.10.0

- old
+ new

@@ -34,14 +34,18 @@ def sti_class requested_changes['type'].try(:last) end - def approve!(approver = nil) - return false if approved? + def soul_with_changes requested_changes.each{|k,v| soul.send(:write_attribute, k, v[1])} attr_accessor_fields.each{|k,v| soul.instance_variable_set(k, v)} - if soul.save + soul + end + + def approve!(approver = nil) + return false if approved? + if soul_with_changes.save self.approver = approver self.approved_at = Time.now save return true end