Class: CliLogger::ProgressBar

Inherits:
Object
  • Object
show all
Defined in:
lib/cli_logger/progress_bar.rb

Overview

ProgressBar class

Instance Method Summary collapse

Constructor Details

#initialize(spinner) ⇒ ProgressBar

Returns a new instance of ProgressBar.



5
6
7
8
9
# File 'lib/cli_logger/progress_bar.rb', line 5

def initialize(spinner)
  @spinner = spinner
  @visible = false
  @width = 40
end

Instance Method Details

#clear_lineObject



31
32
33
34
35
36
37
# File 'lib/cli_logger/progress_bar.rb', line 31

def clear_line
  width = @width + 10

  print "\r"
  print ' ' * width
  print "\r"
end

#hideObject



23
24
25
26
27
28
29
# File 'lib/cli_logger/progress_bar.rb', line 23

def hide
  $stdout.sync = true
  @visible = false

  clear_line
  sleep 0.1
end

#progress(percent) ⇒ Object

Raises:

  • (InvalidProgressValueError)


11
12
13
14
15
16
17
18
19
20
21
# File 'lib/cli_logger/progress_bar.rb', line 11

def progress(percent)
  @spinner.stop if @spinner
  @visible = true
  $stdout.sync = true

  raise InvalidProgressValueError, percent if percent < 0 || percent > 1

  @percent = percent

  print prepare_bar
end