whirled_peas 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/README.md +62 -29
- data/Rakefile +3 -2
- data/examples/intro.rb +52 -0
- data/examples/scrolling.rb +53 -0
- data/lib/whirled_peas.rb +2 -8
- data/lib/whirled_peas/command_line.rb +25 -33
- data/lib/whirled_peas/graphics/box_painter.rb +9 -1
- data/lib/whirled_peas/graphics/composer.rb +80 -0
- data/lib/whirled_peas/graphics/container_coords.rb +18 -8
- data/lib/whirled_peas/graphics/container_dimensions.rb +17 -7
- data/lib/whirled_peas/graphics/container_painter.rb +151 -33
- data/lib/whirled_peas/graphics/debugger.rb +10 -1
- data/lib/whirled_peas/graphics/grid_painter.rb +14 -2
- data/lib/whirled_peas/graphics/mock_screen.rb +1 -1
- data/lib/whirled_peas/graphics/painter.rb +1 -6
- data/lib/whirled_peas/graphics/renderer.rb +1 -29
- data/lib/whirled_peas/graphics/screen.rb +8 -3
- data/lib/whirled_peas/graphics/text_painter.rb +6 -4
- data/lib/whirled_peas/settings/container_settings.rb +11 -0
- data/lib/whirled_peas/settings/debugger.rb +9 -0
- data/lib/whirled_peas/settings/grid_settings.rb +4 -0
- data/lib/whirled_peas/settings/scrollbar.rb +15 -0
- data/lib/whirled_peas/version.rb +1 -1
- data/screen_test/rendered/elements/box.frame +1 -1
- data/screen_test/rendered/elements/grid.frame +1 -1
- data/screen_test/rendered/elements/screen_overflow.frame +1 -0
- data/screen_test/rendered/elements/text.frame +1 -1
- data/screen_test/rendered/elements/text_multiline.frame +1 -1
- data/screen_test/rendered/settings/align/box.frame +1 -1
- data/screen_test/rendered/settings/align/box.rb +14 -10
- data/screen_test/rendered/settings/align/children_center.frame +1 -1
- data/screen_test/rendered/settings/align/children_left.frame +1 -1
- data/screen_test/rendered/settings/align/children_right.frame +1 -1
- data/screen_test/rendered/settings/align/grid.frame +1 -1
- data/screen_test/rendered/settings/ansi/bold.frame +1 -1
- data/screen_test/rendered/settings/ansi/color.frame +1 -1
- data/screen_test/rendered/settings/ansi/underline.frame +1 -1
- data/screen_test/rendered/settings/border.frame +1 -1
- data/screen_test/rendered/settings/flow/box_b2t.frame +1 -0
- data/screen_test/rendered/settings/flow/box_b2t.rb +24 -0
- data/screen_test/rendered/settings/flow/{l2r.frame → box_l2r.frame} +1 -1
- data/screen_test/rendered/settings/flow/{l2r.rb → box_l2r.rb} +0 -0
- data/screen_test/rendered/settings/flow/box_r2l.frame +1 -0
- data/screen_test/rendered/settings/flow/box_r2l.rb +24 -0
- data/screen_test/rendered/settings/flow/{t2b.frame → box_t2b.frame} +1 -1
- data/screen_test/rendered/settings/flow/{t2b.rb → box_t2b.rb} +0 -0
- data/screen_test/rendered/settings/flow/grid_b2t.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_b2t.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_l2r.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_l2r.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_r2l.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_r2l.rb +14 -0
- data/screen_test/rendered/settings/flow/grid_t2b.frame +1 -0
- data/screen_test/rendered/settings/flow/grid_t2b.rb +14 -0
- data/screen_test/rendered/settings/height/box.frame +1 -1
- data/screen_test/rendered/settings/height/grid.frame +1 -1
- data/screen_test/rendered/settings/height/overflow_box.frame +1 -1
- data/screen_test/rendered/settings/height/overflow_box_l2r.frame +1 -1
- data/screen_test/rendered/settings/height/overflow_box_t2b.frame +1 -1
- data/screen_test/rendered/settings/height/overflow_grid.frame +1 -1
- data/screen_test/rendered/settings/margin.frame +1 -1
- data/screen_test/rendered/settings/padding.frame +1 -1
- data/screen_test/rendered/settings/position/box_left.frame +1 -1
- data/screen_test/rendered/settings/position/box_left_negative.frame +1 -1
- data/screen_test/rendered/settings/position/box_top.frame +1 -1
- data/screen_test/rendered/settings/position/box_top_negative.frame +1 -1
- data/screen_test/rendered/settings/position/grid_left.frame +1 -1
- data/screen_test/rendered/settings/position/grid_left_negative.frame +1 -1
- data/screen_test/rendered/settings/position/grid_top.frame +1 -1
- data/screen_test/rendered/settings/position/grid_top_negative.frame +1 -1
- data/screen_test/rendered/settings/scroll/horiz_box.frame +1 -0
- data/screen_test/rendered/settings/scroll/horiz_box.rb +15 -0
- data/screen_test/rendered/settings/scroll/vert_box.frame +1 -0
- data/screen_test/rendered/settings/scroll/vert_box.rb +18 -0
- data/screen_test/rendered/settings/title_font.frame +1 -1
- data/screen_test/rendered/settings/width/box.frame +1 -1
- data/screen_test/rendered/settings/width/grid.frame +1 -1
- data/screen_test/rendered/settings/width/overflow_box.frame +1 -1
- data/screen_test/rendered/settings/width/overflow_box_l2r.frame +1 -1
- data/screen_test/rendered/settings/width/overflow_box_t2b.frame +1 -1
- data/screen_test/rendered/settings/width/overflow_grid.frame +1 -1
- data/screen_test/screen_tester.rb +13 -3
- metadata +27 -16
- data/bin/debug +0 -35
- data/lib/whirled_peas/debugger.rb +0 -80
- data/lib/whirled_peas/template.rb +0 -5
- data/lib/whirled_peas/template/box_element.rb +0 -8
- data/lib/whirled_peas/template/composer.rb +0 -68
- data/lib/whirled_peas/template/container.rb +0 -28
- data/lib/whirled_peas/template/debugger.rb +0 -34
- data/lib/whirled_peas/template/element.rb +0 -13
- data/lib/whirled_peas/template/grid_element.rb +0 -8
- data/lib/whirled_peas/template/text_element.rb +0 -24
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer, settings|
|
6
|
+
composer.add_grid do |_, settings|
|
7
|
+
settings.flow = :l2r
|
8
|
+
settings.full_border
|
9
|
+
settings.num_cols = 4
|
10
|
+
14.times.map { |i| i + 1 }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━┳━━┳━━┳━━┓[0m[2;1H[37m┃ ┃ ┃ ┃ ┃[0m[3;1H[37m┣━━╋━━╋━━╋━━┫[0m[4;1H[37m┃ ┃ ┃ ┃ ┃[0m[5;1H[37m┣━━╋━━╋━━╋━━┫[0m[6;1H[37m┃ ┃ ┃ ┃ ┃[0m[7;1H[37m┣━━╋━━╋━━╋━━┫[0m[8;1H[37m┃ ┃ ┃ ┃ ┃[0m[9;1H[37m┗━━┻━━┻━━┻━━┛[0m[2;11H1[2;8H2[2;5H3[2;2H4[4;11H5[4;8H6[4;5H7[4;2H8[6;11H9[6;8H10[6;5H11[6;2H12[8;11H13[8;8H14[0m[32;1H[?25h
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer, settings|
|
6
|
+
composer.add_grid do |_, settings|
|
7
|
+
settings.flow = :r2l
|
8
|
+
settings.full_border
|
9
|
+
settings.num_cols = 4
|
10
|
+
14.times.map { |i| i + 1 }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━┳━━┳━━┳━━┓[0m[2;1H[37m┃ ┃ ┃ ┃ ┃[0m[3;1H[37m┣━━╋━━╋━━╋━━┫[0m[4;1H[37m┃ ┃ ┃ ┃ ┃[0m[5;1H[37m┣━━╋━━╋━━╋━━┫[0m[6;1H[37m┃ ┃ ┃ ┃ ┃[0m[7;1H[37m┣━━╋━━╋━━╋━━┫[0m[8;1H[37m┃ ┃ ┃ ┃ ┃[0m[9;1H[37m┗━━┻━━┻━━┻━━┛[0m[2;2H1[4;2H2[6;2H3[8;2H4[2;5H5[4;5H6[6;5H7[8;5H8[2;8H9[4;8H10[6;8H11[8;8H12[2;11H13[4;11H14[0m[32;1H[?25h
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer, settings|
|
6
|
+
composer.add_grid do |_, settings|
|
7
|
+
settings.flow = :t2b
|
8
|
+
settings.full_border
|
9
|
+
settings.num_cols = 4
|
10
|
+
14.times.map { |i| i + 1 }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━━━━┛[0m[2;2HMulti[3;2HLine[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━━━━┛[0m[2;2HMulti[3;2HLine[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━┳━┳━┳━┓[0m[2;1H[37m┃ ┃ ┃ ┃ ┃[0m[3;1H[37m┃ ┃ ┃ ┃ ┃[0m[4;1H[37m┃ ┃ ┃ ┃ ┃[0m[5;1H[37m┃ ┃ ┃ ┃ ┃[0m[6;1H[37m┃ ┃ ┃ ┃ ┃[0m[7;1H[37m┣━╋━╋━╋━┫[0m[8;1H[37m┃ ┃ ┃ ┃ ┃[0m[9;1H[37m┃ ┃ ┃ ┃ ┃[0m[10;1H[37m┃ ┃ ┃ ┃ ┃[0m[11;1H[37m┃ ┃ ┃ ┃ ┃[0m[12;1H[37m┃ ┃ ┃ ┃ ┃[0m[13;1H[37m┣━╋━╋━╋━┫[0m[14;1H[37m┃ ┃ ┃ ┃ ┃[0m[15;1H[37m┃ ┃ ┃ ┃ ┃[0m[16;1H[37m┃ ┃ ┃ ┃ ┃[0m[17;1H[37m┃ ┃ ┃ ┃ ┃[0m[18;1H[37m┃ ┃ ┃ ┃ ┃[0m[19;1H[37m┗━┻━┻━┻━┛[0m[2;2H0[2;4H1[2;6H2[2;8H3[8;2H4[8;4H5[8;6H6[8;8H7[14;2H8[14;4H9[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━┳━┳━┳━┓[0m[2;1H[37m┃ ┃ ┃ ┃ ┃[0m[3;1H[37m┃ ┃ ┃ ┃ ┃[0m[4;1H[37m┃ ┃ ┃ ┃ ┃[0m[5;1H[37m┃ ┃ ┃ ┃ ┃[0m[6;1H[37m┃ ┃ ┃ ┃ ┃[0m[7;1H[37m┣━╋━╋━╋━┫[0m[8;1H[37m┃ ┃ ┃ ┃ ┃[0m[9;1H[37m┃ ┃ ┃ ┃ ┃[0m[10;1H[37m┃ ┃ ┃ ┃ ┃[0m[11;1H[37m┃ ┃ ┃ ┃ ┃[0m[12;1H[37m┃ ┃ ┃ ┃ ┃[0m[13;1H[37m┣━╋━╋━╋━┫[0m[14;1H[37m┃ ┃ ┃ ┃ ┃[0m[15;1H[37m┃ ┃ ┃ ┃ ┃[0m[16;1H[37m┃ ┃ ┃ ┃ ┃[0m[17;1H[37m┃ ┃ ┃ ┃ ┃[0m[18;1H[37m┃ ┃ ┃ ┃ ┃[0m[19;1H[37m┗━┻━┻━┻━┛[0m[2;2H0[2;4H1[2;6H2[2;8H3[8;2H4[8;4H5[8;6H6[8;8H7[14;2H8[14;4H9[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[2;3H0[3;3H1[4;3H2[5;3H3[6;3H4[2;4H0[3;4H1[4;4H2[5;4H3[6;4H4[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[2;3H0[3;3H1[4;3H2[5;3H3[6;3H4[2;4H0[3;4H1[4;4H2[5;4H3[6;4H4[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━┛[0m[2;2HXO[3;2HXO[4;2HXO[5;2HXO[6;2HXO[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━┛[0m[2;2HXO[3;2HXO[4;2HXO[5;2HXO[6;2HXO[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━┛[0m[2;2H0[3;2H1[4;2H2[5;2H3[6;2H4[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┃ ┃[0m[8;1H[37m┗━━━━━━━━━━━━━━━━━━━┛[0m[4;7H[37m┏━━━━━━━━━┓[0m[5;7H[37m┃ ┃[0m[6;7H[37m┗━━━━━━━━━┛[0m[5;8HInner Box[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┃ ┃[0m[8;1H[37m┗━━━━━━━━━━━━━━━━━━━┛[0m[4;7H[37m┏━━━━━━━━━┓[0m[5;7H[37m┃ ┃[0m[6;7H[37m┗━━━━━━━━━┛[0m[5;8HInner Box[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┗━━━━━━━━━━━━━━━━━━━┛[0m[4;7HPadded Room[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┗━━━━━━━━━━━━━━━━━━━┛[0m[4;7HPadded Room[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;15H[31m┏━━━[0m[13;15H[31m┃ [0m[14;15H[31m┃ [0m[15;15H[31m┃ [0m[16;15H[31m┃ [0m[17;15H[31m┃ [0m[18;15H[31m┗━━━[0m[13;16H123[14;16H223[15;16H333[16;16H443[17;16H543[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;15H[31m┏━━━[0m[13;15H[31m┃ [0m[14;15H[31m┃ [0m[15;15H[31m┃ [0m[16;15H[31m┃ [0m[17;15H[31m┃ [0m[18;15H[31m┗━━━[0m[13;16H123[14;16H223[15;16H333[16;16H443[17;16H543[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;12H[31m━━━┓[0m[13;12H[31m ┃[0m[14;12H[31m ┃[0m[15;12H[31m ┃[0m[16;12H[31m ┃[0m[17;12H[31m ┃[0m[18;12H[31m━━━┛[0m[13;12H345[14;12H344[15;12H333[16;12H322[17;12H321[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;12H[31m━━━┓[0m[13;12H[31m ┃[0m[14;12H[31m ┃[0m[15;12H[31m ┃[0m[16;12H[31m ┃[0m[17;12H[31m ┃[0m[18;12H[31m━━━┛[0m[13;12H345[14;12H344[15;12H333[16;12H322[17;12H321[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[15;12H[31m┏━━━━━┓[0m[16;12H[31m┃ ┃[0m[17;12H[31m┃ ┃[0m[18;12H[31m┃ ┃[0m[16;13H12345[17;13H22344[18;13H33333[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[15;12H[31m┏━━━━━┓[0m[16;12H[31m┃ ┃[0m[17;12H[31m┃ ┃[0m[18;12H[31m┃ ┃[0m[16;13H12345[17;13H22344[18;13H33333[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;12H[31m┃ ┃[0m[13;12H[31m┃ ┃[0m[14;12H[31m┃ ┃[0m[15;12H[31m┗━━━━━┛[0m[12;13H33333[13;13H44322[14;13H54321[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┗━━━━━━━┛[0m[12;12H[31m┃ ┃[0m[13;12H[31m┃ ┃[0m[14;12H[31m┃ ┃[0m[15;12H[31m┗━━━━━┛[0m[12;13H33333[13;13H44322[14;13H54321[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;15H[31m┏━━━[0m[13;15H[31m┃ [0m[14;15H[31m┣━━━[0m[15;15H[31m┃ [0m[16;15H[31m┣━━━[0m[17;15H[31m┃ [0m[18;15H[31m┣━━━[0m[19;15H[31m┃ [0m[20;15H[31m┣━━━[0m[21;15H[31m┃ [0m[22;15H[31m┗━━━[0m[13;16H123[15;16H223[17;16H333[19;16H443[21;16H543[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;15H[31m┏━━━[0m[13;15H[31m┃ [0m[14;15H[31m┣━━━[0m[15;15H[31m┃ [0m[16;15H[31m┣━━━[0m[17;15H[31m┃ [0m[18;15H[31m┣━━━[0m[19;15H[31m┃ [0m[20;15H[31m┣━━━[0m[21;15H[31m┃ [0m[22;15H[31m┗━━━[0m[13;16H123[15;16H223[17;16H333[19;16H443[21;16H543[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;12H[31m━━━┓[0m[13;12H[31m ┃[0m[14;12H[31m━━━┫[0m[15;12H[31m ┃[0m[16;12H[31m━━━┫[0m[17;12H[31m ┃[0m[18;12H[31m━━━┫[0m[19;12H[31m ┃[0m[20;12H[31m━━━┫[0m[21;12H[31m ┃[0m[22;12H[31m━━━┛[0m[13;12H345[15;12H344[17;12H333[19;12H322[21;12H321[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;12H[31m━━━┓[0m[13;12H[31m ┃[0m[14;12H[31m━━━┫[0m[15;12H[31m ┃[0m[16;12H[31m━━━┫[0m[17;12H[31m ┃[0m[18;12H[31m━━━┫[0m[19;12H[31m ┃[0m[20;12H[31m━━━┫[0m[21;12H[31m ┃[0m[22;12H[31m━━━┛[0m[13;12H345[15;12H344[17;12H333[19;12H322[21;12H321[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[15;12H[31m┏━━━━━┓[0m[16;12H[31m┃ ┃[0m[17;12H[31m┣━━━━━┫[0m[18;12H[31m┃ ┃[0m[19;12H[31m┣━━━━━┫[0m[20;12H[31m┃ ┃[0m[21;12H[31m┣━━━━━┫[0m[22;12H[31m┃ ┃[0m[16;13H12345[18;13H22344[20;13H33333[22;13H44322[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[15;12H[31m┏━━━━━┓[0m[16;12H[31m┃ ┃[0m[17;12H[31m┣━━━━━┫[0m[18;12H[31m┃ ┃[0m[19;12H[31m┣━━━━━┫[0m[20;12H[31m┃ ┃[0m[21;12H[31m┣━━━━━┫[0m[22;12H[31m┃ ┃[0m[16;13H12345[18;13H22344[20;13H33333[22;13H44322[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;12H[31m┃ ┃[0m[13;12H[31m┣━━━━━┫[0m[14;12H[31m┃ ┃[0m[15;12H[31m┣━━━━━┫[0m[16;12H[31m┃ ┃[0m[17;12H[31m┣━━━━━┫[0m[18;12H[31m┃ ┃[0m[19;12H[31m┗━━━━━┛[0m[12;13H22344[14;13H33333[16;13H44322[18;13H54321[0m[
|
1
|
+
[?25l[1;1H[J[11;11H[32m┏━━━━━━━┓[0m[12;11H[32m┃ ┃[0m[13;11H[32m┃ ┃[0m[14;11H[32m┃ ┃[0m[15;11H[32m┃ ┃[0m[16;11H[32m┃ ┃[0m[17;11H[32m┃ ┃[0m[18;11H[32m┃ ┃[0m[19;11H[32m┃ ┃[0m[20;11H[32m┃ ┃[0m[21;11H[32m┃ ┃[0m[22;11H[32m┃ ┃[0m[23;11H[32m┗━━━━━━━┛[0m[12;12H[31m┃ ┃[0m[13;12H[31m┣━━━━━┫[0m[14;12H[31m┃ ┃[0m[15;12H[31m┣━━━━━┫[0m[16;12H[31m┃ ┃[0m[17;12H[31m┣━━━━━┫[0m[18;12H[31m┃ ┃[0m[19;12H[31m┗━━━━━┛[0m[12;13H22344[14;13H33333[16;13H44322[18;13H54321[0m[32;1H[?25h
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃▗▖ ┃[0m[4;1H[37m┗━━━━━┛[0m[2;2HEFGHI[0m[32;1H[?25h
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer, settings|
|
6
|
+
settings.full_border
|
7
|
+
settings.set_scrollbar(horiz: true)
|
8
|
+
settings.width = 5
|
9
|
+
composer.add_box('Inner') do |composer, settings|
|
10
|
+
settings.set_position(left: -4)
|
11
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━┓[0m[2;1H[37m┃ ▗┃[0m[3;1H[37m┃ ▝┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┗━━┛[0m[2;2HE[3;2HF[4;2HG[5;2HH[6;2HI[0m[32;1H[?25h
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer, settings|
|
6
|
+
settings.full_border
|
7
|
+
settings.set_scrollbar(vert: true)
|
8
|
+
settings.height = 5
|
9
|
+
composer.add_box('Inner') do |composer, settings|
|
10
|
+
settings.flow = :t2b
|
11
|
+
settings.set_position(top: -4)
|
12
|
+
26.times do |i|
|
13
|
+
composer.add_text { ('A'.ord + i).chr }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H████████╗███████╗███████╗████████╗[2;1H╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝[3;1H ██║ █████╗ ███████╗ ██║ [4;1H ██║ ██╔══╝ ╚════██║ ██║ [5;1H ██║ ███████╗███████║ ██║ [6;1H ╚═╝ ╚══════╝╚══════╝ ╚═╝ [0m[
|
1
|
+
[?25l[1;1H[J[1;1H████████╗███████╗███████╗████████╗[2;1H╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝[3;1H ██║ █████╗ ███████╗ ██║ [4;1H ██║ ██╔══╝ ╚════██║ ██║ [5;1H ██║ ███████╗███████║ ██║ [6;1H ╚═╝ ╚══════╝╚══════╝ ╚═╝ [0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[0m[2;2HHow big is it?[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[0m[2;2HHow big is it?[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃ ┃[0m[3;1H[37m┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫[0m[4;1H[37m┃ ┃ ┃[0m[5;1H[37m┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫[0m[6;1H[37m┃ ┃ ┃[0m[7;1H[37m┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[0m[2;2HHow big is it?[2;33HHow big is it?[4;2HHow big is it?[4;33HHow big is it?[6;2HHow big is it?[6;33HHow big is it?[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[0m[2;1H[37m┃ ┃ ┃[0m[3;1H[37m┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫[0m[4;1H[37m┃ ┃ ┃[0m[5;1H[37m┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫[0m[6;1H[37m┃ ┃ ┃[0m[7;1H[37m┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[0m[2;2HHow big is it?[2;33HHow big is it?[4;2HHow big is it?[4;33HHow big is it?[6;2HHow big is it?[6;33HHow big is it?[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2HABCDEFGHIJ[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2HABCDEFGHIJ[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2H0|[2;4H0|1|[2;8H0|1|[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2H0|[2;4H0|1|[2;8H0|1|[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┃ ┃[0m[8;1H[37m┃ ┃[0m[9;1H[37m┃ ┃[0m[10;1H[37m┃ ┃[0m[11;1H[37m┃ ┃[0m[12;1H[37m┗━━━━━━━━━━┛[0m[2;2HXO[3;2HXOXO[4;2HXOXOXO[5;2HXOXOXOXO[6;2HXOXOXOXOXO[7;2HXOXOXOXOXO[8;2HXOXOXOXOXO[9;2HXOXOXOXOXO[10;2HXOXOXOXOXO[11;2HXOXOXOXOXO[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┃ ┃[0m[4;1H[37m┃ ┃[0m[5;1H[37m┃ ┃[0m[6;1H[37m┃ ┃[0m[7;1H[37m┃ ┃[0m[8;1H[37m┃ ┃[0m[9;1H[37m┃ ┃[0m[10;1H[37m┃ ┃[0m[11;1H[37m┃ ┃[0m[12;1H[37m┗━━━━━━━━━━┛[0m[2;2HXO[3;2HXOXO[4;2HXOXOXO[5;2HXOXOXOXO[6;2HXOXOXOXOXO[7;2HXOXOXOXOXO[8;2HXOXOXOXOXO[9;2HXOXOXOXOXO[10;2HXOXOXOXOXO[11;2HXOXOXOXOXO[0m[32;1H[?25h
|
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2HABCDEFGHIJ[0m[
|
1
|
+
[?25l[1;1H[J[1;1H[37m┏━━━━━━━━━━┓[0m[2;1H[37m┃ ┃[0m[3;1H[37m┗━━━━━━━━━━┛[0m[2;2HABCDEFGHIJ[0m[32;1H[?25h
|
@@ -10,11 +10,16 @@ require 'whirled_peas/utils/formatted_string'
|
|
10
10
|
|
11
11
|
module WhirledPeas
|
12
12
|
class ScreenTester
|
13
|
+
SCREEN_WIDTH = 80
|
14
|
+
SCREEN_HEIGHT = 32
|
15
|
+
|
13
16
|
def self.run_all
|
14
17
|
base_dir = File.dirname(__FILE__)
|
15
18
|
test_files = Dir.glob(File.join(base_dir, 'rendered', '**', '*.rb'))
|
16
19
|
failures = {}
|
17
20
|
pendings = Set.new
|
21
|
+
puts "Running #{test_files.length} rendered screen test(s)"
|
22
|
+
puts
|
18
23
|
test_files.each do |file|
|
19
24
|
tester = new(file)
|
20
25
|
if tester.pending?
|
@@ -87,10 +92,15 @@ module WhirledPeas
|
|
87
92
|
end
|
88
93
|
|
89
94
|
def debug
|
95
|
+
with_template_factory do |template_factory|
|
96
|
+
render_screen(template_factory, StringIO.new)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def template
|
90
101
|
with_template_factory do |template_factory|
|
91
102
|
template = template_factory.build('Test', {})
|
92
|
-
|
93
|
-
puts Graphics::Debugger.new(painter).debug
|
103
|
+
puts Graphics::Debugger.new(template).debug
|
94
104
|
end
|
95
105
|
end
|
96
106
|
|
@@ -179,7 +189,7 @@ module WhirledPeas
|
|
179
189
|
end
|
180
190
|
|
181
191
|
def render_screen(template_factory, output)
|
182
|
-
screen = Graphics::Screen.new(output)
|
192
|
+
screen = Graphics::Screen.new(output: output, width: SCREEN_WIDTH, height: SCREEN_HEIGHT)
|
183
193
|
consumer = Frame::EventLoop.new(
|
184
194
|
template_factory, screen: screen, refresh_rate: 100000
|
185
195
|
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whirled_peas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Collier
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|
@@ -70,13 +70,13 @@ files:
|
|
70
70
|
- README.md
|
71
71
|
- Rakefile
|
72
72
|
- bin/console
|
73
|
-
- bin/debug
|
74
73
|
- bin/setup
|
74
|
+
- examples/intro.rb
|
75
|
+
- examples/scrolling.rb
|
75
76
|
- exe/whirled_peas
|
76
77
|
- lib/whirled_peas.rb
|
77
78
|
- lib/whirled_peas/command_line.rb
|
78
79
|
- lib/whirled_peas/config.rb
|
79
|
-
- lib/whirled_peas/debugger.rb
|
80
80
|
- lib/whirled_peas/errors.rb
|
81
81
|
- lib/whirled_peas/frame.rb
|
82
82
|
- lib/whirled_peas/frame/consumer.rb
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- lib/whirled_peas/graphics.rb
|
87
87
|
- lib/whirled_peas/graphics/box_painter.rb
|
88
88
|
- lib/whirled_peas/graphics/canvas.rb
|
89
|
+
- lib/whirled_peas/graphics/composer.rb
|
89
90
|
- lib/whirled_peas/graphics/container_coords.rb
|
90
91
|
- lib/whirled_peas/graphics/container_dimensions.rb
|
91
92
|
- lib/whirled_peas/graphics/container_painter.rb
|
@@ -111,18 +112,11 @@ files:
|
|
111
112
|
- lib/whirled_peas/settings/margin.rb
|
112
113
|
- lib/whirled_peas/settings/padding.rb
|
113
114
|
- lib/whirled_peas/settings/position.rb
|
115
|
+
- lib/whirled_peas/settings/scrollbar.rb
|
114
116
|
- lib/whirled_peas/settings/spacing.rb
|
115
117
|
- lib/whirled_peas/settings/text_align.rb
|
116
118
|
- lib/whirled_peas/settings/text_color.rb
|
117
119
|
- lib/whirled_peas/settings/text_settings.rb
|
118
|
-
- lib/whirled_peas/template.rb
|
119
|
-
- lib/whirled_peas/template/box_element.rb
|
120
|
-
- lib/whirled_peas/template/composer.rb
|
121
|
-
- lib/whirled_peas/template/container.rb
|
122
|
-
- lib/whirled_peas/template/debugger.rb
|
123
|
-
- lib/whirled_peas/template/element.rb
|
124
|
-
- lib/whirled_peas/template/grid_element.rb
|
125
|
-
- lib/whirled_peas/template/text_element.rb
|
126
120
|
- lib/whirled_peas/utils.rb
|
127
121
|
- lib/whirled_peas/utils/ansi.rb
|
128
122
|
- lib/whirled_peas/utils/formatted_string.rb
|
@@ -132,6 +126,7 @@ files:
|
|
132
126
|
- screen_test/rendered/elements/box.rb
|
133
127
|
- screen_test/rendered/elements/grid.frame
|
134
128
|
- screen_test/rendered/elements/grid.rb
|
129
|
+
- screen_test/rendered/elements/screen_overflow.frame
|
135
130
|
- screen_test/rendered/elements/screen_overflow.rb
|
136
131
|
- screen_test/rendered/elements/text.frame
|
137
132
|
- screen_test/rendered/elements/text.rb
|
@@ -155,10 +150,22 @@ files:
|
|
155
150
|
- screen_test/rendered/settings/ansi/underline.rb
|
156
151
|
- screen_test/rendered/settings/border.frame
|
157
152
|
- screen_test/rendered/settings/border.rb
|
158
|
-
- screen_test/rendered/settings/flow/
|
159
|
-
- screen_test/rendered/settings/flow/
|
160
|
-
- screen_test/rendered/settings/flow/
|
161
|
-
- screen_test/rendered/settings/flow/
|
153
|
+
- screen_test/rendered/settings/flow/box_b2t.frame
|
154
|
+
- screen_test/rendered/settings/flow/box_b2t.rb
|
155
|
+
- screen_test/rendered/settings/flow/box_l2r.frame
|
156
|
+
- screen_test/rendered/settings/flow/box_l2r.rb
|
157
|
+
- screen_test/rendered/settings/flow/box_r2l.frame
|
158
|
+
- screen_test/rendered/settings/flow/box_r2l.rb
|
159
|
+
- screen_test/rendered/settings/flow/box_t2b.frame
|
160
|
+
- screen_test/rendered/settings/flow/box_t2b.rb
|
161
|
+
- screen_test/rendered/settings/flow/grid_b2t.frame
|
162
|
+
- screen_test/rendered/settings/flow/grid_b2t.rb
|
163
|
+
- screen_test/rendered/settings/flow/grid_l2r.frame
|
164
|
+
- screen_test/rendered/settings/flow/grid_l2r.rb
|
165
|
+
- screen_test/rendered/settings/flow/grid_r2l.frame
|
166
|
+
- screen_test/rendered/settings/flow/grid_r2l.rb
|
167
|
+
- screen_test/rendered/settings/flow/grid_t2b.frame
|
168
|
+
- screen_test/rendered/settings/flow/grid_t2b.rb
|
162
169
|
- screen_test/rendered/settings/height/box.frame
|
163
170
|
- screen_test/rendered/settings/height/box.rb
|
164
171
|
- screen_test/rendered/settings/height/grid.frame
|
@@ -191,6 +198,10 @@ files:
|
|
191
198
|
- screen_test/rendered/settings/position/grid_top.rb
|
192
199
|
- screen_test/rendered/settings/position/grid_top_negative.frame
|
193
200
|
- screen_test/rendered/settings/position/grid_top_negative.rb
|
201
|
+
- screen_test/rendered/settings/scroll/horiz_box.frame
|
202
|
+
- screen_test/rendered/settings/scroll/horiz_box.rb
|
203
|
+
- screen_test/rendered/settings/scroll/vert_box.frame
|
204
|
+
- screen_test/rendered/settings/scroll/vert_box.rb
|
194
205
|
- screen_test/rendered/settings/title_font.frame
|
195
206
|
- screen_test/rendered/settings/title_font.rb
|
196
207
|
- screen_test/rendered/settings/width/box.frame
|
data/bin/debug
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
def print_usage
|
4
|
-
puts "Usage: #{$0} <config file> [options]"
|
5
|
-
puts
|
6
|
-
puts 'options include'
|
7
|
-
puts ' --disable-screen Disable the screen (useful when printing debug statements)'
|
8
|
-
puts ' --painter Print the painter debug tree and exit'
|
9
|
-
puts ' --template Print the template debug tree and exit'
|
10
|
-
end
|
11
|
-
|
12
|
-
if !(1..2).include?(ARGV.length)
|
13
|
-
print_usage
|
14
|
-
exit(1)
|
15
|
-
elsif !File.exist?(ARGV.first)
|
16
|
-
puts "File not found: #{ARGV.first}"
|
17
|
-
print_usage
|
18
|
-
exit(1)
|
19
|
-
elsif ARGV.length == 2 && !%w[--disable-screen --template --painter].include?(ARGV[1])
|
20
|
-
puts "Unrecognized option: #{ARGV[1]}"
|
21
|
-
print_usage
|
22
|
-
exit(1)
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'bundler/setup'
|
26
|
-
require 'whirled_peas'
|
27
|
-
|
28
|
-
if ARGV.length == 1
|
29
|
-
option = nil
|
30
|
-
else
|
31
|
-
option = ARGV[1].sub(/^--/, '').gsub(/-/, '_').to_sym
|
32
|
-
end
|
33
|
-
|
34
|
-
template_file = ARGV.first[0] == '/' ? ARGV.first : File.join(Dir.pwd, ARGV.first)
|
35
|
-
WhirledPeas.debug(template_file, option)
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'whirled_peas/frame/event_loop'
|
2
|
-
require 'whirled_peas/frame/producer'
|
3
|
-
require 'whirled_peas/graphics/debugger'
|
4
|
-
require 'whirled_peas/graphics/mock_screen'
|
5
|
-
require 'whirled_peas/graphics/renderer'
|
6
|
-
require 'whirled_peas/graphics/screen'
|
7
|
-
require 'whirled_peas/template/debugger'
|
8
|
-
|
9
|
-
module WhirledPeas
|
10
|
-
class Debugger
|
11
|
-
module Option
|
12
|
-
DISABLE_SCREEN = :disable_screen
|
13
|
-
PAINTER = :painter
|
14
|
-
TEMPLATE = :template
|
15
|
-
|
16
|
-
VALID = [DISABLE_SCREEN, PAINTER, TEMPLATE]
|
17
|
-
end
|
18
|
-
private_constant :Option
|
19
|
-
|
20
|
-
FRAME = 'debug'
|
21
|
-
private_constant :FRAME
|
22
|
-
|
23
|
-
def initialize(template_file, option=nil)
|
24
|
-
unless option.nil? || Option::VALID.include?(option)
|
25
|
-
message =
|
26
|
-
"Invalid option: #{option}, expecting one of #{Option::VALID.join(', ')}"
|
27
|
-
raise ArgumentError, message
|
28
|
-
end
|
29
|
-
@template_file = template_file
|
30
|
-
@option = option
|
31
|
-
end
|
32
|
-
|
33
|
-
def debug
|
34
|
-
require template_file
|
35
|
-
template_factory = TemplateFactory.new
|
36
|
-
if play_frame?
|
37
|
-
screen = if disable_screen?
|
38
|
-
Graphics::MockScreen.new(80, 40)
|
39
|
-
else
|
40
|
-
Graphics::Screen.new
|
41
|
-
end
|
42
|
-
consumer = Frame::EventLoop.new(template_factory, screen: screen)
|
43
|
-
Frame::Producer.produce(consumer) do |producer|
|
44
|
-
producer.send_frame(FRAME, args: {})
|
45
|
-
end
|
46
|
-
return
|
47
|
-
end
|
48
|
-
|
49
|
-
template = template_factory.build(FRAME, {})
|
50
|
-
if print_painter?
|
51
|
-
painter = Graphics::Renderer.new(template, *Graphics::Screen.current_dimensions).painter
|
52
|
-
puts Graphics::Debugger.new(painter).debug
|
53
|
-
elsif print_template?
|
54
|
-
puts Template::Debugger.new(template).debug
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
private
|
59
|
-
|
60
|
-
attr_reader :template_file, :option
|
61
|
-
|
62
|
-
def play_frame?
|
63
|
-
option.nil? || option == Option::DISABLE_SCREEN
|
64
|
-
end
|
65
|
-
|
66
|
-
def disable_screen?
|
67
|
-
!option.nil? && option == Option::DISABLE_SCREEN
|
68
|
-
end
|
69
|
-
|
70
|
-
def print_painter?
|
71
|
-
!option.nil? && option == Option::PAINTER
|
72
|
-
end
|
73
|
-
|
74
|
-
def print_template?
|
75
|
-
!option.nil? && option == Option::TEMPLATE
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
private_constant :Debugger
|
80
|
-
end
|