class ProgressMonitor::Display::ProgressBar

Constants

BAR_PARTIAL_PROGRESS
BAR_PROGRESS
BAR_SPACE

Attributes

completion_percent[RW]
size[RW]

Public Class Methods

new(size: 20, completion_percent: 0) click to toggle source
# File lib/progress_monitor/display/progress_bar.rb, line 6
def initialize(size: 20, completion_percent: 0)
  @size = size
  @completion_percent = completion_percent
end

Public Instance Methods

render() click to toggle source
# File lib/progress_monitor/display/progress_bar.rb, line 15
def render
  if completion_percent == :unknown
    '╍' * size
  else
    completion_float = completion_percent.to_f / 100 * size
    completion_size = completion_float.floor
    remainder = (completion_float % 1 * 8).floor
    if completion_size < size
      BAR_PROGRESS * completion_size + BAR_PARTIAL_PROGRESS[remainder] + BAR_SPACE * (size - completion_size - 1)
    else
      BAR_PROGRESS * size
    end
  end
rescue => e
  puts e
  ""
end