module

Cresium::Digits

VCR-OSD-style ASCII-art digit font. Covers digits, : (hour/minute/second separator) and . (millisecond separator). Provides two sizes: the default (4 lines, block octants) fits VGA text mode (80x25); LARGE_GLYPHS (7 lines, full blocks) is used instead on big enough terminals (see Cresium::LayoutConfig.large_digits?). โ†‘/โ†“ (scroll indicators) and โ–ˆ are only defined in the small set โ€” they're always rendered at that size (see Cresium::StackLayout#refresh_scroll_arrows), never as part of a large-mode digit.

Constants

ARROW_WIDTH = 5
GLYPHS = {'0' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "โ–ˆ ๐œท‹๐œตญโ–ˆ", "โ–ˆ๐œดต๐œด‚ โ–ˆ", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], '1' => [" ๐œท‹โ–† ", " ๐Ÿฎ‚โ–ˆ ", " โ–ˆ ", " ๐œดณ๐Ÿฎ…๐œดณ "], '2' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "๐Ÿฎ‚โ–‚โ–‚๐œท‹๐œตฐ", "๐œทฅ๐œด‚๐Ÿฎ‚๐Ÿฎ‚ ", "๐Ÿฎ…๐œดณ๐œดณ๐œดณ๐œดณ"], '3' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "๐Ÿฎ‚โ–‚โ–‚๐œท‹๐œตฐ", "โ–‚๐Ÿฎ‚๐Ÿฎ‚๐œด…๐œทค", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], '4' => [" ๐œท‹โ–† ", "๐œท‹๐œตฏ๐œด‚โ–ˆ ", "๐Ÿฎ…๐œดณ๐œดณโ–ˆ๐œดณ", " ๐Ÿฎ… "], '5' => ["โ–†๐œดณ๐œดณ๐œดณ๐œดณ", "โ–ˆ๐œท‹โ–„โ–„๐œบฃ", "๐œถฎ๐œบจ ๐œบซโ–ˆ", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], '6' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "โ–ˆโ–‚โ–‚โ–‚๐Ÿฎ‚", "โ–ˆ๐Ÿฎ‚๐Ÿฎ‚๐œด…๐œทค", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], '7' => ["๐œดณ๐œดณ๐œดณ๐œดณโ–†", " ๐œบ ๐œทก๐œด—", " โ–ˆ๐œบจ ", " ๐Ÿฎ… "], '8' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "๐œถซ๐œถปโ–‚๐œท‹๐œตฐ", "๐œทฅ๐œด‚๐Ÿฎ‚๐œด…๐œทค", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], '9' => ["๐œท‹๐œตญ๐œดณ๐œถจ๐œถป", "๐œถซ๐œถปโ–‚โ–‚โ–ˆ", "โ–‚๐Ÿฎ‚๐Ÿฎ‚๐Ÿฎ‚โ–ˆ", "๐œด…๐œดด๐œดณ๐œดต๐œด‚"], ':' => ["โ–‚", "๐Ÿฎ‚", "โ–‚", "๐Ÿฎ‚"], '.' => [" ", " ", " ", "๐œดณ"], ' ' => [" ", " ", " ", " "], 'โ–ˆ' => ["โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"], 'โ†‘' => ["๐œท‹๐œตฏโ–ˆ๐œถฉ๐œถป", "๐œด‚ โ–ˆ ๐œด…", " โ–ˆ ", " โ–€ "], 'โ†“' => [" โ–„ ", " โ–ˆ ", "๐œถป โ–ˆ ๐œท‹", "๐œด…๐œถฉโ–ˆ๐œตฏ๐œด‚"]}
HEIGHT = 4
LARGE_GLYPHS = {'0' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆ โ–„โ–ˆโ–ˆโ–€ โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–€ โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], '1' => [" โ–„โ–ˆโ–ˆ ", " โ–„โ–ˆโ–ˆโ–ˆโ–ˆ ", " โ–ˆโ–ˆ ", " โ–ˆโ–ˆ ", " โ–ˆโ–ˆ ", " โ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"], '2' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", " โ–„โ–ˆโ–ˆ", " โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ ", "โ–ˆโ–ˆโ–€ ", "โ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ"], '3' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", " โ–ˆโ–ˆ", " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ ", " โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], '4' => [" โ–„โ–ˆโ–ˆ ", " โ–„โ–ˆโ–ˆโ–ˆโ–ˆ ", " โ–„โ–ˆโ–ˆโ–€ โ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–€ โ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", " โ–ˆโ–ˆ ", " โ–ˆโ–ˆ "], '5' => ["โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", "โ–ˆโ–ˆ ", "โ–ˆโ–ˆ โ–„โ–„โ–„โ–„โ–„ ", "โ–ˆโ–ˆโ–ˆโ–€โ–€โ–€โ–€โ–ˆโ–ˆโ–„", " โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], '6' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], '7' => ["โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", " โ–ˆโ–ˆ", " โ–„โ–ˆโ–ˆ", " โ–„โ–ˆโ–ˆโ–€ ", " โ–ˆโ–ˆโ–€ ", " โ–ˆโ–ˆ ", " โ–ˆโ–ˆ "], '8' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], '9' => [" โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–„ ", "โ–ˆโ–ˆโ–€ โ–€โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ", " โ–ˆโ–ˆ", "โ–ˆโ–ˆโ–„ โ–„โ–ˆโ–ˆ", " โ–€โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–€ "], ':' => [" ", " ", " โ–ˆโ–ˆ ", " ", " โ–ˆโ–ˆ ", " ", " "], '.' => [" ", " ", " ", " ", " ", " โ–ˆโ–ˆ ", " "], ' ' => [" ", " ", " ", " ", " ", " ", " "]}
LARGE_HEIGHT = 7

Class methods

glyph_column_range(text : String, index : Int32 | Nil, large : Bool = false) : Range(Int32, Int32) | Nil

Column range (in the rendered ASCII art) covered by the glyph at index in text, or nil if index is out of bounds.

Source
glyphs(large : Bool = false) : Hash(Char, Array(String))

The glyph table to render from, small or large.

Source
render(text : String, large : Bool = false) : Array(String)

Renders text as an array of ASCII-art lines, glyphs separated by a space. Characters missing from the glyph table fall back to ':'.

Source
rows(large : Bool = false) : Int32

Number of lines per glyph, small or large.

Source