whirled_peas 0.6.0 → 0.7.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 +4 -4
- data/CHANGELOG.md +9 -1
- data/README.md +315 -43
- data/Rakefile +8 -18
- data/lib/whirled_peas/graphics.rb +14 -0
- data/lib/whirled_peas/graphics/box_painter.rb +39 -46
- data/lib/whirled_peas/graphics/canvas.rb +22 -11
- data/lib/whirled_peas/graphics/container_coords.rb +6 -5
- data/lib/whirled_peas/graphics/container_dimensions.rb +26 -8
- data/lib/whirled_peas/graphics/container_painter.rb +42 -4
- data/lib/whirled_peas/graphics/grid_painter.rb +11 -10
- data/lib/whirled_peas/graphics/painter.rb +5 -1
- data/lib/whirled_peas/graphics/renderer.rb +6 -1
- data/lib/whirled_peas/graphics/text_painter.rb +2 -2
- data/lib/whirled_peas/settings/alignment.rb +24 -0
- data/lib/whirled_peas/settings/bg_color.rb +2 -0
- data/lib/whirled_peas/settings/border.rb +16 -16
- data/lib/whirled_peas/settings/color.rb +13 -14
- data/lib/whirled_peas/settings/container_settings.rb +126 -42
- data/lib/whirled_peas/settings/display_flow.rb +13 -11
- data/lib/whirled_peas/settings/element_settings.rb +3 -3
- data/lib/whirled_peas/settings/grid_settings.rb +5 -1
- data/lib/whirled_peas/settings/sizing.rb +19 -0
- data/lib/whirled_peas/settings/spacing.rb +34 -0
- data/lib/whirled_peas/settings/text_color.rb +2 -0
- data/lib/whirled_peas/settings/vert_alignment.rb +24 -0
- data/lib/whirled_peas/utils/title_font.rb +1 -1
- data/lib/whirled_peas/version.rb +1 -1
- data/screen_test/{rendered/elements → elements}/box.frame +1 -1
- data/screen_test/{rendered/elements → elements}/box.rb +0 -0
- data/screen_test/elements/grid.frame +1 -0
- data/screen_test/{rendered/elements → elements}/grid.rb +0 -0
- data/screen_test/elements/screen_overflow_x.frame +1 -0
- data/screen_test/{rendered/elements/screen_overflow.rb → elements/screen_overflow_x.rb} +0 -0
- data/screen_test/elements/screen_overflow_y.frame +1 -0
- data/screen_test/elements/screen_overflow_y.rb +9 -0
- data/screen_test/elements/text.frame +1 -0
- data/screen_test/{rendered/elements → elements}/text.rb +0 -0
- data/screen_test/elements/text_multiline.frame +1 -0
- data/screen_test/{rendered/elements → elements}/text_multiline.rb +0 -0
- data/screen_test/settings/align/box_around.frame +1 -0
- data/screen_test/settings/align/box_around.rb +16 -0
- data/screen_test/settings/align/box_between.frame +1 -0
- data/screen_test/settings/align/box_between.rb +16 -0
- data/screen_test/settings/align/box_center.frame +1 -0
- data/screen_test/{rendered/settings/align/grid.rb → settings/align/box_center.rb} +7 -6
- data/screen_test/settings/align/box_default.frame +1 -0
- data/screen_test/settings/align/box_default.rb +20 -0
- data/screen_test/settings/align/box_evenly.frame +1 -0
- data/screen_test/settings/align/box_evenly.rb +16 -0
- data/screen_test/settings/align/box_left.frame +1 -0
- data/screen_test/settings/align/box_left.rb +21 -0
- data/screen_test/settings/align/box_right.frame +1 -0
- data/screen_test/settings/align/box_right.rb +21 -0
- data/screen_test/settings/align/children_center.frame +1 -0
- data/screen_test/settings/align/children_center.rb +15 -0
- data/screen_test/settings/align/children_left.frame +1 -0
- data/screen_test/settings/align/children_left.rb +15 -0
- data/screen_test/settings/align/children_right.frame +1 -0
- data/screen_test/settings/align/children_right.rb +15 -0
- data/screen_test/settings/align/grid_center.frame +1 -0
- data/screen_test/settings/align/grid_center.rb +18 -0
- data/screen_test/settings/align/grid_default.frame +1 -0
- data/screen_test/settings/align/grid_default.rb +17 -0
- data/screen_test/settings/align/grid_left.frame +1 -0
- data/screen_test/settings/align/grid_left.rb +18 -0
- data/screen_test/settings/align/grid_right.frame +1 -0
- data/screen_test/settings/align/grid_right.rb +18 -0
- data/screen_test/settings/ansi/bold.frame +1 -0
- data/screen_test/{rendered/settings/height/overflow_box_t2b.rb → settings/ansi/bold.rb} +4 -4
- data/screen_test/{rendered/settings → settings}/ansi/color.frame +1 -1
- data/screen_test/{rendered/settings → settings}/ansi/color.rb +0 -0
- data/screen_test/settings/ansi/underline.frame +1 -0
- data/screen_test/{rendered/settings → settings}/ansi/underline.rb +4 -5
- data/screen_test/{rendered/settings → settings}/border.frame +1 -1
- data/screen_test/{rendered/settings → settings}/border.rb +1 -1
- data/screen_test/settings/flow/box_b2t.frame +1 -0
- data/screen_test/settings/flow/box_b2t.rb +26 -0
- data/screen_test/settings/flow/box_l2r.frame +1 -0
- data/screen_test/settings/flow/box_l2r.rb +26 -0
- data/screen_test/settings/flow/box_r2l.frame +1 -0
- data/screen_test/settings/flow/box_r2l.rb +26 -0
- data/screen_test/settings/flow/box_t2b.frame +1 -0
- data/screen_test/settings/flow/box_t2b.rb +26 -0
- data/screen_test/settings/flow/grid_b2t.frame +1 -0
- data/screen_test/{rendered/settings → settings}/flow/grid_b2t.rb +0 -0
- data/screen_test/settings/flow/grid_l2r.frame +1 -0
- data/screen_test/{rendered/settings → settings}/flow/grid_l2r.rb +0 -0
- data/screen_test/settings/flow/grid_r2l.frame +1 -0
- data/screen_test/{rendered/settings → settings}/flow/grid_r2l.rb +0 -0
- data/screen_test/settings/flow/grid_t2b.frame +1 -0
- data/screen_test/{rendered/settings → settings}/flow/grid_t2b.rb +0 -0
- data/screen_test/settings/height/box.frame +1 -0
- data/screen_test/{rendered/settings → settings}/height/box.rb +0 -0
- data/screen_test/settings/height/box_border_sizing.frame +1 -0
- data/screen_test/settings/height/box_border_sizing.rb +15 -0
- data/screen_test/settings/height/grid.frame +1 -0
- data/screen_test/{rendered/settings → settings}/height/grid.rb +0 -0
- data/screen_test/settings/height/overflow_box.frame +1 -0
- data/screen_test/settings/height/overflow_box.rb +13 -0
- data/screen_test/settings/height/overflow_box_l2r.frame +1 -0
- data/screen_test/settings/height/overflow_box_l2r.rb +17 -0
- data/screen_test/settings/height/overflow_box_t2b.frame +1 -0
- data/screen_test/settings/height/overflow_box_t2b.rb +16 -0
- data/screen_test/settings/height/overflow_grid.frame +1 -0
- data/screen_test/{rendered/settings → settings}/height/overflow_grid.rb +0 -0
- data/screen_test/settings/margin.frame +1 -0
- data/screen_test/settings/margin.rb +16 -0
- data/screen_test/settings/padding.frame +1 -0
- data/screen_test/settings/padding.rb +13 -0
- data/screen_test/settings/position/box_left.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/box_left.rb +2 -2
- data/screen_test/settings/position/box_left_negative.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/box_left_negative.rb +2 -2
- data/screen_test/settings/position/box_top.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/box_top.rb +1 -1
- data/screen_test/settings/position/box_top_negative.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/box_top_negative.rb +2 -2
- data/screen_test/settings/position/grid_left.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/grid_left.rb +1 -1
- data/screen_test/settings/position/grid_left_negative.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/grid_left_negative.rb +1 -1
- data/screen_test/settings/position/grid_top.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/grid_top.rb +1 -1
- data/screen_test/settings/position/grid_top_negative.frame +1 -0
- data/screen_test/{rendered/settings → settings}/position/grid_top_negative.rb +1 -1
- data/screen_test/settings/scroll/horiz_box.frame +1 -0
- data/screen_test/settings/scroll/horiz_box.rb +17 -0
- data/screen_test/settings/scroll/horiz_box_align_center.rb +18 -0
- data/screen_test/settings/scroll/horiz_box_align_right.rb +18 -0
- data/screen_test/settings/scroll/vert_box.frame +1 -0
- data/screen_test/settings/scroll/vert_box.rb +20 -0
- data/screen_test/settings/title_font.frame +1 -0
- data/screen_test/{rendered/settings → settings}/title_font.rb +1 -1
- data/screen_test/settings/valign/box_around.frame +1 -0
- data/screen_test/settings/valign/box_around.rb +17 -0
- data/screen_test/settings/valign/box_between.frame +1 -0
- data/screen_test/settings/valign/box_between.rb +17 -0
- data/screen_test/settings/valign/box_bottom.frame +1 -0
- data/screen_test/settings/valign/box_bottom.rb +17 -0
- data/screen_test/settings/valign/box_default.frame +1 -0
- data/screen_test/settings/valign/box_default.rb +16 -0
- data/screen_test/settings/valign/box_evenly.frame +1 -0
- data/screen_test/settings/valign/box_evenly.rb +17 -0
- data/screen_test/settings/valign/box_middle.frame +1 -0
- data/screen_test/settings/valign/box_middle.rb +17 -0
- data/screen_test/settings/valign/box_top.frame +1 -0
- data/screen_test/settings/valign/box_top.rb +17 -0
- data/screen_test/settings/valign/grid_bottom.frame +1 -0
- data/screen_test/settings/valign/grid_bottom.rb +15 -0
- data/screen_test/settings/valign/grid_default.frame +1 -0
- data/screen_test/settings/valign/grid_default.rb +14 -0
- data/screen_test/settings/valign/grid_middle.frame +1 -0
- data/screen_test/settings/valign/grid_middle.rb +15 -0
- data/screen_test/settings/valign/grid_top.frame +1 -0
- data/screen_test/settings/valign/grid_top.rb +15 -0
- data/screen_test/settings/width/box_border_sizing.frame +1 -0
- data/screen_test/settings/width/box_border_sizing.rb +15 -0
- data/screen_test/settings/width/box_content.frame +1 -0
- data/screen_test/settings/width/box_content.rb +15 -0
- data/screen_test/settings/width/box_default.frame +1 -0
- data/screen_test/{rendered/settings/width/box.rb → settings/width/box_default.rb} +3 -2
- data/screen_test/settings/width/grid.frame +1 -0
- data/screen_test/{rendered/settings → settings}/width/grid.rb +2 -2
- data/screen_test/settings/width/overflow_align_center.frame +1 -0
- data/screen_test/settings/width/overflow_align_center.rb +14 -0
- data/screen_test/settings/width/overflow_align_right.frame +1 -0
- data/screen_test/settings/width/overflow_align_right.rb +14 -0
- data/screen_test/settings/width/overflow_box.frame +1 -0
- data/screen_test/settings/width/overflow_box.rb +13 -0
- data/screen_test/settings/width/overflow_box_l2r.frame +1 -0
- data/screen_test/settings/width/overflow_box_l2r.rb +16 -0
- data/screen_test/settings/width/overflow_box_t2b.frame +1 -0
- data/screen_test/settings/width/overflow_box_t2b.rb +17 -0
- data/screen_test/settings/width/overflow_grid.frame +1 -0
- data/screen_test/{rendered/settings → settings}/width/overflow_grid.rb +0 -0
- data/tools/whirled_peas/tools/screen_tester.rb +233 -0
- metadata +154 -98
- data/lib/whirled_peas/settings/text_align.rb +0 -19
- data/screen_test/rendered/elements/grid.frame +0 -1
- data/screen_test/rendered/elements/screen_overflow.frame +0 -1
- data/screen_test/rendered/elements/text.frame +0 -1
- data/screen_test/rendered/elements/text_multiline.frame +0 -1
- data/screen_test/rendered/settings/align/box.frame +0 -1
- data/screen_test/rendered/settings/align/box.rb +0 -24
- data/screen_test/rendered/settings/align/children_center.frame +0 -1
- data/screen_test/rendered/settings/align/children_center.rb +0 -13
- data/screen_test/rendered/settings/align/children_left.frame +0 -1
- data/screen_test/rendered/settings/align/children_left.rb +0 -13
- data/screen_test/rendered/settings/align/children_right.frame +0 -1
- data/screen_test/rendered/settings/align/children_right.rb +0 -13
- data/screen_test/rendered/settings/align/grid.frame +0 -1
- data/screen_test/rendered/settings/ansi/bold.frame +0 -1
- data/screen_test/rendered/settings/ansi/bold.rb +0 -15
- data/screen_test/rendered/settings/ansi/underline.frame +0 -1
- data/screen_test/rendered/settings/flow/box_b2t.frame +0 -1
- data/screen_test/rendered/settings/flow/box_b2t.rb +0 -24
- data/screen_test/rendered/settings/flow/box_l2r.frame +0 -1
- data/screen_test/rendered/settings/flow/box_l2r.rb +0 -24
- data/screen_test/rendered/settings/flow/box_r2l.frame +0 -1
- data/screen_test/rendered/settings/flow/box_r2l.rb +0 -24
- data/screen_test/rendered/settings/flow/box_t2b.frame +0 -1
- data/screen_test/rendered/settings/flow/box_t2b.rb +0 -24
- data/screen_test/rendered/settings/flow/grid_b2t.frame +0 -1
- data/screen_test/rendered/settings/flow/grid_l2r.frame +0 -1
- data/screen_test/rendered/settings/flow/grid_r2l.frame +0 -1
- data/screen_test/rendered/settings/flow/grid_t2b.frame +0 -1
- data/screen_test/rendered/settings/height/box.frame +0 -1
- data/screen_test/rendered/settings/height/grid.frame +0 -1
- data/screen_test/rendered/settings/height/overflow_box.frame +0 -1
- data/screen_test/rendered/settings/height/overflow_box.rb +0 -13
- data/screen_test/rendered/settings/height/overflow_box_l2r.frame +0 -1
- data/screen_test/rendered/settings/height/overflow_box_l2r.rb +0 -15
- data/screen_test/rendered/settings/height/overflow_box_t2b.frame +0 -1
- data/screen_test/rendered/settings/height/overflow_grid.frame +0 -1
- data/screen_test/rendered/settings/margin.frame +0 -1
- data/screen_test/rendered/settings/margin.rb +0 -14
- data/screen_test/rendered/settings/padding.frame +0 -1
- data/screen_test/rendered/settings/padding.rb +0 -11
- data/screen_test/rendered/settings/position/box_left.frame +0 -1
- data/screen_test/rendered/settings/position/box_left_negative.frame +0 -1
- data/screen_test/rendered/settings/position/box_top.frame +0 -1
- data/screen_test/rendered/settings/position/box_top_negative.frame +0 -1
- data/screen_test/rendered/settings/position/grid_left.frame +0 -1
- data/screen_test/rendered/settings/position/grid_left_negative.frame +0 -1
- data/screen_test/rendered/settings/position/grid_top.frame +0 -1
- data/screen_test/rendered/settings/position/grid_top_negative.frame +0 -1
- data/screen_test/rendered/settings/scroll/horiz_box.frame +0 -1
- data/screen_test/rendered/settings/scroll/horiz_box.rb +0 -15
- data/screen_test/rendered/settings/scroll/vert_box.frame +0 -1
- data/screen_test/rendered/settings/scroll/vert_box.rb +0 -18
- data/screen_test/rendered/settings/title_font.frame +0 -1
- data/screen_test/rendered/settings/width/box.frame +0 -1
- data/screen_test/rendered/settings/width/grid.frame +0 -1
- data/screen_test/rendered/settings/width/overflow_box.frame +0 -1
- data/screen_test/rendered/settings/width/overflow_box.rb +0 -11
- data/screen_test/rendered/settings/width/overflow_box_l2r.frame +0 -1
- data/screen_test/rendered/settings/width/overflow_box_l2r.rb +0 -14
- data/screen_test/rendered/settings/width/overflow_box_t2b.frame +0 -1
- data/screen_test/rendered/settings/width/overflow_box_t2b.rb +0 -15
- data/screen_test/rendered/settings/width/overflow_grid.frame +0 -1
- data/screen_test/screen_tester.rb +0 -201
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'json'
|
2
2
|
|
3
|
+
require_relative 'alignment'
|
3
4
|
require_relative 'bg_color'
|
4
|
-
require_relative 'text_align'
|
5
5
|
require_relative 'text_color'
|
6
6
|
|
7
7
|
module WhirledPeas
|
@@ -14,7 +14,7 @@ module WhirledPeas
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def bg_color
|
17
|
-
@_bg_color
|
17
|
+
@_bg_color || BgColor::DEFAULT
|
18
18
|
end
|
19
19
|
|
20
20
|
def bg_color=(color)
|
@@ -30,7 +30,7 @@ module WhirledPeas
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def color
|
33
|
-
@_color
|
33
|
+
@_color || TextColor::DEFAULT
|
34
34
|
end
|
35
35
|
|
36
36
|
def color=(color)
|
@@ -8,7 +8,11 @@ module WhirledPeas
|
|
8
8
|
attr_accessor :num_cols
|
9
9
|
|
10
10
|
def set_scrollbar(*)
|
11
|
-
raise
|
11
|
+
raise NotImplementedError, 'Grids do not support scrollbars'
|
12
|
+
end
|
13
|
+
|
14
|
+
def sizing=(*)
|
15
|
+
raise NotImplementedError, 'Grids only support the default sizing model'
|
12
16
|
end
|
13
17
|
end
|
14
18
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module WhirledPeas
|
2
|
+
module Settings
|
3
|
+
class Sizing
|
4
|
+
CONTENT = :content
|
5
|
+
BORDER = :border
|
6
|
+
|
7
|
+
DEFAULT = CONTENT
|
8
|
+
|
9
|
+
VALID = [CONTENT, BORDER]
|
10
|
+
private_constant :VALID
|
11
|
+
|
12
|
+
def self.validate!(sizing)
|
13
|
+
return if sizing.nil?
|
14
|
+
return sizing if VALID.include?(sizing)
|
15
|
+
raise ArgumentError, "Unsupported sizing model: #{sizing.inspect}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -3,21 +3,55 @@ module WhirledPeas
|
|
3
3
|
class Spacing
|
4
4
|
attr_writer :left, :top, :right, :bottom
|
5
5
|
|
6
|
+
def left=(value)
|
7
|
+
@left = validate!(value)
|
8
|
+
end
|
9
|
+
|
6
10
|
def left
|
7
11
|
@left || 0
|
8
12
|
end
|
9
13
|
|
14
|
+
def top=(value)
|
15
|
+
@top = validate!(value)
|
16
|
+
end
|
17
|
+
|
10
18
|
def top
|
11
19
|
@top || 0
|
12
20
|
end
|
13
21
|
|
22
|
+
def right=(value)
|
23
|
+
@right = validate!(value)
|
24
|
+
end
|
25
|
+
|
14
26
|
def right
|
15
27
|
@right || 0
|
16
28
|
end
|
17
29
|
|
30
|
+
def bottom=(value)
|
31
|
+
@bottom = validate!(value)
|
32
|
+
end
|
33
|
+
|
18
34
|
def bottom
|
19
35
|
@bottom || 0
|
20
36
|
end
|
37
|
+
|
38
|
+
def horiz=(value)
|
39
|
+
self.left = self.right = value
|
40
|
+
end
|
41
|
+
|
42
|
+
def vert=(value)
|
43
|
+
self.top = self.bottom = value
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def validate!(value)
|
49
|
+
if value && value < 0
|
50
|
+
raise ArgumentError, "Negative values for #{self.class.name.split('::').last.downcase} are not allowed"
|
51
|
+
else
|
52
|
+
value
|
53
|
+
end
|
54
|
+
end
|
21
55
|
end
|
22
56
|
private_constant :Spacing
|
23
57
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module WhirledPeas
|
2
|
+
module Settings
|
3
|
+
module VertAlignment
|
4
|
+
TOP = :top
|
5
|
+
MIDDLE = :middle
|
6
|
+
BOTTOM = :bottom
|
7
|
+
BETWEEN = :between
|
8
|
+
AROUND = :around
|
9
|
+
EVENLY = :evenly
|
10
|
+
|
11
|
+
DEFAULT = TOP
|
12
|
+
|
13
|
+
VALID = [TOP, MIDDLE, BOTTOM, BETWEEN, AROUND, EVENLY]
|
14
|
+
private_constant :VALID
|
15
|
+
|
16
|
+
def self.validate!(valign)
|
17
|
+
return if valign.nil?
|
18
|
+
return valign if VALID.include?(valign)
|
19
|
+
raise ArgumentError, "Unsupported vertical alignment: #{valign.inspect}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
private_constant :VertAlignment
|
23
|
+
end
|
24
|
+
end
|
@@ -6,7 +6,7 @@ module WhirledPeas
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
def validate!(font_key)
|
9
|
-
return
|
9
|
+
return if font_key.nil?
|
10
10
|
return font_key if fonts.key?(font_key)
|
11
11
|
allowed = fonts.keys.map(&:inspect).sort
|
12
12
|
message = "Unrecognized font: '#{font_key.inspect}', expecting one of #{allowed.join(', ')}"
|
data/lib/whirled_peas/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[?25l[1;1H[J[1;1HTOP LEFT[2;1HBOTTOM LEFT[1;12H TOP RIGHT [2;12H BOTTOM RIGHT[0m[
|
1
|
+
[?25l[1;1H[J[1;1HTOP LEFT[2;1HBOTTOM LEFT[1;12H TOP RIGHT [2;12H BOTTOM RIGHT[0m[24;1H[?25h
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━┳━━━━━━┳━━━━━━┓[2;1H┃ ┃ ┃ ┃[3;1H┣━━━━━━╋━━━━━━╋━━━━━━┫[4;1H┃ ┃ ┃ ┃[5;1H┣━━━━━━╋━━━━━━╋━━━━━━┫[6;1H┃ ┃ ┃ ┃[7;1H┗━━━━━━┻━━━━━━┻━━━━━━┛[2;2HItem 0[2;9HItem 1[2;16HItem 2[4;2HItem 3[4;9HItem 4[4;16HItem 5[6;2HItem 6[0m[24;1H[?25h
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H--------------------------------[0m[24;1H[?25h
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H|[2;1H|[3;1H|[4;1H|[5;1H|[6;1H|[7;1H|[8;1H|[9;1H|[10;1H|[11;1H|[12;1H|[13;1H|[14;1H|[15;1H|[16;1H|[17;1H|[18;1H|[19;1H|[20;1H|[21;1H|[22;1H|[23;1H|[24;1H|[0m[24;1H[?25h
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1HHello, World![0m[24;1H[?25h
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1HLine 1[2;1HLine 2[3;1HLine 3[0m[24;1H[?25h
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━┛[2;4HA[2;9HB[2;14HC[0m[24;1H[?25h
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.full_border
|
8
|
+
settings.align = :around
|
9
|
+
settings.width = 15
|
10
|
+
composer.add_text { 'A' }
|
11
|
+
composer.add_text { 'B' }
|
12
|
+
composer.add_text { 'C' }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━┛[2;2HA[2;9HB[2;16HC[0m[24;1H[?25h
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.full_border
|
8
|
+
settings.align = :between
|
9
|
+
settings.width = 15
|
10
|
+
composer.add_text { 'A' }
|
11
|
+
composer.add_text { 'B' }
|
12
|
+
composer.add_text { 'C' }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┃ ┃[4;1H┗━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThis is an aligned box[3;10HCenter[0m[24;1H[?25h
|
@@ -3,16 +3,17 @@ require 'whirled_peas'
|
|
3
3
|
class TemplateFactory
|
4
4
|
def build(*)
|
5
5
|
WhirledPeas.template do |composer|
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
composer.add_grid do |composer, settings|
|
7
|
+
settings.num_cols = 2
|
8
|
+
composer.add_box('Alignment') do |composer, settings|
|
9
|
+
settings.flow = :t2b
|
9
10
|
settings.full_border
|
10
|
-
settings.align =
|
11
|
+
settings.align = :center
|
11
12
|
# Keep the title long so grids below will be wide enough to use the
|
12
13
|
# alignment attribute. Don't rely on the `width` attribute to keep
|
13
14
|
# `align` isolated in this test.
|
14
|
-
composer.add_text('Title') { 'This is an aligned
|
15
|
-
composer.add_text('Content') {
|
15
|
+
composer.add_text('Title') { 'This is an aligned box' }
|
16
|
+
composer.add_text('Content') { 'Center' }
|
16
17
|
end
|
17
18
|
end
|
18
19
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┃ ┃[4;1H┗━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThis is an aligned box[3;2HDefault[0m[24;1H[?25h
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_grid do |composer, settings|
|
7
|
+
settings.num_cols = 2
|
8
|
+
composer.add_box('Alignment') do |composer, settings|
|
9
|
+
settings.flow = :t2b
|
10
|
+
settings.full_border
|
11
|
+
# Keep the title long so grids below will be wide enough to use the
|
12
|
+
# alignment attribute. Don't rely on the `width` attribute to keep
|
13
|
+
# `align` isolated in this test.
|
14
|
+
composer.add_text('Title') { 'This is an aligned box' }
|
15
|
+
composer.add_text('Content') { 'Default' }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━┛[2;5HA[2;9HB[2;13HC[0m[24;1H[?25h
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.full_border
|
8
|
+
settings.align = :evenly
|
9
|
+
settings.width = 15
|
10
|
+
composer.add_text { 'A' }
|
11
|
+
composer.add_text { 'B' }
|
12
|
+
composer.add_text { 'C' }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┃ ┃[4;1H┗━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThis is an aligned box[3;2HLeft[0m[24;1H[?25h
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_grid do |composer, settings|
|
7
|
+
settings.num_cols = 2
|
8
|
+
composer.add_box('Alignment') do |composer, settings|
|
9
|
+
settings.flow = :t2b
|
10
|
+
settings.full_border
|
11
|
+
settings.align = :left
|
12
|
+
# Keep the title long so grids below will be wide enough to use the
|
13
|
+
# alignment attribute. Don't rely on the `width` attribute to keep
|
14
|
+
# `align` isolated in this test.
|
15
|
+
composer.add_text('Title') { 'This is an aligned box' }
|
16
|
+
composer.add_text('Content') { 'Left' }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┃ ┃[4;1H┗━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThis is an aligned box[3;19HRight[0m[24;1H[?25h
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_grid do |composer, settings|
|
7
|
+
settings.num_cols = 2
|
8
|
+
composer.add_box('Alignment') do |composer, settings|
|
9
|
+
settings.flow = :t2b
|
10
|
+
settings.full_border
|
11
|
+
settings.align = :right
|
12
|
+
# Keep the title long so grids below will be wide enough to use the
|
13
|
+
# alignment attribute. Don't rely on the `width` attribute to keep
|
14
|
+
# `align` isolated in this test.
|
15
|
+
composer.add_text('Title') { 'This is an aligned box' }
|
16
|
+
composer.add_text('Content') { 'Right' }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[2;9HThing 1[2;16HThing 2[0m[24;1H[?25h
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.align = :center
|
8
|
+
settings.width = 28
|
9
|
+
settings.full_border
|
10
|
+
composer.add_text('Text1') { 'Thing 1' }
|
11
|
+
composer.add_text('Text2') { 'Thing 2' }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThing 1[2;9HThing 2[0m[24;1H[?25h
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.align = :left
|
8
|
+
settings.width = 28
|
9
|
+
settings.full_border
|
10
|
+
composer.add_text('Text1') { 'Thing 1' }
|
11
|
+
composer.add_text('Text2') { 'Thing 2' }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛[2;16HThing 1[2;23HThing 2[0m[24;1H[?25h
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_box do |composer, settings|
|
7
|
+
settings.align = :right
|
8
|
+
settings.width = 28
|
9
|
+
settings.full_border
|
10
|
+
composer.add_text('Text1') { 'Thing 1' }
|
11
|
+
composer.add_text('Text2') { 'Thing 2' }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
[?25l[1;1H[J[1;1H┏━━━━━━━━━━━━━━━━━━━━━━━┓[2;1H┃ ┃[3;1H┣━━━━━━━━━━━━━━━━━━━━━━━┫[4;1H┃ ┃[5;1H┗━━━━━━━━━━━━━━━━━━━━━━━┛[2;2HThis is an aligned grid[4;10HCenter[0m[24;1H[?25h
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'whirled_peas'
|
2
|
+
|
3
|
+
class TemplateFactory
|
4
|
+
def build(*)
|
5
|
+
WhirledPeas.template do |composer|
|
6
|
+
composer.add_grid('Alignment') do |composer, settings|
|
7
|
+
settings.num_cols = 1
|
8
|
+
settings.full_border
|
9
|
+
settings.align = :center
|
10
|
+
# Keep the title long so grids below will be wide enough to use the
|
11
|
+
# alignment attribute. Don't rely on the `width` attribute to keep
|
12
|
+
# `align` isolated in this test.
|
13
|
+
composer.add_text('Title') { 'This is an aligned grid' }
|
14
|
+
composer.add_text('Content') { 'Center' }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|