diff --git a/lib/rabbit/command/rabbit.rb b/lib/rabbit/command/rabbit.rb index b7ae59b3..aa290dbe 100644 --- a/lib/rabbit/command/rabbit.rb +++ b/lib/rabbit/command/rabbit.rb @@ -63,8 +63,7 @@ def run(arguments) end end exit_code = application.run - application.windows.each(&:destroy) - application.unref + ::Rabbit.destroy_application exit_code.zero? end diff --git a/lib/rabbit/rabbit.rb b/lib/rabbit/rabbit.rb index d216dba6..fa0edc9c 100644 --- a/lib/rabbit/rabbit.rb +++ b/lib/rabbit/rabbit.rb @@ -37,6 +37,13 @@ def application [:non_unique, :handles_command_line]) end + def destroy_application + return if @@application.nil? + @@application.windows.each(&:destroy) + @@application.unref + @@application = nil + end + def logger @@logger ||= Logger.default end