module

FfmpegProgress::Ansi

Constants

ASCII_EMPTY = "."
ASCII_FULL_BLOCK = "#"

ASCII fallback for terminals whose locale isn't UTF-8 — the empty/full cells are still distinguishable without any non-ASCII bytes.

ASCII_PARTIAL_BLOCKS = ["1", "2", "3", "4", "5", "6", "7"]
BAR_COLORS = "\e[32;100m"

Foreground green + background gray (bright black). The gray background is critical: partial Unicode blocks are left-aligned glyphs, so the right portion of a partial cell shows the background — making it gray so the bar has no gap between the filled and unfilled portions.

CLEAR_LINE = "\e[2K\r"
FULL_BLOCK = "█"
HIDE_CURSOR = "\e[?25l"
PARTIAL_BLOCKS = ["▏", "▎", "▍", "▌", "▋", "▊", "▉"]
RESET = "\e[0m"
SHOW_CURSOR = "\e[?25h"

Class methods

terminal_width(default : Int32 = 80) : Int32
Source
utf8_locale?

Best-effort detection of whether the controlling locale will render Unicode block characters. Returns true if LC_ALL / LC_CTYPE / LANG advertises UTF-8 (case-insensitive). A wholly unset locale defaults to true since modern interactive terminals are UTF-8.

Source