in lib/support/rake/task_with_spinner.rb [53:81]
def execute(...)
@gdk_execute_start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
spinner = nil
if TaskWithSpinner.spinner_manager && show_spinner?
logger = Support::Rake::TaskLogger.current
thread = Thread.new do
Support::Rake::TaskLogger.set_current!(logger)
sleep 0.001
next if @skipped || TaskWithSpinner.spinner_manager.top_spinner.message == spinner_name
spinner = TaskWithSpinner.spinner_manager.register spinner_name(':recent_line')
spinner.update(recent_line: '')
spinner.on(:spin, &on_spin(logger, spinner))
spinner.auto_spin
end
end
super
rescue StandardError => e
spinner&.update(recent_line: '')
spinner&.error(execution_duration_message)
raise e unless e.instance_of?(TaskSkippedError)
else
spinner&.update(recent_line: '')
spinner&.success(execution_duration_message)
ensure
thread&.join
end