Class: Factorix::Progress::MultiPresenter
- Inherits:
-
Object
- Object
- Factorix::Progress::MultiPresenter
- Defined in:
- lib/factorix/progress/multi_presenter.rb
Overview
Multi-progress presenter implementation
This class provides a multi-progress presentation interface using tty-progressbar. It manages multiple progress bars that can be updated concurrently.
Instance Method Summary collapse
-
#[](name) ⇒ PresenterAdapter?
Get a registered presenter by name.
-
#initialize(title: "Progress", output: $stderr) ⇒ MultiPresenter
constructor
Create a new multi-progress presenter.
-
#register(name, title:) ⇒ PresenterAdapter
Register a new progress presenter.
Constructor Details
#initialize(title: "Progress", output: $stderr) ⇒ MultiPresenter
Create a new multi-progress presenter
16 17 18 19 20 21 22 |
# File 'lib/factorix/progress/multi_presenter.rb', line 16 def initialize(title: "Progress", output: $stderr) @title = title @output = output @multi = TTY::ProgressBar::Multi.new(@title, output: @output, style: {top: "", middle: "", bottom: ""}) @presenters = {} @mutex = Mutex.new end |
Instance Method Details
#[](name) ⇒ PresenterAdapter?
Get a registered presenter by name
42 |
# File 'lib/factorix/progress/multi_presenter.rb', line 42 def [](name) = @presenters[name] |
#register(name, title:) ⇒ PresenterAdapter
Register a new progress presenter
29 30 31 32 33 34 35 36 |
# File 'lib/factorix/progress/multi_presenter.rb', line 29 def register(name, title:) @mutex.synchronize do = @multi.register("#{title} [:bar] :percent :byte/:total_byte") adapter = PresenterAdapter.new(, @mutex) @presenters[name] = adapter adapter end end |