From 885f3ae39020e95febfa402f7206f3d69fb29137 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Wed, 15 Jan 2014 21:06:53 -0200 Subject: Avoid converting :on option to array twice when defining commit/rollback callbacks --- activerecord/lib/active_record/transactions.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 45313b5e75..5423e689b9 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -243,15 +243,14 @@ module ActiveRecord def set_options_for_callbacks!(args) options = args.last if options.is_a?(Hash) && options[:on] - assert_valid_transaction_action(options[:on]) - options[:if] = Array(options[:if]) fire_on = Array(options[:on]) + assert_valid_transaction_action(fire_on) + options[:if] = Array(options[:if]) options[:if] << "transaction_include_any_action?(#{fire_on})" end end def assert_valid_transaction_action(actions) - actions = Array(actions) if (actions - ACTIONS).any? raise ArgumentError, ":on conditions for after_commit and after_rollback callbacks have to be one of #{ACTIONS.join(",")}" end -- cgit v1.2.3 From f2f723bca931c368bf9391b46c57ffd98c6b4fa5 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Wed, 15 Jan 2014 21:15:25 -0200 Subject: Get rid of unused TransactionError constant This has been added 9 years ago in a677da209b16f43198b3485dda89dce862fb9bfb, and removed 6 years ago in 38f8252e2d0a109d1b833d6b289cd989e7bfffe4. --- activerecord/lib/active_record/transactions.rb | 3 --- 1 file changed, 3 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 5423e689b9..3f6f4748c6 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -6,9 +6,6 @@ module ActiveRecord extend ActiveSupport::Concern ACTIONS = [:create, :destroy, :update] - class TransactionError < ActiveRecordError # :nodoc: - end - included do define_callbacks :commit, :rollback, terminator: ->(_, result) { result == false }, -- cgit v1.2.3 From 177989c6c0bfaffbb9dbf034b3b01d6e3edf1429 Mon Sep 17 00:00:00 2001 From: Harry Brundage Date: Mon, 26 Aug 2013 13:15:37 -0400 Subject: Make AR::Base#touch fire the after_commit and after_rollback callbacks --- activerecord/lib/active_record/transactions.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb index 3f6f4748c6..c33ffeece0 100644 --- a/activerecord/lib/active_record/transactions.rb +++ b/activerecord/lib/active_record/transactions.rb @@ -273,6 +273,10 @@ module ActiveRecord with_transaction_returning_status { super } end + def touch(*) #:nodoc: + with_transaction_returning_status { super } + end + # Reset id and @new_record if the transaction rolls back. def rollback_active_record_state! remember_transaction_record_state -- cgit v1.2.3