From db900add077e37da508ca0fea5c805e157acde37 Mon Sep 17 00:00:00 2001 From: Sam Halicke Date: Thu, 1 May 2014 15:36:41 -0700 Subject: [PATCH] Add if block_given to yield in AR callback statements This commit adds an if block_given? qualifier to the ActiveRecord callbacks. If no block is given and these functions are called, a JumpError is raised. This fixes that issue. --- lib/replicate/active_record.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/replicate/active_record.rb b/lib/replicate/active_record.rb index 0889fdc..2980cef 100644 --- a/lib/replicate/active_record.rb +++ b/lib/replicate/active_record.rb @@ -300,12 +300,12 @@ def create_or_update_replicant(instance, attributes) def replicate_disable_callbacks(instance) if ::ActiveRecord::VERSION::MAJOR >= 3 # AR 3.1.x - def instance.run_callbacks(*args); yield; end + def instance.run_callbacks(*args); yield if block_given?; end # AR 3.0.x - def instance._run_save_callbacks(*args); yield; end - def instance._run_create_callbacks(*args); yield; end - def instance._run_update_callbacks(*args); yield; end + def instance._run_save_callbacks(*args); yield if block_given?; end + def instance._run_create_callbacks(*args); yield if block_given?; end + def instance._run_update_callbacks(*args); yield if block_given?; end else # AR 2.x def instance.callback(*args)