aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/transactions.rb
diff options
context:
space:
mode:
authorwycats <wycats@gmail.com>2010-05-09 02:06:05 +0300
committerwycats <wycats@gmail.com>2010-05-09 02:37:52 +0300
commitd916c62cfc7c59ab6411407a05b946d3dd7535e9 (patch)
tree653ac4017ea6af4520dd9e6f60d846e19d5e3074 /activerecord/lib/active_record/transactions.rb
parent636ffa1f089a51c98fce616191846eaba93d7b87 (diff)
downloadrails-d916c62cfc7c59ab6411407a05b946d3dd7535e9.tar.gz
rails-d916c62cfc7c59ab6411407a05b946d3dd7535e9.tar.bz2
rails-d916c62cfc7c59ab6411407a05b946d3dd7535e9.zip
eliminate alias_method_chain from ActiveRecord
Diffstat (limited to 'activerecord/lib/active_record/transactions.rb')
-rw-r--r--activerecord/lib/active_record/transactions.rb22
1 files changed, 10 insertions, 12 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index 1a195fbb81..5a8e2ce880 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -9,10 +9,6 @@ module ActiveRecord
end
included do
- [:destroy, :save, :save!].each do |method|
- alias_method_chain method, :transactions
- end
-
define_model_callbacks :commit, :commit_on_update, :commit_on_create, :commit_on_destroy, :only => :after
define_model_callbacks :rollback, :rollback_on_update, :rollback_on_create, :rollback_on_destroy
end
@@ -213,16 +209,18 @@ module ActiveRecord
self.class.transaction(&block)
end
- def destroy_with_transactions #:nodoc:
- with_transaction_returning_status(:destroy_without_transactions)
+ def destroy #:nodoc:
+ with_transaction_returning_status { super }
end
- def save_with_transactions(*args) #:nodoc:
- rollback_active_record_state! { with_transaction_returning_status(:save_without_transactions, *args) }
+ def save(*) #:nodoc:
+ rollback_active_record_state! do
+ with_transaction_returning_status { super }
+ end
end
- def save_with_transactions! #:nodoc:
- with_transaction_returning_status(:save_without_transactions!)
+ def save!(*) #:nodoc:
+ with_transaction_returning_status { super }
end
# Reset id and @new_record if the transaction rolls back.
@@ -279,11 +277,11 @@ module ActiveRecord
#
# This method is available within the context of an ActiveRecord::Base
# instance.
- def with_transaction_returning_status(method, *args)
+ def with_transaction_returning_status
status = nil
self.class.transaction do
add_to_transaction
- status = send(method, *args)
+ status = yield
raise ActiveRecord::Rollback unless status
end
status