class StTools::ProgressBar
Attributes
Время выполнения всей операции в секундах (формируется после достижения max)
Максимальное значение прогресс-бара
Текущее значение прогресс-бара
Количество вызовов метода progress=.
Public Class Methods
Инициализация прогресс-бара
@param [Hash] opts параметры настройки прогресс-бара @option opts [String] :title заголовок прогресс-бара @option opts [Integer] :max максимальное значение @option opts [Integer] :progress текущее значение (по умолчанию 0) @option opts [String] :footer резюмирующая строка. Допускает два шаблона: [memory] и [executed_at], например:
"Завершено за [executed_at] секунд. Занятая память [memory]"
@option opts [Integer] :step шаг кратно которому реально перерисовывается прогресс-бар @return [Object] нет
# File lib/st_tools/progress_bar.rb, line 22 def initialize(opts = {}) @title = opts[:title] || '' @max = opts[:max] || 100 @progress = opts[:progress] || 0 @footer = opts[:footer] || '' @step = opts[:step] || 100 @usage = 1 @executed_at = 0 @start_at = ::Time.now init_progress_bar end
Public Instance Methods
Метод финализирует значение прогресс-бара
@return [Object] нет
# File lib/st_tools/progress_bar.rb, line 57 def complete @pbar.progress = @max if @pbar.progress < @max end
Метод устанавливает новое значение прогресс-бара
@param [Integer] val новое значение прогресс-бара. Если равно max - то вызывается функция вывода футера @return [Object] нет
# File lib/st_tools/progress_bar.rb, line 40 def progress=(val) return if val > @max return if val == @value return if val % @step != 0 && (@max - val) >= @step @progress = val @pbar.progress = val @usage += 1 if val >= @max puts_footer end end
Private Instance Methods
# File lib/st_tools/progress_bar.rb, line 64 def init_progress_bar puts @title if @title != '' @pbar = ::ProgressBar.create(:starting_at => 0, :total => @max, :progress_mark => '=', :format => "%a |%B| %E", :throttle_rate => 1, :remainder_mark => '.') end