tessella 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +900 -0
- data/doc/README.md +74 -0
- data/doc/bitfield.md +123 -0
- data/doc/charts.md +1370 -0
- data/doc/check.rb +75 -0
- data/doc/cli.md +483 -0
- data/doc/composition.md +599 -0
- data/doc/getting-started.md +121 -0
- data/doc/glyphs.md +134 -0
- data/doc/images.md +325 -0
- data/doc/library.md +239 -0
- data/doc/lint.md +270 -0
- data/doc/meter.md +210 -0
- data/doc/rule.md +51 -0
- data/doc/seq.md +169 -0
- data/doc/sparkline.md +63 -0
- data/doc/table.md +347 -0
- data/doc/targets.md +222 -0
- data/doc/text.md +84 -0
- data/doc/tree.md +108 -0
- data/doc/wave.md +122 -0
- data/examples/README.md +103 -0
- data/examples/ages.txt +9 -0
- data/examples/bad.csv +3 -0
- data/examples/boxes.txt +3 -0
- data/examples/broken.txt +4 -0
- data/examples/calibration.rb +12 -0
- data/examples/cities.csv +4 -0
- data/examples/cjk.rb +13 -0
- data/examples/comment.rb +9 -0
- data/examples/comment.sh +13 -0
- data/examples/cpu.txt +60 -0
- data/examples/dashboard.sh +25 -0
- data/examples/datasheet.rb +16 -0
- data/examples/disc.pgm +0 -0
- data/examples/disks.sh +18 -0
- data/examples/disks.txt +5 -0
- data/examples/dose.txt +7 -0
- data/examples/drift.txt +4 -0
- data/examples/ethernet.txt +3 -0
- data/examples/figure.c +5 -0
- data/examples/fit.rb +16 -0
- data/examples/floors.rb +21 -0
- data/examples/gallery.sh +20 -0
- data/examples/gauges.sh +31 -0
- data/examples/gradient.rb +16 -0
- data/examples/growth.txt +6 -0
- data/examples/hosts.csv +4 -0
- data/examples/icmp.txt +3 -0
- data/examples/ipv4.txt +12 -0
- data/examples/kinds.csv +4 -0
- data/examples/langs.csv +4 -0
- data/examples/lint.rb +16 -0
- data/examples/load.rb +14 -0
- data/examples/login.txt +10 -0
- data/examples/neg.csv +4 -0
- data/examples/normal.txt +200 -0
- data/examples/note.txt +2 -0
- data/examples/notes-fixed.md +17 -0
- data/examples/notes.md +17 -0
- data/examples/ohlc.txt +7 -0
- data/examples/os.csv +10 -0
- data/examples/outline.txt +8 -0
- data/examples/plot.txt +5 -0
- data/examples/refusals.rb +17 -0
- data/examples/report.sh +21 -0
- data/examples/rfc.sh +22 -0
- data/examples/samples.txt +7 -0
- data/examples/shapes.pgm +0 -0
- data/examples/sizes.tsv +3 -0
- data/examples/spi.txt +6 -0
- data/examples/status.sh +23 -0
- data/examples/stem.txt +12 -0
- data/examples/table-drift.txt +4 -0
- data/examples/temps.txt +31 -0
- data/examples/trig.sh +13 -0
- data/examples/trig.txt +102 -0
- data/examples/week.txt +8 -0
- data/examples/wide.txt +2 -0
- data/exe/tessella +6 -0
- data/lib/tessella/axis.rb +71 -0
- data/lib/tessella/bitfield.rb +194 -0
- data/lib/tessella/block.rb +56 -0
- data/lib/tessella/borders.rb +85 -0
- data/lib/tessella/canvas/area.rb +155 -0
- data/lib/tessella/canvas/ascii.rb +120 -0
- data/lib/tessella/canvas/block.rb +40 -0
- data/lib/tessella/canvas/braille.rb +30 -0
- data/lib/tessella/canvas/clip.rb +49 -0
- data/lib/tessella/canvas/density.rb +51 -0
- data/lib/tessella/canvas/dot.rb +27 -0
- data/lib/tessella/canvas/eighths.rb +43 -0
- data/lib/tessella/canvas/half.rb +51 -0
- data/lib/tessella/canvas/sextant.rb +36 -0
- data/lib/tessella/canvas.rb +168 -0
- data/lib/tessella/cell.rb +10 -0
- data/lib/tessella/chart.rb +211 -0
- data/lib/tessella/check.rb +52 -0
- data/lib/tessella/cli/bitfield.rb +121 -0
- data/lib/tessella/cli/chart.rb +615 -0
- data/lib/tessella/cli/chart_candle.rb +36 -0
- data/lib/tessella/cli/chart_heatmap.rb +21 -0
- data/lib/tessella/cli/chart_help.rb +85 -0
- data/lib/tessella/cli/chart_pie.rb +38 -0
- data/lib/tessella/cli/compose.rb +156 -0
- data/lib/tessella/cli/compose_options.rb +259 -0
- data/lib/tessella/cli/glyphs.rb +97 -0
- data/lib/tessella/cli/image.rb +250 -0
- data/lib/tessella/cli/input.rb +44 -0
- data/lib/tessella/cli/iso_time.rb +28 -0
- data/lib/tessella/cli/lint.rb +102 -0
- data/lib/tessella/cli/lint_options.rb +99 -0
- data/lib/tessella/cli/main.rb +121 -0
- data/lib/tessella/cli/meter.rb +80 -0
- data/lib/tessella/cli/rule.rb +57 -0
- data/lib/tessella/cli/seq.rb +117 -0
- data/lib/tessella/cli/sparkline.rb +72 -0
- data/lib/tessella/cli/table.rb +167 -0
- data/lib/tessella/cli/text.rb +78 -0
- data/lib/tessella/cli/tree.rb +100 -0
- data/lib/tessella/cli/wave.rb +148 -0
- data/lib/tessella/cli.rb +36 -0
- data/lib/tessella/color.rb +106 -0
- data/lib/tessella/compose.rb +243 -0
- data/lib/tessella/compose_fill.rb +176 -0
- data/lib/tessella/compose_grid.rb +36 -0
- data/lib/tessella/compose_shadow.rb +41 -0
- data/lib/tessella/error.rb +13 -0
- data/lib/tessella/frame.rb +170 -0
- data/lib/tessella/glyphs.rb +106 -0
- data/lib/tessella/image.rb +454 -0
- data/lib/tessella/image_octant.rb +46 -0
- data/lib/tessella/image_petscii.rb +116 -0
- data/lib/tessella/kinds/bar.rb +344 -0
- data/lib/tessella/kinds/box.rb +213 -0
- data/lib/tessella/kinds/box_upright.rb +110 -0
- data/lib/tessella/kinds/candlestick.rb +164 -0
- data/lib/tessella/kinds/columns.rb +259 -0
- data/lib/tessella/kinds/date_axis.rb +102 -0
- data/lib/tessella/kinds/error_bars.rb +71 -0
- data/lib/tessella/kinds/heatmap.rb +130 -0
- data/lib/tessella/kinds/line.rb +173 -0
- data/lib/tessella/kinds/multibar.rb +98 -0
- data/lib/tessella/kinds/multibar_columns.rb +130 -0
- data/lib/tessella/kinds/multibar_fine.rb +45 -0
- data/lib/tessella/kinds/multibar_rows.rb +93 -0
- data/lib/tessella/kinds/pie.rb +123 -0
- data/lib/tessella/kinds/pie_rim.rb +78 -0
- data/lib/tessella/kinds/sideways.rb +62 -0
- data/lib/tessella/kinds/stem.rb +134 -0
- data/lib/tessella/kinds/threshold.rb +73 -0
- data/lib/tessella/legend.rb +31 -0
- data/lib/tessella/lint/alphabet.rb +56 -0
- data/lib/tessella/lint/drift.rb +82 -0
- data/lib/tessella/lint/fences.rb +51 -0
- data/lib/tessella/lint/geometry.rb +120 -0
- data/lib/tessella/lint/geometry_checks.rb +224 -0
- data/lib/tessella/lint/lines.rb +115 -0
- data/lib/tessella/lint/mixing.rb +61 -0
- data/lib/tessella/lint/runner.rb +73 -0
- data/lib/tessella/lint/shadows.rb +120 -0
- data/lib/tessella/lint/target_rows.rb +66 -0
- data/lib/tessella/lint.rb +158 -0
- data/lib/tessella/meter.rb +133 -0
- data/lib/tessella/meter_upright.rb +43 -0
- data/lib/tessella/png.rb +456 -0
- data/lib/tessella/raster.rb +92 -0
- data/lib/tessella/rmagick_reader.rb +52 -0
- data/lib/tessella/rule.rb +59 -0
- data/lib/tessella/seq.rb +522 -0
- data/lib/tessella/sparkline.rb +57 -0
- data/lib/tessella/stats.rb +199 -0
- data/lib/tessella/table.rb +547 -0
- data/lib/tessella/table_cells.rb +225 -0
- data/lib/tessella/target.rb +105 -0
- data/lib/tessella/text.rb +76 -0
- data/lib/tessella/text_forms.rb +150 -0
- data/lib/tessella/tree.rb +221 -0
- data/lib/tessella/version.rb +5 -0
- data/lib/tessella/wave.rb +353 -0
- data/lib/tessella/width.rb +122 -0
- data/lib/tessella/width_class.rb +77 -0
- data/lib/tessella/width_invisible.rb +66 -0
- data/lib/tessella/width_invisible_high.rb +60 -0
- data/lib/tessella.rb +94 -0
- metadata +226 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tessella
|
|
4
|
+
# Width classes (DESIGN.md, "Glyphs"): N (narrow everywhere), A
|
|
5
|
+
# (East Asian Ambiguous: one column in Western terminals, two in
|
|
6
|
+
# CJK-configured ones) and W (wide, always two), as the ascii-art
|
|
7
|
+
# skill's glyph palette names them. Invisible glyphs have none.
|
|
8
|
+
# AMBIGUOUS is Unicode 15.1's EastAsianWidth.txt class A, generated
|
|
9
|
+
# as Width's own tables were, so the three agree.
|
|
10
|
+
module Width
|
|
11
|
+
AMBIGUOUS = [
|
|
12
|
+
0x00A1..0x00A1, 0x00A4..0x00A4, 0x00A7..0x00A8, 0x00AA..0x00AA,
|
|
13
|
+
0x00AD..0x00AE, 0x00B0..0x00B4, 0x00B6..0x00BA, 0x00BC..0x00BF,
|
|
14
|
+
0x00C6..0x00C6, 0x00D0..0x00D0, 0x00D7..0x00D8, 0x00DE..0x00E1,
|
|
15
|
+
0x00E6..0x00E6, 0x00E8..0x00EA, 0x00EC..0x00ED, 0x00F0..0x00F0,
|
|
16
|
+
0x00F2..0x00F3, 0x00F7..0x00FA, 0x00FC..0x00FC, 0x00FE..0x00FE,
|
|
17
|
+
0x0101..0x0101, 0x0111..0x0111, 0x0113..0x0113, 0x011B..0x011B,
|
|
18
|
+
0x0126..0x0127, 0x012B..0x012B, 0x0131..0x0133, 0x0138..0x0138,
|
|
19
|
+
0x013F..0x0142, 0x0144..0x0144, 0x0148..0x014B, 0x014D..0x014D,
|
|
20
|
+
0x0152..0x0153, 0x0166..0x0167, 0x016B..0x016B, 0x01CE..0x01CE,
|
|
21
|
+
0x01D0..0x01D0, 0x01D2..0x01D2, 0x01D4..0x01D4, 0x01D6..0x01D6,
|
|
22
|
+
0x01D8..0x01D8, 0x01DA..0x01DA, 0x01DC..0x01DC, 0x0251..0x0251,
|
|
23
|
+
0x0261..0x0261, 0x02C4..0x02C4, 0x02C7..0x02C7, 0x02C9..0x02CB,
|
|
24
|
+
0x02CD..0x02CD, 0x02D0..0x02D0, 0x02D8..0x02DB, 0x02DD..0x02DD,
|
|
25
|
+
0x02DF..0x02DF, 0x0300..0x036F, 0x0391..0x03A1, 0x03A3..0x03A9,
|
|
26
|
+
0x03B1..0x03C1, 0x03C3..0x03C9, 0x0401..0x0401, 0x0410..0x044F,
|
|
27
|
+
0x0451..0x0451, 0x2010..0x2010, 0x2013..0x2016, 0x2018..0x2019,
|
|
28
|
+
0x201C..0x201D, 0x2020..0x2022, 0x2024..0x2027, 0x2030..0x2030,
|
|
29
|
+
0x2032..0x2033, 0x2035..0x2035, 0x203B..0x203B, 0x203E..0x203E,
|
|
30
|
+
0x2074..0x2074, 0x207F..0x207F, 0x2081..0x2084, 0x20AC..0x20AC,
|
|
31
|
+
0x2103..0x2103, 0x2105..0x2105, 0x2109..0x2109, 0x2113..0x2113,
|
|
32
|
+
0x2116..0x2116, 0x2121..0x2122, 0x2126..0x2126, 0x212B..0x212B,
|
|
33
|
+
0x2153..0x2154, 0x215B..0x215E, 0x2160..0x216B, 0x2170..0x2179,
|
|
34
|
+
0x2189..0x2189, 0x2190..0x2199, 0x21B8..0x21B9, 0x21D2..0x21D2,
|
|
35
|
+
0x21D4..0x21D4, 0x21E7..0x21E7, 0x2200..0x2200, 0x2202..0x2203,
|
|
36
|
+
0x2207..0x2208, 0x220B..0x220B, 0x220F..0x220F, 0x2211..0x2211,
|
|
37
|
+
0x2215..0x2215, 0x221A..0x221A, 0x221D..0x2220, 0x2223..0x2223,
|
|
38
|
+
0x2225..0x2225, 0x2227..0x222C, 0x222E..0x222E, 0x2234..0x2237,
|
|
39
|
+
0x223C..0x223D, 0x2248..0x2248, 0x224C..0x224C, 0x2252..0x2252,
|
|
40
|
+
0x2260..0x2261, 0x2264..0x2267, 0x226A..0x226B, 0x226E..0x226F,
|
|
41
|
+
0x2282..0x2283, 0x2286..0x2287, 0x2295..0x2295, 0x2299..0x2299,
|
|
42
|
+
0x22A5..0x22A5, 0x22BF..0x22BF, 0x2312..0x2312, 0x2460..0x24E9,
|
|
43
|
+
0x24EB..0x254B, 0x2550..0x2573, 0x2580..0x258F, 0x2592..0x2595,
|
|
44
|
+
0x25A0..0x25A1, 0x25A3..0x25A9, 0x25B2..0x25B3, 0x25B6..0x25B7,
|
|
45
|
+
0x25BC..0x25BD, 0x25C0..0x25C1, 0x25C6..0x25C8, 0x25CB..0x25CB,
|
|
46
|
+
0x25CE..0x25D1, 0x25E2..0x25E5, 0x25EF..0x25EF, 0x2605..0x2606,
|
|
47
|
+
0x2609..0x2609, 0x260E..0x260F, 0x261C..0x261C, 0x261E..0x261E,
|
|
48
|
+
0x2640..0x2640, 0x2642..0x2642, 0x2660..0x2661, 0x2663..0x2665,
|
|
49
|
+
0x2667..0x266A, 0x266C..0x266D, 0x266F..0x266F, 0x269E..0x269F,
|
|
50
|
+
0x26BF..0x26BF, 0x26C6..0x26CD, 0x26CF..0x26D3, 0x26D5..0x26E1,
|
|
51
|
+
0x26E3..0x26E3, 0x26E8..0x26E9, 0x26EB..0x26F1, 0x26F4..0x26F4,
|
|
52
|
+
0x26F6..0x26F9, 0x26FB..0x26FC, 0x26FE..0x26FF, 0x273D..0x273D,
|
|
53
|
+
0x2776..0x277F, 0x2B56..0x2B59, 0x3248..0x324F, 0xE000..0xF8FF,
|
|
54
|
+
0xFE00..0xFE0F, 0xFFFD..0xFFFD, 0x1F100..0x1F10A, 0x1F110..0x1F12D,
|
|
55
|
+
0x1F130..0x1F169, 0x1F170..0x1F18D, 0x1F18F..0x1F190,
|
|
56
|
+
0x1F19B..0x1F1AC, 0xE0100..0xE01EF, 0xF0000..0xFFFFD,
|
|
57
|
+
0x100000..0x10FFFD
|
|
58
|
+
].freeze
|
|
59
|
+
|
|
60
|
+
def self.ambiguous?(code) = Width.in?(AMBIGUOUS, code)
|
|
61
|
+
|
|
62
|
+
# :N, :A, :W, or nil for an invisible glyph.
|
|
63
|
+
def self.class_of(char)
|
|
64
|
+
code = char.ord
|
|
65
|
+
case Width.base(code)
|
|
66
|
+
when 0 then nil
|
|
67
|
+
when 2 then :W
|
|
68
|
+
else ambiguous?(code) ? :A : :N
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# The classes a text's visible glyphs fall into, spaces aside.
|
|
73
|
+
def self.classes(text)
|
|
74
|
+
text.each_char.reject { it == " " }.filter_map { class_of(it) }.uniq
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tessella
|
|
4
|
+
# Width's zero-width ranges (width.rb), generated from Unicode
|
|
5
|
+
# 15.1's UnicodeData.txt by tools/invisible_ranges.rb: every Mn and
|
|
6
|
+
# Me, the Hangul medial and final jamo, the zero-width and format
|
|
7
|
+
# characters, the variation selectors. Split in two files by
|
|
8
|
+
# plane only to keep each table a readable size.
|
|
9
|
+
module Width
|
|
10
|
+
INVISIBLE_BMP = [
|
|
11
|
+
0x0300..0x036F, 0x0483..0x0489, 0x0591..0x05BD, 0x05BF..0x05BF,
|
|
12
|
+
0x05C1..0x05C2, 0x05C4..0x05C5, 0x05C7..0x05C7, 0x0610..0x061A,
|
|
13
|
+
0x064B..0x065F, 0x0670..0x0670, 0x06D6..0x06DC, 0x06DF..0x06E4,
|
|
14
|
+
0x06E7..0x06E8, 0x06EA..0x06ED, 0x0711..0x0711, 0x0730..0x074A,
|
|
15
|
+
0x07A6..0x07B0, 0x07EB..0x07F3, 0x07FD..0x07FD, 0x0816..0x0819,
|
|
16
|
+
0x081B..0x0823, 0x0825..0x0827, 0x0829..0x082D, 0x0859..0x085B,
|
|
17
|
+
0x0898..0x089F, 0x08CA..0x08E1, 0x08E3..0x0902, 0x093A..0x093A,
|
|
18
|
+
0x093C..0x093C, 0x0941..0x0948, 0x094D..0x094D, 0x0951..0x0957,
|
|
19
|
+
0x0962..0x0963, 0x0981..0x0981, 0x09BC..0x09BC, 0x09C1..0x09C4,
|
|
20
|
+
0x09CD..0x09CD, 0x09E2..0x09E3, 0x09FE..0x09FE, 0x0A01..0x0A02,
|
|
21
|
+
0x0A3C..0x0A3C, 0x0A41..0x0A42, 0x0A47..0x0A48, 0x0A4B..0x0A4D,
|
|
22
|
+
0x0A51..0x0A51, 0x0A70..0x0A71, 0x0A75..0x0A75, 0x0A81..0x0A82,
|
|
23
|
+
0x0ABC..0x0ABC, 0x0AC1..0x0AC5, 0x0AC7..0x0AC8, 0x0ACD..0x0ACD,
|
|
24
|
+
0x0AE2..0x0AE3, 0x0AFA..0x0AFF, 0x0B01..0x0B01, 0x0B3C..0x0B3C,
|
|
25
|
+
0x0B3F..0x0B3F, 0x0B41..0x0B44, 0x0B4D..0x0B4D, 0x0B55..0x0B56,
|
|
26
|
+
0x0B62..0x0B63, 0x0B82..0x0B82, 0x0BC0..0x0BC0, 0x0BCD..0x0BCD,
|
|
27
|
+
0x0C00..0x0C00, 0x0C04..0x0C04, 0x0C3C..0x0C3C, 0x0C3E..0x0C40,
|
|
28
|
+
0x0C46..0x0C48, 0x0C4A..0x0C4D, 0x0C55..0x0C56, 0x0C62..0x0C63,
|
|
29
|
+
0x0C81..0x0C81, 0x0CBC..0x0CBC, 0x0CBF..0x0CBF, 0x0CC6..0x0CC6,
|
|
30
|
+
0x0CCC..0x0CCD, 0x0CE2..0x0CE3, 0x0D00..0x0D01, 0x0D3B..0x0D3C,
|
|
31
|
+
0x0D41..0x0D44, 0x0D4D..0x0D4D, 0x0D62..0x0D63, 0x0D81..0x0D81,
|
|
32
|
+
0x0DCA..0x0DCA, 0x0DD2..0x0DD4, 0x0DD6..0x0DD6, 0x0E31..0x0E31,
|
|
33
|
+
0x0E34..0x0E3A, 0x0E47..0x0E4E, 0x0EB1..0x0EB1, 0x0EB4..0x0EBC,
|
|
34
|
+
0x0EC8..0x0ECE, 0x0F18..0x0F19, 0x0F35..0x0F35, 0x0F37..0x0F37,
|
|
35
|
+
0x0F39..0x0F39, 0x0F71..0x0F7E, 0x0F80..0x0F84, 0x0F86..0x0F87,
|
|
36
|
+
0x0F8D..0x0F97, 0x0F99..0x0FBC, 0x0FC6..0x0FC6, 0x102D..0x1030,
|
|
37
|
+
0x1032..0x1037, 0x1039..0x103A, 0x103D..0x103E, 0x1058..0x1059,
|
|
38
|
+
0x105E..0x1060, 0x1071..0x1074, 0x1082..0x1082, 0x1085..0x1086,
|
|
39
|
+
0x108D..0x108D, 0x109D..0x109D, 0x1160..0x11FF, 0x135D..0x135F,
|
|
40
|
+
0x1712..0x1714, 0x1732..0x1733, 0x1752..0x1753, 0x1772..0x1773,
|
|
41
|
+
0x17B4..0x17B5, 0x17B7..0x17BD, 0x17C6..0x17C6, 0x17C9..0x17D3,
|
|
42
|
+
0x17DD..0x17DD, 0x180B..0x180D, 0x180F..0x180F, 0x1885..0x1886,
|
|
43
|
+
0x18A9..0x18A9, 0x1920..0x1922, 0x1927..0x1928, 0x1932..0x1932,
|
|
44
|
+
0x1939..0x193B, 0x1A17..0x1A18, 0x1A1B..0x1A1B, 0x1A56..0x1A56,
|
|
45
|
+
0x1A58..0x1A5E, 0x1A60..0x1A60, 0x1A62..0x1A62, 0x1A65..0x1A6C,
|
|
46
|
+
0x1A73..0x1A7C, 0x1A7F..0x1A7F, 0x1AB0..0x1ACE, 0x1B00..0x1B03,
|
|
47
|
+
0x1B34..0x1B34, 0x1B36..0x1B3A, 0x1B3C..0x1B3C, 0x1B42..0x1B42,
|
|
48
|
+
0x1B6B..0x1B73, 0x1B80..0x1B81, 0x1BA2..0x1BA5, 0x1BA8..0x1BA9,
|
|
49
|
+
0x1BAB..0x1BAD, 0x1BE6..0x1BE6, 0x1BE8..0x1BE9, 0x1BED..0x1BED,
|
|
50
|
+
0x1BEF..0x1BF1, 0x1C2C..0x1C33, 0x1C36..0x1C37, 0x1CD0..0x1CD2,
|
|
51
|
+
0x1CD4..0x1CE0, 0x1CE2..0x1CE8, 0x1CED..0x1CED, 0x1CF4..0x1CF4,
|
|
52
|
+
0x1CF8..0x1CF9, 0x1DC0..0x1DFF, 0x200B..0x200F, 0x2060..0x206F,
|
|
53
|
+
0x20D0..0x20F0, 0x2CEF..0x2CF1, 0x2D7F..0x2D7F, 0x2DE0..0x2DFF,
|
|
54
|
+
0xA66F..0xA672, 0xA674..0xA67D, 0xA69E..0xA69F, 0xA6F0..0xA6F1,
|
|
55
|
+
0xA802..0xA802, 0xA806..0xA806, 0xA80B..0xA80B, 0xA825..0xA826,
|
|
56
|
+
0xA82C..0xA82C, 0xA8C4..0xA8C5, 0xA8E0..0xA8F1, 0xA8FF..0xA8FF,
|
|
57
|
+
0xA926..0xA92D, 0xA947..0xA951, 0xA980..0xA982, 0xA9B3..0xA9B3,
|
|
58
|
+
0xA9B6..0xA9B9, 0xA9BC..0xA9BD, 0xA9E5..0xA9E5, 0xAA29..0xAA2E,
|
|
59
|
+
0xAA31..0xAA32, 0xAA35..0xAA36, 0xAA43..0xAA43, 0xAA4C..0xAA4C,
|
|
60
|
+
0xAA7C..0xAA7C, 0xAAB0..0xAAB0, 0xAAB2..0xAAB4, 0xAAB7..0xAAB8,
|
|
61
|
+
0xAABE..0xAABF, 0xAAC1..0xAAC1, 0xAAEC..0xAAED, 0xAAF6..0xAAF6,
|
|
62
|
+
0xABE5..0xABE5, 0xABE8..0xABE8, 0xABED..0xABED, 0xD7B0..0xD7FF,
|
|
63
|
+
0xFB1E..0xFB1E, 0xFE00..0xFE0F, 0xFE20..0xFE2F, 0xFEFF..0xFEFF
|
|
64
|
+
].freeze
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Tessella
|
|
4
|
+
# Width's zero-width ranges (width.rb), generated from Unicode
|
|
5
|
+
# 15.1's UnicodeData.txt by tools/invisible_ranges.rb: every Mn and
|
|
6
|
+
# Me, the Hangul medial and final jamo, the zero-width and format
|
|
7
|
+
# characters, the variation selectors. This file holds the
|
|
8
|
+
# planes past the BMP, and joins the two.
|
|
9
|
+
module Width
|
|
10
|
+
INVISIBLE_HIGH = [
|
|
11
|
+
0x101FD..0x101FD, 0x102E0..0x102E0, 0x10376..0x1037A,
|
|
12
|
+
0x10A01..0x10A03, 0x10A05..0x10A06, 0x10A0C..0x10A0F,
|
|
13
|
+
0x10A38..0x10A3A, 0x10A3F..0x10A3F, 0x10AE5..0x10AE6,
|
|
14
|
+
0x10D24..0x10D27, 0x10EAB..0x10EAC, 0x10EFD..0x10EFF,
|
|
15
|
+
0x10F46..0x10F50, 0x10F82..0x10F85, 0x11001..0x11001,
|
|
16
|
+
0x11038..0x11046, 0x11070..0x11070, 0x11073..0x11074,
|
|
17
|
+
0x1107F..0x11081, 0x110B3..0x110B6, 0x110B9..0x110BA,
|
|
18
|
+
0x110C2..0x110C2, 0x11100..0x11102, 0x11127..0x1112B,
|
|
19
|
+
0x1112D..0x11134, 0x11173..0x11173, 0x11180..0x11181,
|
|
20
|
+
0x111B6..0x111BE, 0x111C9..0x111CC, 0x111CF..0x111CF,
|
|
21
|
+
0x1122F..0x11231, 0x11234..0x11234, 0x11236..0x11237,
|
|
22
|
+
0x1123E..0x1123E, 0x11241..0x11241, 0x112DF..0x112DF,
|
|
23
|
+
0x112E3..0x112EA, 0x11300..0x11301, 0x1133B..0x1133C,
|
|
24
|
+
0x11340..0x11340, 0x11366..0x1136C, 0x11370..0x11374,
|
|
25
|
+
0x11438..0x1143F, 0x11442..0x11444, 0x11446..0x11446,
|
|
26
|
+
0x1145E..0x1145E, 0x114B3..0x114B8, 0x114BA..0x114BA,
|
|
27
|
+
0x114BF..0x114C0, 0x114C2..0x114C3, 0x115B2..0x115B5,
|
|
28
|
+
0x115BC..0x115BD, 0x115BF..0x115C0, 0x115DC..0x115DD,
|
|
29
|
+
0x11633..0x1163A, 0x1163D..0x1163D, 0x1163F..0x11640,
|
|
30
|
+
0x116AB..0x116AB, 0x116AD..0x116AD, 0x116B0..0x116B5,
|
|
31
|
+
0x116B7..0x116B7, 0x1171D..0x1171F, 0x11722..0x11725,
|
|
32
|
+
0x11727..0x1172B, 0x1182F..0x11837, 0x11839..0x1183A,
|
|
33
|
+
0x1193B..0x1193C, 0x1193E..0x1193E, 0x11943..0x11943,
|
|
34
|
+
0x119D4..0x119D7, 0x119DA..0x119DB, 0x119E0..0x119E0,
|
|
35
|
+
0x11A01..0x11A0A, 0x11A33..0x11A38, 0x11A3B..0x11A3E,
|
|
36
|
+
0x11A47..0x11A47, 0x11A51..0x11A56, 0x11A59..0x11A5B,
|
|
37
|
+
0x11A8A..0x11A96, 0x11A98..0x11A99, 0x11C30..0x11C36,
|
|
38
|
+
0x11C38..0x11C3D, 0x11C3F..0x11C3F, 0x11C92..0x11CA7,
|
|
39
|
+
0x11CAA..0x11CB0, 0x11CB2..0x11CB3, 0x11CB5..0x11CB6,
|
|
40
|
+
0x11D31..0x11D36, 0x11D3A..0x11D3A, 0x11D3C..0x11D3D,
|
|
41
|
+
0x11D3F..0x11D45, 0x11D47..0x11D47, 0x11D90..0x11D91,
|
|
42
|
+
0x11D95..0x11D95, 0x11D97..0x11D97, 0x11EF3..0x11EF4,
|
|
43
|
+
0x11F00..0x11F01, 0x11F36..0x11F3A, 0x11F40..0x11F40,
|
|
44
|
+
0x11F42..0x11F42, 0x13440..0x13440, 0x13447..0x13455,
|
|
45
|
+
0x16AF0..0x16AF4, 0x16B30..0x16B36, 0x16F4F..0x16F4F,
|
|
46
|
+
0x16F8F..0x16F92, 0x1BC9D..0x1BC9E, 0x1CF00..0x1CF2D,
|
|
47
|
+
0x1CF30..0x1CF46, 0x1D167..0x1D169, 0x1D17B..0x1D182,
|
|
48
|
+
0x1D185..0x1D18B, 0x1D1AA..0x1D1AD, 0x1D242..0x1D244,
|
|
49
|
+
0x1DA00..0x1DA36, 0x1DA3B..0x1DA6C, 0x1DA75..0x1DA75,
|
|
50
|
+
0x1DA84..0x1DA84, 0x1DA9B..0x1DA9F, 0x1DAA1..0x1DAAF,
|
|
51
|
+
0x1E000..0x1E006, 0x1E008..0x1E018, 0x1E01B..0x1E021,
|
|
52
|
+
0x1E023..0x1E024, 0x1E026..0x1E02A, 0x1E08F..0x1E08F,
|
|
53
|
+
0x1E130..0x1E136, 0x1E2AE..0x1E2AE, 0x1E2EC..0x1E2EF,
|
|
54
|
+
0x1E4EC..0x1E4EF, 0x1E8D0..0x1E8D6, 0x1E944..0x1E94A,
|
|
55
|
+
0xE0100..0xE01EF
|
|
56
|
+
].freeze
|
|
57
|
+
|
|
58
|
+
INVISIBLE = (INVISIBLE_BMP + INVISIBLE_HIGH).freeze
|
|
59
|
+
end
|
|
60
|
+
end
|
data/lib/tessella.rb
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# tessella -- charts and text figures for a monospace grid, in Unicode
|
|
4
|
+
# or pure ASCII.
|
|
5
|
+
#
|
|
6
|
+
# The load order below is the dependency order, and the only place an
|
|
7
|
+
# tessella file is required: tools/bundle.rb concatenates the files in
|
|
8
|
+
# exactly this order into one, for vendoring (DESIGN.md). Standard
|
|
9
|
+
# library requires live here too, above the parts, and nowhere else.
|
|
10
|
+
# The command line is not part of it: lib/tessella/cli.rb loads it, on
|
|
11
|
+
# top of this file.
|
|
12
|
+
|
|
13
|
+
require "zlib"
|
|
14
|
+
|
|
15
|
+
require_relative "tessella/version"
|
|
16
|
+
require_relative "tessella/error"
|
|
17
|
+
require_relative "tessella/check"
|
|
18
|
+
require_relative "tessella/target"
|
|
19
|
+
require_relative "tessella/width"
|
|
20
|
+
require_relative "tessella/width_invisible"
|
|
21
|
+
require_relative "tessella/width_invisible_high"
|
|
22
|
+
require_relative "tessella/width_class"
|
|
23
|
+
require_relative "tessella/borders"
|
|
24
|
+
require_relative "tessella/glyphs"
|
|
25
|
+
require_relative "tessella/block"
|
|
26
|
+
require_relative "tessella/compose"
|
|
27
|
+
require_relative "tessella/compose_shadow"
|
|
28
|
+
require_relative "tessella/compose_fill"
|
|
29
|
+
require_relative "tessella/compose_grid"
|
|
30
|
+
require_relative "tessella/meter"
|
|
31
|
+
require_relative "tessella/meter_upright"
|
|
32
|
+
require_relative "tessella/rule"
|
|
33
|
+
require_relative "tessella/sparkline"
|
|
34
|
+
require_relative "tessella/text_forms"
|
|
35
|
+
require_relative "tessella/text"
|
|
36
|
+
require_relative "tessella/tree"
|
|
37
|
+
require_relative "tessella/table"
|
|
38
|
+
require_relative "tessella/table_cells"
|
|
39
|
+
require_relative "tessella/bitfield"
|
|
40
|
+
require_relative "tessella/wave"
|
|
41
|
+
require_relative "tessella/seq"
|
|
42
|
+
require_relative "tessella/raster"
|
|
43
|
+
require_relative "tessella/png"
|
|
44
|
+
require_relative "tessella/rmagick_reader"
|
|
45
|
+
require_relative "tessella/image_octant"
|
|
46
|
+
require_relative "tessella/image_petscii"
|
|
47
|
+
require_relative "tessella/image"
|
|
48
|
+
require_relative "tessella/lint"
|
|
49
|
+
require_relative "tessella/lint/lines"
|
|
50
|
+
require_relative "tessella/lint/target_rows"
|
|
51
|
+
require_relative "tessella/lint/shadows"
|
|
52
|
+
require_relative "tessella/lint/mixing"
|
|
53
|
+
require_relative "tessella/lint/drift"
|
|
54
|
+
require_relative "tessella/lint/geometry_checks"
|
|
55
|
+
require_relative "tessella/lint/geometry"
|
|
56
|
+
require_relative "tessella/lint/fences"
|
|
57
|
+
require_relative "tessella/lint/alphabet"
|
|
58
|
+
require_relative "tessella/lint/runner"
|
|
59
|
+
require_relative "tessella/cell"
|
|
60
|
+
require_relative "tessella/stats"
|
|
61
|
+
require_relative "tessella/axis"
|
|
62
|
+
require_relative "tessella/color"
|
|
63
|
+
require_relative "tessella/canvas"
|
|
64
|
+
require_relative "tessella/canvas/area"
|
|
65
|
+
require_relative "tessella/canvas/clip"
|
|
66
|
+
require_relative "tessella/canvas/braille"
|
|
67
|
+
require_relative "tessella/canvas/block"
|
|
68
|
+
require_relative "tessella/canvas/dot"
|
|
69
|
+
require_relative "tessella/canvas/half"
|
|
70
|
+
require_relative "tessella/canvas/eighths"
|
|
71
|
+
require_relative "tessella/canvas/sextant"
|
|
72
|
+
require_relative "tessella/canvas/ascii"
|
|
73
|
+
require_relative "tessella/canvas/density"
|
|
74
|
+
require_relative "tessella/frame"
|
|
75
|
+
require_relative "tessella/legend"
|
|
76
|
+
require_relative "tessella/chart"
|
|
77
|
+
require_relative "tessella/kinds/sideways"
|
|
78
|
+
require_relative "tessella/kinds/date_axis"
|
|
79
|
+
require_relative "tessella/kinds/error_bars"
|
|
80
|
+
require_relative "tessella/kinds/threshold"
|
|
81
|
+
require_relative "tessella/kinds/line"
|
|
82
|
+
require_relative "tessella/kinds/columns"
|
|
83
|
+
require_relative "tessella/kinds/multibar_fine"
|
|
84
|
+
require_relative "tessella/kinds/multibar"
|
|
85
|
+
require_relative "tessella/kinds/multibar_rows"
|
|
86
|
+
require_relative "tessella/kinds/multibar_columns"
|
|
87
|
+
require_relative "tessella/kinds/bar"
|
|
88
|
+
require_relative "tessella/kinds/box"
|
|
89
|
+
require_relative "tessella/kinds/box_upright"
|
|
90
|
+
require_relative "tessella/kinds/stem"
|
|
91
|
+
require_relative "tessella/kinds/heatmap"
|
|
92
|
+
require_relative "tessella/kinds/candlestick"
|
|
93
|
+
require_relative "tessella/kinds/pie_rim"
|
|
94
|
+
require_relative "tessella/kinds/pie"
|
metadata
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: tessella
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.3.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Stephane D'Alu
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: Line, scatter, stairs, bar, histogram, box, stem and density plots with
|
|
13
|
+
scaled axes, drawn in braille, block, dot or ASCII cells. No runtime dependency.
|
|
14
|
+
executables:
|
|
15
|
+
- tessella
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- LICENSE
|
|
20
|
+
- README.md
|
|
21
|
+
- doc/README.md
|
|
22
|
+
- doc/bitfield.md
|
|
23
|
+
- doc/charts.md
|
|
24
|
+
- doc/check.rb
|
|
25
|
+
- doc/cli.md
|
|
26
|
+
- doc/composition.md
|
|
27
|
+
- doc/getting-started.md
|
|
28
|
+
- doc/glyphs.md
|
|
29
|
+
- doc/images.md
|
|
30
|
+
- doc/library.md
|
|
31
|
+
- doc/lint.md
|
|
32
|
+
- doc/meter.md
|
|
33
|
+
- doc/rule.md
|
|
34
|
+
- doc/seq.md
|
|
35
|
+
- doc/sparkline.md
|
|
36
|
+
- doc/table.md
|
|
37
|
+
- doc/targets.md
|
|
38
|
+
- doc/text.md
|
|
39
|
+
- doc/tree.md
|
|
40
|
+
- doc/wave.md
|
|
41
|
+
- examples/README.md
|
|
42
|
+
- examples/ages.txt
|
|
43
|
+
- examples/bad.csv
|
|
44
|
+
- examples/boxes.txt
|
|
45
|
+
- examples/broken.txt
|
|
46
|
+
- examples/calibration.rb
|
|
47
|
+
- examples/cities.csv
|
|
48
|
+
- examples/cjk.rb
|
|
49
|
+
- examples/comment.rb
|
|
50
|
+
- examples/comment.sh
|
|
51
|
+
- examples/cpu.txt
|
|
52
|
+
- examples/dashboard.sh
|
|
53
|
+
- examples/datasheet.rb
|
|
54
|
+
- examples/disc.pgm
|
|
55
|
+
- examples/disks.sh
|
|
56
|
+
- examples/disks.txt
|
|
57
|
+
- examples/dose.txt
|
|
58
|
+
- examples/drift.txt
|
|
59
|
+
- examples/ethernet.txt
|
|
60
|
+
- examples/figure.c
|
|
61
|
+
- examples/fit.rb
|
|
62
|
+
- examples/floors.rb
|
|
63
|
+
- examples/gallery.sh
|
|
64
|
+
- examples/gauges.sh
|
|
65
|
+
- examples/gradient.rb
|
|
66
|
+
- examples/growth.txt
|
|
67
|
+
- examples/hosts.csv
|
|
68
|
+
- examples/icmp.txt
|
|
69
|
+
- examples/ipv4.txt
|
|
70
|
+
- examples/kinds.csv
|
|
71
|
+
- examples/langs.csv
|
|
72
|
+
- examples/lint.rb
|
|
73
|
+
- examples/load.rb
|
|
74
|
+
- examples/login.txt
|
|
75
|
+
- examples/neg.csv
|
|
76
|
+
- examples/normal.txt
|
|
77
|
+
- examples/note.txt
|
|
78
|
+
- examples/notes-fixed.md
|
|
79
|
+
- examples/notes.md
|
|
80
|
+
- examples/ohlc.txt
|
|
81
|
+
- examples/os.csv
|
|
82
|
+
- examples/outline.txt
|
|
83
|
+
- examples/plot.txt
|
|
84
|
+
- examples/refusals.rb
|
|
85
|
+
- examples/report.sh
|
|
86
|
+
- examples/rfc.sh
|
|
87
|
+
- examples/samples.txt
|
|
88
|
+
- examples/shapes.pgm
|
|
89
|
+
- examples/sizes.tsv
|
|
90
|
+
- examples/spi.txt
|
|
91
|
+
- examples/status.sh
|
|
92
|
+
- examples/stem.txt
|
|
93
|
+
- examples/table-drift.txt
|
|
94
|
+
- examples/temps.txt
|
|
95
|
+
- examples/trig.sh
|
|
96
|
+
- examples/trig.txt
|
|
97
|
+
- examples/week.txt
|
|
98
|
+
- examples/wide.txt
|
|
99
|
+
- exe/tessella
|
|
100
|
+
- lib/tessella.rb
|
|
101
|
+
- lib/tessella/axis.rb
|
|
102
|
+
- lib/tessella/bitfield.rb
|
|
103
|
+
- lib/tessella/block.rb
|
|
104
|
+
- lib/tessella/borders.rb
|
|
105
|
+
- lib/tessella/canvas.rb
|
|
106
|
+
- lib/tessella/canvas/area.rb
|
|
107
|
+
- lib/tessella/canvas/ascii.rb
|
|
108
|
+
- lib/tessella/canvas/block.rb
|
|
109
|
+
- lib/tessella/canvas/braille.rb
|
|
110
|
+
- lib/tessella/canvas/clip.rb
|
|
111
|
+
- lib/tessella/canvas/density.rb
|
|
112
|
+
- lib/tessella/canvas/dot.rb
|
|
113
|
+
- lib/tessella/canvas/eighths.rb
|
|
114
|
+
- lib/tessella/canvas/half.rb
|
|
115
|
+
- lib/tessella/canvas/sextant.rb
|
|
116
|
+
- lib/tessella/cell.rb
|
|
117
|
+
- lib/tessella/chart.rb
|
|
118
|
+
- lib/tessella/check.rb
|
|
119
|
+
- lib/tessella/cli.rb
|
|
120
|
+
- lib/tessella/cli/bitfield.rb
|
|
121
|
+
- lib/tessella/cli/chart.rb
|
|
122
|
+
- lib/tessella/cli/chart_candle.rb
|
|
123
|
+
- lib/tessella/cli/chart_heatmap.rb
|
|
124
|
+
- lib/tessella/cli/chart_help.rb
|
|
125
|
+
- lib/tessella/cli/chart_pie.rb
|
|
126
|
+
- lib/tessella/cli/compose.rb
|
|
127
|
+
- lib/tessella/cli/compose_options.rb
|
|
128
|
+
- lib/tessella/cli/glyphs.rb
|
|
129
|
+
- lib/tessella/cli/image.rb
|
|
130
|
+
- lib/tessella/cli/input.rb
|
|
131
|
+
- lib/tessella/cli/iso_time.rb
|
|
132
|
+
- lib/tessella/cli/lint.rb
|
|
133
|
+
- lib/tessella/cli/lint_options.rb
|
|
134
|
+
- lib/tessella/cli/main.rb
|
|
135
|
+
- lib/tessella/cli/meter.rb
|
|
136
|
+
- lib/tessella/cli/rule.rb
|
|
137
|
+
- lib/tessella/cli/seq.rb
|
|
138
|
+
- lib/tessella/cli/sparkline.rb
|
|
139
|
+
- lib/tessella/cli/table.rb
|
|
140
|
+
- lib/tessella/cli/text.rb
|
|
141
|
+
- lib/tessella/cli/tree.rb
|
|
142
|
+
- lib/tessella/cli/wave.rb
|
|
143
|
+
- lib/tessella/color.rb
|
|
144
|
+
- lib/tessella/compose.rb
|
|
145
|
+
- lib/tessella/compose_fill.rb
|
|
146
|
+
- lib/tessella/compose_grid.rb
|
|
147
|
+
- lib/tessella/compose_shadow.rb
|
|
148
|
+
- lib/tessella/error.rb
|
|
149
|
+
- lib/tessella/frame.rb
|
|
150
|
+
- lib/tessella/glyphs.rb
|
|
151
|
+
- lib/tessella/image.rb
|
|
152
|
+
- lib/tessella/image_octant.rb
|
|
153
|
+
- lib/tessella/image_petscii.rb
|
|
154
|
+
- lib/tessella/kinds/bar.rb
|
|
155
|
+
- lib/tessella/kinds/box.rb
|
|
156
|
+
- lib/tessella/kinds/box_upright.rb
|
|
157
|
+
- lib/tessella/kinds/candlestick.rb
|
|
158
|
+
- lib/tessella/kinds/columns.rb
|
|
159
|
+
- lib/tessella/kinds/date_axis.rb
|
|
160
|
+
- lib/tessella/kinds/error_bars.rb
|
|
161
|
+
- lib/tessella/kinds/heatmap.rb
|
|
162
|
+
- lib/tessella/kinds/line.rb
|
|
163
|
+
- lib/tessella/kinds/multibar.rb
|
|
164
|
+
- lib/tessella/kinds/multibar_columns.rb
|
|
165
|
+
- lib/tessella/kinds/multibar_fine.rb
|
|
166
|
+
- lib/tessella/kinds/multibar_rows.rb
|
|
167
|
+
- lib/tessella/kinds/pie.rb
|
|
168
|
+
- lib/tessella/kinds/pie_rim.rb
|
|
169
|
+
- lib/tessella/kinds/sideways.rb
|
|
170
|
+
- lib/tessella/kinds/stem.rb
|
|
171
|
+
- lib/tessella/kinds/threshold.rb
|
|
172
|
+
- lib/tessella/legend.rb
|
|
173
|
+
- lib/tessella/lint.rb
|
|
174
|
+
- lib/tessella/lint/alphabet.rb
|
|
175
|
+
- lib/tessella/lint/drift.rb
|
|
176
|
+
- lib/tessella/lint/fences.rb
|
|
177
|
+
- lib/tessella/lint/geometry.rb
|
|
178
|
+
- lib/tessella/lint/geometry_checks.rb
|
|
179
|
+
- lib/tessella/lint/lines.rb
|
|
180
|
+
- lib/tessella/lint/mixing.rb
|
|
181
|
+
- lib/tessella/lint/runner.rb
|
|
182
|
+
- lib/tessella/lint/shadows.rb
|
|
183
|
+
- lib/tessella/lint/target_rows.rb
|
|
184
|
+
- lib/tessella/meter.rb
|
|
185
|
+
- lib/tessella/meter_upright.rb
|
|
186
|
+
- lib/tessella/png.rb
|
|
187
|
+
- lib/tessella/raster.rb
|
|
188
|
+
- lib/tessella/rmagick_reader.rb
|
|
189
|
+
- lib/tessella/rule.rb
|
|
190
|
+
- lib/tessella/seq.rb
|
|
191
|
+
- lib/tessella/sparkline.rb
|
|
192
|
+
- lib/tessella/stats.rb
|
|
193
|
+
- lib/tessella/table.rb
|
|
194
|
+
- lib/tessella/table_cells.rb
|
|
195
|
+
- lib/tessella/target.rb
|
|
196
|
+
- lib/tessella/text.rb
|
|
197
|
+
- lib/tessella/text_forms.rb
|
|
198
|
+
- lib/tessella/tree.rb
|
|
199
|
+
- lib/tessella/version.rb
|
|
200
|
+
- lib/tessella/wave.rb
|
|
201
|
+
- lib/tessella/width.rb
|
|
202
|
+
- lib/tessella/width_class.rb
|
|
203
|
+
- lib/tessella/width_invisible.rb
|
|
204
|
+
- lib/tessella/width_invisible_high.rb
|
|
205
|
+
licenses:
|
|
206
|
+
- MIT
|
|
207
|
+
metadata:
|
|
208
|
+
rubygems_mfa_required: 'true'
|
|
209
|
+
rdoc_options: []
|
|
210
|
+
require_paths:
|
|
211
|
+
- lib
|
|
212
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
|
+
requirements:
|
|
214
|
+
- - ">="
|
|
215
|
+
- !ruby/object:Gem::Version
|
|
216
|
+
version: '3.4'
|
|
217
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
|
+
requirements:
|
|
219
|
+
- - ">="
|
|
220
|
+
- !ruby/object:Gem::Version
|
|
221
|
+
version: '0'
|
|
222
|
+
requirements: []
|
|
223
|
+
rubygems_version: 4.0.21
|
|
224
|
+
specification_version: 4
|
|
225
|
+
summary: Charts for a monospace grid, in Unicode or pure ASCII
|
|
226
|
+
test_files: []
|