Class: Console::Terminal::Formatter::Progress
- Inherits:
-
Object
- Object
- Console::Terminal::Formatter::Progress
- Defined in:
- lib/console/terminal/formatter/progress.rb
Overview
Format a progress event, including the current progress and total.
Constant Summary collapse
- KEY =
The key used to identify this formatter.
:progress
- BLOCK =
The block characters used to render the progress bar.
[ " ", "▏", "▎", "▍", "▌", "▋", "▊", "▉", "█", ]
Instance Method Summary collapse
-
#format(event, stream, verbose: false, width: 80) ⇒ Object
Format the given event.
-
#initialize(terminal) ⇒ Progress
constructor
Create a new progress formatter.
Constructor Details
#initialize(terminal) ⇒ Progress
Create a new progress formatter.
30 31 32 33 |
# File 'lib/console/terminal/formatter/progress.rb', line 30 def initialize(terminal) @terminal = terminal @terminal[:progress_bar] ||= terminal.style(:blue, :white) end |
Instance Method Details
#format(event, stream, verbose: false, width: 80) ⇒ Object
Format the given event.
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/console/terminal/formatter/progress.rb', line 41 def format(event, stream, verbose: false, width: 80) current = event[:current].to_f total = event[:total].to_f value = current / total # Clamp value to 1.0 to avoid rendering issues: if value > 1.0 value = 1.0 end stream.puts "#{@terminal[:progress_bar]}#{self.(value, width-10)}#{@terminal.reset} #{sprintf('%6.2f', value * 100)}%" end |