Class: FileTreeVisualizer::CLI::ProgressRenderer
- Inherits:
-
Object
- Object
- FileTreeVisualizer::CLI::ProgressRenderer
- Defined in:
- lib/file_tree_visualizer/cli.rb
Constant Summary collapse
- BAR_WIDTH =
28
Instance Method Summary collapse
- #finish ⇒ Object
-
#initialize(io: $stdout, enabled: true, locale: DEFAULT_LOCALE) ⇒ ProgressRenderer
constructor
A new instance of ProgressRenderer.
- #render(phase:, **data) ⇒ Object
Constructor Details
#initialize(io: $stdout, enabled: true, locale: DEFAULT_LOCALE) ⇒ ProgressRenderer
Returns a new instance of ProgressRenderer.
75 76 77 78 79 80 81 82 |
# File 'lib/file_tree_visualizer/cli.rb', line 75 def initialize(io: $stdout, enabled: true, locale: DEFAULT_LOCALE) @io = io @enabled = enabled && io.tty? @locale = locale @last_draw_at = nil @has_rendered = false @spinner_index = 0 end |
Instance Method Details
#finish ⇒ Object
102 103 104 105 106 |
# File 'lib/file_tree_visualizer/cli.rb', line 102 def finish return unless @enabled @io.print("\n") if @has_rendered end |
#render(phase:, **data) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/file_tree_visualizer/cli.rb', line 84 def render(phase:, **data) return unless @enabled now = Process.clock_gettime(Process::CLOCK_MONOTONIC) return if @last_draw_at && now - @last_draw_at < 0.05 @last_draw_at = now if phase == :counting render_counting(data) else render_scanning(data) end @has_rendered = true @io.flush end |