You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

38 lines
625 B

require 'ruby-progressbar'
module Squib
# :nodoc:
# @api private
class DoNothing
def increment
end
def finish
end
end
# A facade that handles (or doesn't) the progress bar on the console
#
# :nodoc:
# @api private
class Progress
attr_accessor :enabled
def initialize(enabled)
@enabled = enabled
end
def start(title="", total=100, &block)
if @enabled
@bar = ProgressBar.create(title: title, total: total, format: '%t <%B> %p%% %a')
yield(@bar)
@bar.finish
else
yield(Squib::DoNothing.new)
end
end
end
end