From d1a64101fea51c903f51c5504c825b3ce5c2cff0 Mon Sep 17 00:00:00 2001 From: "Nate Hopkins (hopsoft)" Date: Wed, 3 Jan 2024 17:49:05 -0700 Subject: [PATCH] Only abort if the callback chain has been halted --- lib/turbo_boost/commands/command_callbacks.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/turbo_boost/commands/command_callbacks.rb b/lib/turbo_boost/commands/command_callbacks.rb index df858372..b548d42e 100644 --- a/lib/turbo_boost/commands/command_callbacks.rb +++ b/lib/turbo_boost/commands/command_callbacks.rb @@ -92,14 +92,13 @@ def callback_options(options) halt = false # CONTINUE the callback chain end - # `throw :abort` was invoked - command.send :aborted!, - TurboBoost::Commands::AbortError.new(command: command) + if halt # callback chain halted, meaning `throw` was invoked in a callback + command.send :aborted!, TurboBoost::Commands::AbortError.new(command: command) + end rescue UncaughtThrowError => error # `throw` was invoked without :abort message = "Please use `throw :abort` to abort a command." - command.send :aborted!, - TurboBoost::Commands::AbortError.new(message, command: command, cause: error) + command.send :aborted!, TurboBoost::Commands::AbortError.new(message, command: command, cause: error) rescue => error # unxpected error in callback command.send :errored!, error