aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-03-02 09:00:42 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2015-03-02 09:17:03 -0800
commitec51c3fedd16b561d096dcc1a6705fdc02ab7666 (patch)
tree3b1cb55a5d49aec5bbc89f412a3eb541f1aabe8b
parent7be50103d518927db347d5b86dafc6f182765323 (diff)
downloadrails-ec51c3fedd16b561d096dcc1a6705fdc02ab7666.tar.gz
rails-ec51c3fedd16b561d096dcc1a6705fdc02ab7666.tar.bz2
rails-ec51c3fedd16b561d096dcc1a6705fdc02ab7666.zip
ask the txn for it's state, not a state object
this way we don't have to mutate a state object, we can just change the state of the txn
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb8
-rw-r--r--activerecord/lib/active_record/core.rb2
-rw-r--r--activerecord/lib/active_record/transactions.rb14
3 files changed, 16 insertions, 8 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index c74f4e8fa5..a51dda5483 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -59,6 +59,14 @@ module ActiveRecord
@state.set_state(:rolledback)
end
+ def rolledback?
+ @state.rolledback?
+ end
+
+ def finalized?
+ @state.finalized?
+ end
+
def rollback_records
ite = records.uniq
while record = ite.shift
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 97ce4642aa..a89931b157 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -503,7 +503,7 @@ module ActiveRecord
@new_record = true
@txn = nil
@_start_transaction_state = {}
- @transaction_state = nil
+ @transaction = nil
end
def initialize_internals_callback
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index ffe7c4ae42..283e1f8736 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -356,7 +356,7 @@ module ActiveRecord
if has_transactional_callbacks?
self.class.connection.add_transaction_record(self)
else
- set_transaction_state(self.class.connection.transaction_state)
+ set_transaction(self.class.connection.current_transaction)
end
remember_transaction_record_state
end
@@ -445,8 +445,8 @@ module ActiveRecord
private
- def set_transaction_state(state) # :nodoc:
- @transaction_state = state
+ def set_transaction(txn) # :nodoc:
+ @transaction = txn
end
def has_transactional_callbacks? # :nodoc:
@@ -471,12 +471,12 @@ module ActiveRecord
# method recursively goes through the parent of the TransactionState and
# checks if the ActiveRecord object reflects the state of the object.
def sync_with_transaction_state
- update_attributes_from_transaction_state(@transaction_state)
+ update_attributes_from_transaction_state(@transaction)
end
- def update_attributes_from_transaction_state(transaction_state)
- if transaction_state && transaction_state.finalized?
- restore_transaction_record_state if transaction_state.rolledback?
+ def update_attributes_from_transaction_state(transaction)
+ if transaction && transaction.finalized?
+ restore_transaction_record_state if transaction.rolledback?
clear_transaction_record_state
end
end