lib/purgatory/purgatory.rb in purgatory-2.1.0 vs lib/purgatory/purgatory.rb in purgatory-2.2.0
- old
+ new
@@ -4,10 +4,12 @@
belongs_to :approver, class_name: 'User'
before_create :store_changes
validates :soul_type, presence: true
+ serialize :requested_changes
+
def self.pending
where(approved_at: nil)
end
def self.approved
@@ -20,21 +22,17 @@
def pending?
approved_at.nil?
end
- def changes_hash
- ActiveSupport::JSON.decode(changes_json)
- end
-
def soul
@soul ||= (super || soul_type.constantize.new)
end
def approve!(approver = nil)
return false if approved?
- changes_hash.each{|k,v| soul.send "#{k}=", v[1]}
+ requested_changes.each{|k,v| soul.send "#{k}=", v[1]}
if soul.save
self.approver = approver
self.approved_at = Time.now
save
return true
@@ -43,8 +41,8 @@
end
private
def store_changes
- self.changes_json = ActiveSupport::JSON.encode(soul.changes)
+ self.requested_changes = soul.changes
end
end