aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Neves <arthurnn@gmail.com>2014-07-28 14:26:27 -0400
committerArthur Neves <arthurnn@gmail.com>2014-07-31 15:46:08 -0400
commit91e4b65093f0c485507dadcb018c1f0d2661ba89 (patch)
tree7fe3b70843f083e860e4beab56c0aa3b8bc492b1
parent160cc6956c3c9da0eab66546d3c266d9f317bbc1 (diff)
downloadrails-91e4b65093f0c485507dadcb018c1f0d2661ba89.tar.gz
rails-91e4b65093f0c485507dadcb018c1f0d2661ba89.tar.bz2
rails-91e4b65093f0c485507dadcb018c1f0d2661ba89.zip
Remove being/number methods from transaction class
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb35
-rw-r--r--activerecord/test/cases/transactions_test.rb4
2 files changed, 10 insertions, 29 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index 33cc22425d..1691daf861 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -8,7 +8,7 @@ module ActiveRecord
def begin_transaction(options = {})
transaction_class = @stack.empty? ? RealTransaction : SavepointTransaction
- transaction = transaction_class.new(@connection, current_transaction, options)
+ transaction = transaction_class.new(@connection, current_transaction, "active_record_#{@stack.size}", options)
@stack.push(transaction)
transaction
@@ -102,14 +102,6 @@ module ActiveRecord
end
class ClosedTransaction < Transaction #:nodoc:
- def number
- 0
- end
-
- def begin(options = {})
- RealTransaction.new(connection, self, options)
- end
-
def closed?
true
end
@@ -144,14 +136,6 @@ module ActiveRecord
@joinable
end
- def number
- parent.number + 1
- end
-
- def begin(options = {})
- SavepointTransaction.new(connection, self, options)
- end
-
def rollback
perform_rollback
parent
@@ -202,8 +186,8 @@ module ActiveRecord
end
class RealTransaction < OpenTransaction #:nodoc:
- def initialize(connection, parent, options = {})
- super
+ def initialize(connection, parent, _, options = {})
+ super(connection, parent, options)
if options[:isolation]
connection.begin_isolated_db_transaction(options[:isolation])
@@ -226,26 +210,23 @@ module ActiveRecord
class SavepointTransaction < OpenTransaction #:nodoc:
attr_reader :savepoint_name
- def initialize(connection, parent, options = {})
+ def initialize(connection, parent, savepoint_name, options = {})
if options[:isolation]
raise ActiveRecord::TransactionIsolationError, "cannot set transaction isolation in a nested transaction"
end
- super
-
- # Savepoint name only counts the Savepoint transactions, so we need to subtract 1
- @savepoint_name = "active_record_#{number - 1}"
- connection.create_savepoint(@savepoint_name)
+ super(connection, parent, options)
+ connection.create_savepoint(@savepoint_name = savepoint_name)
end
def perform_rollback
- connection.rollback_to_savepoint(@savepoint_name)
+ connection.rollback_to_savepoint(savepoint_name)
rollback_records
end
def perform_commit
@state.set_state(:committed)
- connection.release_savepoint(@savepoint_name)
+ connection.release_savepoint(savepoint_name)
end
end
end
diff --git a/activerecord/test/cases/transactions_test.rb b/activerecord/test/cases/transactions_test.rb
index f28a7b00e2..e518033192 100644
--- a/activerecord/test/cases/transactions_test.rb
+++ b/activerecord/test/cases/transactions_test.rb
@@ -546,7 +546,7 @@ class TransactionTest < ActiveRecord::TestCase
def test_transactions_state_from_rollback
connection = Topic.connection
- transaction = ActiveRecord::ConnectionAdapters::ClosedTransaction.new(connection).begin
+ transaction = ActiveRecord::ConnectionAdapters::TransactionManager.new(connection).begin_transaction
assert transaction.open?
assert !transaction.state.rolledback?
@@ -560,7 +560,7 @@ class TransactionTest < ActiveRecord::TestCase
def test_transactions_state_from_commit
connection = Topic.connection
- transaction = ActiveRecord::ConnectionAdapters::ClosedTransaction.new(connection).begin
+ transaction = ActiveRecord::ConnectionAdapters::TransactionManager.new(connection).begin_transaction
assert transaction.open?
assert !transaction.state.rolledback?