Module: Support::Rake::TaskWithSpinner
- Defined in:
- lib/support/rake/task_with_spinner.rb
Class Attribute Summary collapse
-
.spinner_manager ⇒ Object
Returns the value of attribute spinner_manager.
Instance Method Summary collapse
Class Attribute Details
.spinner_manager ⇒ Object
Returns the value of attribute spinner_manager.
12 13 14 |
# File 'lib/support/rake/task_with_spinner.rb', line 12 def spinner_manager @spinner_manager end |
Instance Method Details
#enable_spinner! ⇒ Object
15 16 17 18 19 20 |
# File 'lib/support/rake/task_with_spinner.rb', line 15 def enable_spinner! return unless GDK::Output.interactive? return unless defined?(TTY::Spinner) @enable_spinner = true end |
#execute ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/support/rake/task_with_spinner.rb', line 37 def execute(...) if TaskWithSpinner.spinner_manager && show_spinner? spinner = TaskWithSpinner.spinner_manager.register spinner_name spinner.auto_spin end super rescue StandardError => e spinner&.error raise e else spinner&.success end |
#invoke ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/support/rake/task_with_spinner.rb', line 22 def invoke(...) if @enable_spinner TaskWithSpinner.spinner_manager ||= ::TTY::Spinner::Multi.new( spinner_name, success_mark: "\e[32m#{TTY::Spinner::TICK}\e[0m", error_mark: "\e[31m#{TTY::Spinner::CROSS}\e[0m", format: :dots, # $stderr is overwritten in TaskWithLogger output: STDERR # rubocop:disable Style/GlobalStdStream ) end super end |