Small refactoring on clear_transaction_record_state

Make sure when we clean the `@_start_transaction_state` var we do it in
the same code-path.
Also this makes `clear_transaction_record_state`, more consistent with `restore_transaction_record_state`
This commit is contained in:
Arthur Neves 2014-05-15 13:56:44 -04:00
parent 16a8a68b7e
commit e3d223bcce
No known key found for this signature in database
GPG Key ID: 04A390FB1E433E17

@ -295,7 +295,7 @@ def rollback_active_record_state!
def committed! #:nodoc:
run_callbacks :commit if destroyed? || persisted?
ensure
@_start_transaction_state.clear
clear_transaction_record_state(true)
end
# Call the +after_rollback+ callbacks. The +force_restore_state+ argument indicates if the record
@ -353,9 +353,11 @@ def remember_transaction_record_state #:nodoc:
end
# Clear the new record state and id of a record.
def clear_transaction_record_state #:nodoc:
def clear_transaction_record_state(force = false) #:nodoc:
@_start_transaction_state[:level] = (@_start_transaction_state[:level] || 0) - 1
@_start_transaction_state.clear if @_start_transaction_state[:level] < 1
if force || @_start_transaction_state[:level] < 1
@_start_transaction_state.clear
end
end
# Restore the new record state and id of a record that was previously saved by a call to save_record_state.