aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorArthur Neves <arthurnn@gmail.com>2014-07-31 16:25:51 -0400
committerArthur Neves <arthurnn@gmail.com>2014-07-31 16:25:51 -0400
commit62c75f4eacf6466a3bd1b22f97cda7ab7b597064 (patch)
tree74627270b4f1ccd94493374b1b055fae3465dd4f /activerecord
parent88882964de8134c05355f8cfb303c4fc33a302bc (diff)
downloadrails-62c75f4eacf6466a3bd1b22f97cda7ab7b597064.tar.gz
rails-62c75f4eacf6466a3bd1b22f97cda7ab7b597064.tar.bz2
rails-62c75f4eacf6466a3bd1b22f97cda7ab7b597064.zip
Move TransactionManager to bottom of class
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb134
1 files changed, 67 insertions, 67 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index ff7f922d7f..e6a53b2122 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -1,72 +1,5 @@
module ActiveRecord
module ConnectionAdapters
- class TransactionManager #:nodoc:
- def initialize(connection)
- @stack = []
- @connection = connection
- end
-
- def begin_transaction(options = {})
- transaction_class = @stack.empty? ? RealTransaction : SavepointTransaction
- transaction = transaction_class.new(@connection, "active_record_#{@stack.size}", options)
-
- @stack.push(transaction)
- transaction
- end
-
- def commit_transaction
- @stack.pop.commit
- end
-
- def rollback_transaction
- @stack.pop.rollback
- end
-
- def within_new_transaction(options = {})
- transaction = begin_transaction options
- yield
- rescue Exception => error
- transaction.rollback if transaction
- raise
- ensure
- begin
- transaction.commit unless error
- rescue Exception
- transaction.rollback
- raise
- ensure
- @stack.pop if transaction
- end
- end
-
- def open_transactions
- @stack.size
- end
-
- def current_transaction
- @stack.last || closed_transaction
- end
-
- private
-
- def closed_transaction
- @closed_transaction ||= ClosedTransaction.new
- end
- end
-
- class Transaction #:nodoc:
- attr_reader :connection, :state
-
- def initialize(connection)
- @connection = connection
- @state = TransactionState.new
- end
-
- def savepoint_name
- nil
- end
- end
-
class TransactionState
attr_reader :parent
@@ -97,6 +30,19 @@ module ActiveRecord
end
end
+ class Transaction #:nodoc:
+ attr_reader :connection, :state
+
+ def initialize(connection)
+ @connection = connection
+ @state = TransactionState.new
+ end
+
+ def savepoint_name
+ nil
+ end
+ end
+
class ClosedTransaction < Transaction #:nodoc:
def initialize; super(nil); end
def closed?; true; end
@@ -212,5 +158,59 @@ module ActiveRecord
connection.release_savepoint(savepoint_name)
end
end
+
+ class TransactionManager #:nodoc:
+ def initialize(connection)
+ @stack = []
+ @connection = connection
+ end
+
+ def begin_transaction(options = {})
+ transaction_class = @stack.empty? ? RealTransaction : SavepointTransaction
+ transaction = transaction_class.new(@connection, "active_record_#{@stack.size}", options)
+
+ @stack.push(transaction)
+ transaction
+ end
+
+ def commit_transaction
+ @stack.pop.commit
+ end
+
+ def rollback_transaction
+ @stack.pop.rollback
+ end
+
+ def within_new_transaction(options = {})
+ transaction = begin_transaction options
+ yield
+ rescue Exception => error
+ transaction.rollback if transaction
+ raise
+ ensure
+ begin
+ transaction.commit unless error
+ rescue Exception
+ transaction.rollback
+ raise
+ ensure
+ @stack.pop if transaction
+ end
+ end
+
+ def open_transactions
+ @stack.size
+ end
+
+ def current_transaction
+ @stack.last || closed_transaction
+ end
+
+ private
+
+ def closed_transaction
+ @closed_transaction ||= ClosedTransaction.new
+ end
+ end
end
end