Class: Console::Event::Progress
- Defined in:
- lib/console/event/progress.rb
Constant Summary collapse
- BLOCK =
[ " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█", ]
Instance Attribute Summary collapse
-
#current ⇒ Object
readonly
Returns the value of attribute current.
-
#total ⇒ Object
readonly
Returns the value of attribute total.
Class Method Summary collapse
Instance Method Summary collapse
- #bar(value = self.value, width = 70) ⇒ Object
- #format(output, terminal, verbose) ⇒ Object
-
#initialize(current, total) ⇒ Progress
constructor
A new instance of Progress.
- #to_h ⇒ Object
- #value ⇒ Object
Methods inherited from Generic
Constructor Details
#initialize(current, total) ⇒ Progress
Returns a new instance of Progress.
23 24 25 26 |
# File 'lib/console/event/progress.rb', line 23 def initialize(current, total) @current = current @total = total end |
Instance Attribute Details
#current ⇒ Object (readonly)
Returns the value of attribute current.
28 29 30 |
# File 'lib/console/event/progress.rb', line 28 def current @current end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
29 30 31 |
# File 'lib/console/event/progress.rb', line 29 def total @total end |
Class Method Details
.register(terminal) ⇒ Object
47 48 49 |
# File 'lib/console/event/progress.rb', line 47 def self.register(terminal) terminal[:progress_bar] ||= terminal.style(:blue, :white) end |
Instance Method Details
#bar(value = self.value, width = 70) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/console/event/progress.rb', line 35 def (value = self.value, width = 70) blocks = width * value full_blocks = blocks.floor partial_block = ((blocks - full_blocks) * BLOCK.size).floor if partial_block.zero? BLOCK.last * full_blocks else "#{BLOCK.last * full_blocks}#{BLOCK[partial_block]}" end.ljust(width) end |
#format(output, terminal, verbose) ⇒ Object
55 56 57 |
# File 'lib/console/event/progress.rb', line 55 def format(output, terminal, verbose) output.puts "#{terminal[:progress_bar]}#{self.}#{terminal.reset} #{sprintf('%6.2f', self.value * 100)}%" end |
#to_h ⇒ Object
51 52 53 |
# File 'lib/console/event/progress.rb', line 51 def to_h {current: @current, total: @total} end |
#value ⇒ Object
31 32 33 |
# File 'lib/console/event/progress.rb', line 31 def value @current.to_f / @total.to_f end |