aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
diff options
context:
space:
mode:
authorwangjohn <wangjohn@mit.edu>2013-01-20 12:40:36 -0500
committerwangjohn <wangjohn@mit.edu>2013-01-20 12:40:36 -0500
commit0355962c277e8fe696f5568037b5804d014cb1fe (patch)
tree664ec57fd54d134481f411ae2c82d93c7b439eb6 /activerecord/lib/active_record/connection_adapters
parentf48a16bdb249ada93995ab3e37e19c34e64334fd (diff)
downloadrails-0355962c277e8fe696f5568037b5804d014cb1fe.tar.gz
rails-0355962c277e8fe696f5568037b5804d014cb1fe.tar.bz2
rails-0355962c277e8fe696f5568037b5804d014cb1fe.zip
Created state for a transaction and added tests.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index 4cca94e40b..2b8026dbf9 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -5,7 +5,17 @@ module ActiveRecord
def initialize(connection)
@connection = connection
+ @state = nil
end
+
+ def committed?
+ @state == :commit
+ end
+
+ def rolledback?
+ @state == :rollback
+ end
+
end
class ClosedTransaction < Transaction #:nodoc:
@@ -91,6 +101,7 @@ module ActiveRecord
end
def rollback_records
+ @state = :rollback
records.uniq.each do |record|
begin
record.rolledback!(parent.closed?)
@@ -101,6 +112,7 @@ module ActiveRecord
end
def commit_records
+ @state = :commit
records.uniq.each do |record|
begin
record.committed!