Module: Supermicro::SpinnerHelper

Included in:
Tasks
Defined in:
lib/supermicro/spinner.rb

Instance Method Summary collapse

Instance Method Details

#show_progress(message, duration: nil, &block) ⇒ Object



131
132
133
134
135
136
137
138
139
# File 'lib/supermicro/spinner.rb', line 131

def show_progress(message, duration: nil, &block)
  if duration
    # Show progress bar if duration is known
    with_progress_bar(message, duration, &block)
  else
    # Show spinner if duration is unknown
    with_spinner(message, &block)
  end
end

#with_spinner(message, type: :dots, color: :cyan, &block) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/supermicro/spinner.rb', line 115

def with_spinner(message, type: :dots, color: :cyan, &block)
  return yield if respond_to?(:verbosity) && verbosity > 0
  
  spinner = Spinner.new(message, type: type, color: color)
  spinner.start
  
  begin
    result = yield(spinner)
    spinner.stop("#{message} - Complete", success: true)
    result
  rescue => e
    spinner.stop("#{message} - Failed", success: false)
    raise e
  end
end