tty-table 0.11.0 → 0.12.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.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +104 -98
  5. data/lib/tty-table.rb +1 -1
  6. data/lib/tty/table.rb +70 -34
  7. data/lib/tty/table/alignment_set.rb +1 -3
  8. data/lib/tty/table/border.rb +50 -57
  9. data/lib/tty/table/border/ascii.rb +16 -16
  10. data/lib/tty/table/border/null.rb +19 -22
  11. data/lib/tty/table/border/row_line.rb +3 -2
  12. data/lib/tty/table/border/unicode.rb +16 -16
  13. data/lib/tty/table/border_dsl.rb +24 -22
  14. data/lib/tty/table/border_options.rb +32 -27
  15. data/lib/tty/table/column_constraint.rb +12 -9
  16. data/lib/tty/table/columns.rb +6 -6
  17. data/lib/tty/table/field.rb +46 -28
  18. data/lib/tty/table/header.rb +5 -5
  19. data/lib/tty/table/indentation.rb +7 -4
  20. data/lib/tty/table/operation/alignment.rb +1 -1
  21. data/lib/tty/table/operation/escape.rb +1 -2
  22. data/lib/tty/table/operation/padding.rb +1 -1
  23. data/lib/tty/table/operation/truncation.rb +1 -1
  24. data/lib/tty/table/operation/wrapped.rb +1 -1
  25. data/lib/tty/table/options.rb +1 -1
  26. data/lib/tty/table/orientation.rb +4 -4
  27. data/lib/tty/table/renderer.rb +8 -8
  28. data/lib/tty/table/renderer/ascii.rb +2 -2
  29. data/lib/tty/table/renderer/basic.rb +37 -40
  30. data/lib/tty/table/renderer/unicode.rb +1 -1
  31. data/lib/tty/table/row.rb +7 -7
  32. data/lib/tty/table/validatable.rb +23 -7
  33. data/lib/tty/table/version.rb +1 -1
  34. metadata +23 -272
  35. data/Rakefile +0 -10
  36. data/examples/alignment.rb +0 -10
  37. data/examples/basic.rb +0 -6
  38. data/examples/orientation.rb +0 -13
  39. data/examples/padding.rb +0 -15
  40. data/examples/resize.rb +0 -15
  41. data/spec/spec_helper.rb +0 -50
  42. data/spec/unit/access_spec.rb +0 -84
  43. data/spec/unit/add_row_spec.rb +0 -26
  44. data/spec/unit/alignment_set/each_spec.rb +0 -15
  45. data/spec/unit/alignment_set/new_spec.rb +0 -25
  46. data/spec/unit/alignment_set/to_ary_spec.rb +0 -12
  47. data/spec/unit/alignment_spec.rb +0 -69
  48. data/spec/unit/border/ascii/rendering_spec.rb +0 -88
  49. data/spec/unit/border/new_spec.rb +0 -25
  50. data/spec/unit/border/null/rendering_spec.rb +0 -128
  51. data/spec/unit/border/options/from_spec.rb +0 -36
  52. data/spec/unit/border/options/new_spec.rb +0 -12
  53. data/spec/unit/border/unicode/rendering_spec.rb +0 -61
  54. data/spec/unit/border_options/new_spec.rb +0 -18
  55. data/spec/unit/border_options/update_spec.rb +0 -16
  56. data/spec/unit/column_constraint/enforce_spec.rb +0 -68
  57. data/spec/unit/column_constraint/widths_spec.rb +0 -33
  58. data/spec/unit/columns/extract_widths_spec.rb +0 -41
  59. data/spec/unit/columns/total_width_spec.rb +0 -11
  60. data/spec/unit/columns/widths_from_spec.rb +0 -49
  61. data/spec/unit/data_spec.rb +0 -10
  62. data/spec/unit/each_spec.rb +0 -24
  63. data/spec/unit/each_with_index_spec.rb +0 -49
  64. data/spec/unit/empty_spec.rb +0 -21
  65. data/spec/unit/eql_spec.rb +0 -32
  66. data/spec/unit/field/equality_spec.rb +0 -49
  67. data/spec/unit/field/length_spec.rb +0 -33
  68. data/spec/unit/field/lines_spec.rb +0 -19
  69. data/spec/unit/field/new_spec.rb +0 -27
  70. data/spec/unit/field/width_spec.rb +0 -21
  71. data/spec/unit/filter_spec.rb +0 -20
  72. data/spec/unit/header/call_spec.rb +0 -28
  73. data/spec/unit/header/color_spec.rb +0 -17
  74. data/spec/unit/header/equality_spec.rb +0 -49
  75. data/spec/unit/header/height_spec.rb +0 -25
  76. data/spec/unit/header/new_spec.rb +0 -13
  77. data/spec/unit/header/set_spec.rb +0 -18
  78. data/spec/unit/header/to_ary_spec.rb +0 -12
  79. data/spec/unit/header_spec.rb +0 -11
  80. data/spec/unit/indentation/indent_spec.rb +0 -15
  81. data/spec/unit/new_spec.rb +0 -71
  82. data/spec/unit/operation/alignment/call_spec.rb +0 -37
  83. data/spec/unit/operation/escape/call_spec.rb +0 -13
  84. data/spec/unit/operation/filter/call_spec.rb +0 -14
  85. data/spec/unit/operation/truncation/call_spec.rb +0 -28
  86. data/spec/unit/operation/wrapped/call_spec.rb +0 -38
  87. data/spec/unit/operations/new_spec.rb +0 -28
  88. data/spec/unit/options/access_spec.rb +0 -12
  89. data/spec/unit/options_spec.rb +0 -23
  90. data/spec/unit/orientation_spec.rb +0 -143
  91. data/spec/unit/padding_spec.rb +0 -115
  92. data/spec/unit/properties_spec.rb +0 -23
  93. data/spec/unit/render_repeat_spec.rb +0 -39
  94. data/spec/unit/render_spec.rb +0 -61
  95. data/spec/unit/render_with_spec.rb +0 -104
  96. data/spec/unit/renderer/ascii/coloring_spec.rb +0 -83
  97. data/spec/unit/renderer/ascii/indentation_spec.rb +0 -39
  98. data/spec/unit/renderer/ascii/multiline_spec.rb +0 -99
  99. data/spec/unit/renderer/ascii/padding_spec.rb +0 -115
  100. data/spec/unit/renderer/ascii/render_spec.rb +0 -66
  101. data/spec/unit/renderer/ascii/resizing_spec.rb +0 -112
  102. data/spec/unit/renderer/ascii/separator_spec.rb +0 -38
  103. data/spec/unit/renderer/basic/alignment_spec.rb +0 -86
  104. data/spec/unit/renderer/basic/coloring_spec.rb +0 -59
  105. data/spec/unit/renderer/basic/extract_column_widths_spec.rb +0 -26
  106. data/spec/unit/renderer/basic/filter_spec.rb +0 -51
  107. data/spec/unit/renderer/basic/indentation_spec.rb +0 -46
  108. data/spec/unit/renderer/basic/multiline_spec.rb +0 -72
  109. data/spec/unit/renderer/basic/new_spec.rb +0 -24
  110. data/spec/unit/renderer/basic/options_spec.rb +0 -50
  111. data/spec/unit/renderer/basic/padding_spec.rb +0 -74
  112. data/spec/unit/renderer/basic/render_spec.rb +0 -55
  113. data/spec/unit/renderer/basic/resizing_spec.rb +0 -94
  114. data/spec/unit/renderer/basic/separator_spec.rb +0 -41
  115. data/spec/unit/renderer/basic/single_row_separator_spec.rb +0 -80
  116. data/spec/unit/renderer/basic/truncation_spec.rb +0 -33
  117. data/spec/unit/renderer/basic/wrapping_spec.rb +0 -38
  118. data/spec/unit/renderer/border_spec.rb +0 -102
  119. data/spec/unit/renderer/render_spec.rb +0 -34
  120. data/spec/unit/renderer/select_spec.rb +0 -20
  121. data/spec/unit/renderer/unicode/coloring_spec.rb +0 -68
  122. data/spec/unit/renderer/unicode/indentation_spec.rb +0 -39
  123. data/spec/unit/renderer/unicode/padding_spec.rb +0 -59
  124. data/spec/unit/renderer/unicode/render_spec.rb +0 -66
  125. data/spec/unit/renderer/unicode/separator_spec.rb +0 -36
  126. data/spec/unit/renderer_spec.rb +0 -17
  127. data/spec/unit/rotate_spec.rb +0 -84
  128. data/spec/unit/row/access_spec.rb +0 -23
  129. data/spec/unit/row/call_spec.rb +0 -43
  130. data/spec/unit/row/data_spec.rb +0 -24
  131. data/spec/unit/row/each_spec.rb +0 -29
  132. data/spec/unit/row/equality_spec.rb +0 -71
  133. data/spec/unit/row/height_spec.rb +0 -25
  134. data/spec/unit/row/new_spec.rb +0 -39
  135. data/spec/unit/row/to_ary_spec.rb +0 -12
  136. data/spec/unit/to_s_spec.rb +0 -56
  137. data/spec/unit/transformation/extract_tuples_spec.rb +0 -33
  138. data/spec/unit/utf_spec.rb +0 -31
  139. data/spec/unit/validatable/validate_options_spec.rb +0 -31
  140. data/spec/unit/validatable_spec.rb +0 -30
  141. data/tasks/console.rake +0 -11
  142. data/tasks/coverage.rake +0 -11
  143. data/tasks/spec.rake +0 -29
  144. data/tty-table.gemspec +0 -41
@@ -1,115 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table, 'padding' do
4
- let(:header) { ['h1', 'h2', 'h3'] }
5
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
6
- let(:table) { described_class.new(header, rows) }
7
-
8
- it 'sets specific padding' do
9
- expect(table.render(:ascii) { |renderer|
10
- renderer.padding.right = 2
11
- renderer.padding.top = 1
12
- }).to eq unindent(<<-EOS)
13
- +----+----+----+
14
- | | | |
15
- |h1 |h2 |h3 |
16
- +----+----+----+
17
- | | | |
18
- |a1 |a2 |a3 |
19
- | | | |
20
- |b1 |b2 |b3 |
21
- +----+----+----+
22
- EOS
23
- end
24
-
25
- it 'sets padding for all' do
26
- expect(table.render(:ascii) { |renderer|
27
- renderer.padding= [1,2,1,2]
28
- }).to eq unindent(<<-EOS)
29
- +------+------+------+
30
- | | | |
31
- | h1 | h2 | h3 |
32
- | | | |
33
- +------+------+------+
34
- | | | |
35
- | a1 | a2 | a3 |
36
- | | | |
37
- | | | |
38
- | b1 | b2 | b3 |
39
- | | | |
40
- +------+------+------+
41
- EOS
42
- end
43
-
44
- context 'with column width' do
45
- let(:column_widths) { [4,4,4] }
46
-
47
- it 'sets padding for all' do
48
- expect(table.render(:ascii) { |renderer|
49
- renderer.column_widths = column_widths
50
- renderer.padding= [1,2,1,2]
51
- }).to eq unindent(<<-EOS)
52
- +--------+--------+--------+
53
- | | | |
54
- | h1 | h2 | h3 |
55
- | | | |
56
- +--------+--------+--------+
57
- | | | |
58
- | a1 | a2 | a3 |
59
- | | | |
60
- | | | |
61
- | b1 | b2 | b3 |
62
- | | | |
63
- +--------+--------+--------+
64
- EOS
65
- end
66
- end
67
-
68
- context 'with multi line text' do
69
- let(:header) { ['h1', 'head2'] }
70
- let(:rows) { [["Multi\nLine", "Text\nthat\nwraps"],
71
- ["Some\nother\ntext", 'Simple']] }
72
-
73
- context 'when wrapped' do
74
- it 'sets padding for all' do
75
- expect(table.render(:ascii) { |renderer|
76
- renderer.multiline = true
77
- renderer.padding= [1,2,1,2]
78
- }).to eq unindent(<<-EOS)
79
- +---------+----------+
80
- | | |
81
- | h1 | head2 |
82
- | | |
83
- +---------+----------+
84
- | | |
85
- | Multi | Text |
86
- | Line | that |
87
- | | wraps |
88
- | | |
89
- | | |
90
- | Some | Simple |
91
- | other | |
92
- | text | |
93
- | | |
94
- +---------+----------+
95
- EOS
96
- end
97
- end
98
-
99
- context 'when escaped' do
100
- it 'sets padding for all' do
101
- expect(table.render(:ascii) { |renderer|
102
- renderer.multiline = false
103
- renderer.padding= [0,2,0,2]
104
- }).to eq unindent(<<-EOS)
105
- +---------------------+---------------------+
106
- | h1 | head2 |
107
- +---------------------+---------------------+
108
- | Multi\\nLine | Text\\nthat\\nwraps |
109
- | Some\\nother\\ntext | Simple |
110
- +---------------------+---------------------+
111
- EOS
112
- end
113
- end
114
- end
115
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table, 'properties' do
4
- let(:rows) {[['a1', 'a2', 'a3'], ['b1', 'b2', 'c3']] }
5
-
6
- subject(:table) { described_class.new rows }
7
-
8
- it { expect(table.width).to eq(6) }
9
-
10
- it { expect(table.rows_size).to eq(2) }
11
-
12
- it { expect(table.columns_size).to eq(3) }
13
-
14
- it { expect(table.size).to eq([2,3]) }
15
-
16
- context 'no size' do
17
- let(:rows) { [] }
18
-
19
- it { expect(table.rows_size).to eq(0) }
20
-
21
- it { expect(table.columns_size).to eq(0) }
22
- end
23
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table, 'render repeat' do
4
- it "renders consistently" do
5
- table = TTY::Table.new header: ['header1', 'header2']
6
- table << ['a1', 'a2']
7
- table << ['b1', 'b2']
8
- options = {padding: [1,1,1,1], alignments: [:right, :center]}
9
- expect(table.render(:ascii, options)).to eq unindent(<<-EOS)
10
- +---------+---------+
11
- | | |
12
- | header1 | header2 |
13
- | | |
14
- +---------+---------+
15
- | | |
16
- | a1 | a2 |
17
- | | |
18
- | | |
19
- | b1 | b2 |
20
- | | |
21
- +---------+---------+
22
- EOS
23
-
24
- expect(table.render(:ascii, options)).to eq unindent(<<-EOS)
25
- +---------+---------+
26
- | | |
27
- | header1 | header2 |
28
- | | |
29
- +---------+---------+
30
- | | |
31
- | a1 | a2 |
32
- | | |
33
- | | |
34
- | b1 | b2 |
35
- | | |
36
- +---------+---------+
37
- EOS
38
- end
39
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table, '#render' do
4
- let(:object) { described_class }
5
- let(:header) { ['h1', 'h2'] }
6
- let(:rows) { [['a1', 'a2'], ['b1', 'b2']] }
7
- let(:color) { Pastel.new(enabled: true) }
8
- let(:basic_renderer) { TTY::Table::Renderer::Basic }
9
- let(:ascii_renderer) { TTY::Table::Renderer::ASCII }
10
-
11
- subject(:table) { object.new header, rows }
12
-
13
- before { allow(Pastel).to receive(:new).and_return(color) }
14
-
15
- it { is_expected.to respond_to(:render) }
16
-
17
- context 'with block' do
18
- it 'allows to modify renderer in a block' do
19
- expected = nil
20
- block = lambda { |renderer| expected = renderer }
21
- table.render(&block)
22
- expect(expected).to be_kind_of(basic_renderer)
23
- end
24
-
25
- it 'sets renderer as block parameter' do
26
- expected = nil
27
- block = lambda { |renderer| expected = renderer }
28
- table.render(:ascii, &block)
29
- expect(expected).to be_kind_of(ascii_renderer)
30
- end
31
-
32
- it 'sets parameter on renderer' do
33
- result = table.render :ascii do |renderer|
34
- renderer.border.style = :red
35
- end
36
- expect(result).to eq unindent(<<-EOS)
37
- \e[31m+--+--+\e[0m
38
- \e[31m|\e[0mh1\e[31m|\e[0mh2\e[31m|\e[0m
39
- \e[31m+--+--+\e[0m
40
- \e[31m|\e[0ma1\e[31m|\e[0ma2\e[31m|\e[0m
41
- \e[31m|\e[0mb1\e[31m|\e[0mb2\e[31m|\e[0m
42
- \e[31m+--+--+\e[0m
43
- EOS
44
- end
45
- end
46
-
47
- context 'with params' do
48
- it 'sets params without renderer' do
49
- allow(TTY::Table::Renderer).to receive(:render)
50
- table.render(:basic)
51
- expect(TTY::Table::Renderer).to have_received(:render).
52
- with(table, {renderer: :basic})
53
- end
54
-
55
- it 'sets params with renderer' do
56
- allow(TTY::Table::Renderer).to receive(:render)
57
- table.render
58
- expect(TTY::Table::Renderer).to have_received(:render).with(table, {})
59
- end
60
- end
61
- end
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table, '#render_with' do
4
- let(:header) { ['h1', 'h2', 'h3'] }
5
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
6
- let(:table) { described_class.new header, rows }
7
- let(:color) { Pastel.new(enabled: true) }
8
-
9
- before { allow(Pastel).to receive(:new).and_return(color) }
10
-
11
- context 'with invalid border class' do
12
- it "doesn't inherit from TTY::Table::Border" do
13
- expect { table.render_with String }.to raise_error(TTY::Table::TypeError)
14
- end
15
-
16
- it "doesn't implement def_border" do
17
- klass = Class.new(TTY::Table::Border)
18
- expect { table.render_with klass }.
19
- to raise_error(TTY::Table::NoImplementationError)
20
- end
21
- end
22
-
23
- context 'with complete border' do
24
- before {
25
- class MyBorder < TTY::Table::Border
26
- def_border do
27
- top '='
28
- top_mid '*'
29
- top_left '*'
30
- top_right '*'
31
- bottom '='
32
- bottom_mid '*'
33
- bottom_left '*'
34
- bottom_right '*'
35
- mid '='
36
- mid_mid '*'
37
- mid_left '*'
38
- mid_right '*'
39
- left '$'
40
- center '$'
41
- right '$'
42
- end
43
- end
44
- }
45
-
46
- it 'displays custom border' do
47
- expect(table.render_with(MyBorder)).to eq unindent(<<-EOS)
48
- *==*==*==*
49
- $h1$h2$h3$
50
- *==*==*==*
51
- $a1$a2$a3$
52
- $b1$b2$b3$
53
- *==*==*==*
54
- EOS
55
- end
56
- end
57
-
58
- context 'with incomplete border' do
59
- before {
60
- class MyBorder < TTY::Table::Border
61
- def_border do
62
- bottom ' '
63
- bottom_mid '*'
64
- bottom_left '*'
65
- bottom_right '*'
66
- left '$'
67
- center '$'
68
- right '$'
69
- end
70
- end
71
- }
72
-
73
- it 'displays border' do
74
- expect(table.render_with(MyBorder)).to eq unindent(<<-EOS)
75
- $h1$h2$h3$
76
- $a1$a2$a3$
77
- $b1$b2$b3$
78
- * * * *
79
- EOS
80
- end
81
- end
82
-
83
- context 'with renderer' do
84
- before {
85
- class MyBorder < TTY::Table::Border
86
- def_border do
87
- left '|'
88
- right '|'
89
- end
90
- end
91
- }
92
-
93
- it 'displays border' do
94
- result = table.render_with MyBorder do |renderer|
95
- renderer.border.style = :red
96
- end
97
- expect(result).to eq unindent(<<-EOS)
98
- \e[31m|\e[0mh1h2h3\e[31m|\e[0m
99
- \e[31m|\e[0ma1a2a3\e[31m|\e[0m
100
- \e[31m|\e[0mb1b2b3\e[31m|\e[0m
101
- EOS
102
- end
103
- end
104
- end # render_with
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table::Renderer::ASCII, 'coloring' do
4
-
5
- let(:color) { Pastel.new(enabled: true) }
6
-
7
- before { allow(Pastel).to receive(:new).and_return(color) }
8
-
9
- context 'when border' do
10
- it "colors border" do
11
- table = TTY::Table.new header: ['header1', 'header2']
12
- table << ['a1', 'a2']
13
- table << ['b1', 'b2']
14
- renderer = described_class.new(table)
15
- renderer.border.style = :green
16
-
17
- expect(renderer.render).to eq unindent(<<-EOS)
18
- #{color.green('+-------+-------+')}
19
- #{color.green('|')}header1#{color.green('|')}header2#{color.green('|')}
20
- #{color.green('+-------+-------+')}
21
- #{color.green('|')}a1 #{color.green('|')}a2 #{color.green('|')}
22
- #{color.green('|')}b1 #{color.green('|')}b2 #{color.green('|')}
23
- #{color.green('+-------+-------+')}
24
- EOS
25
- end
26
- end
27
-
28
- context 'when content' do
29
- it "colors individual field" do
30
- header = [color.yellow('header1'), 'header2']
31
- table = TTY::Table.new header: header
32
- table << [color.green.on_blue('a1'), 'a2']
33
- table << ['b1', color.red.on_yellow('b2')]
34
- renderer = described_class.new(table)
35
-
36
- expect(renderer.render).to eq unindent(<<-EOS)
37
- +-------+-------+
38
- |#{color.yellow('header1')}|header2|
39
- +-------+-------+
40
- |#{color.green.on_blue('a1')} |a2 |
41
- |b1 |#{color.red.on_yellow('b2')} |
42
- +-------+-------+
43
- EOS
44
- end
45
-
46
- it "colors multiline content" do
47
- header = [color.yellow("Multi\nHeader"), 'header2']
48
- table = TTY::Table.new header: header
49
- table << [color.green.on_blue("Multi\nLine\nContent"), 'a2']
50
- table << ['b1', color.red.on_yellow("Multi\nLine\nContent")]
51
- renderer = described_class.new(table, multiline: true)
52
-
53
- expect(renderer.render).to eq unindent(<<-EOS)
54
- +-------+-------+
55
- |#{color.yellow('Multi ')}|header2|
56
- |#{color.yellow('Header')} | |
57
- +-------+-------+
58
- |#{color.green.on_blue('Multi ')}|a2 |
59
- |#{color.green.on_blue('Line ')}| |
60
- |#{color.green.on_blue('Content')}| |
61
- |b1 |#{color.red.on_yellow("Multi ")}|
62
- | |#{color.red.on_yellow("Line ")}|
63
- | |#{color.red.on_yellow("Content")}|
64
- +-------+-------+
65
- EOS
66
- end
67
-
68
- xit "colors adjecent content" do
69
- hello = color.decorate("hello", :black, :on_green)
70
- world = color.decorate("world", :black, :on_red)
71
-
72
- table = TTY::Table.new [:header], [
73
- [hello],
74
- [world],
75
- [hello + world],
76
- [hello + ' ' + world],
77
- ]
78
- renderer = described_class.new(table, column_widths: 6, multiline: true)
79
-
80
- rendered = renderer.render
81
- end
82
- end
83
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe TTY::Table::Renderer::ASCII, 'indentation' do
4
- let(:header) { ['h1', 'h2', 'h3'] }
5
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
6
- let(:table) { TTY::Table.new(header, rows) }
7
- let(:indent) { 2 }
8
- let(:options) { {indent: indent } }
9
-
10
- subject(:renderer) { described_class.new(table, options)}
11
-
12
- context 'when default' do
13
- it 'indents by value' do
14
- expect(renderer.render).to eql <<-EOS.chomp
15
- +--+--+--+
16
- |h1|h2|h3|
17
- +--+--+--+
18
- |a1|a2|a3|
19
- |b1|b2|b3|
20
- +--+--+--+
21
- EOS
22
- end
23
- end
24
-
25
- context 'when each row' do
26
- it 'indents by value' do
27
- renderer.border.separator = :each_row
28
- expect(renderer.render).to eql <<-EOS.chomp
29
- +--+--+--+
30
- |h1|h2|h3|
31
- +--+--+--+
32
- |a1|a2|a3|
33
- +--+--+--+
34
- |b1|b2|b3|
35
- +--+--+--+
36
- EOS
37
- end
38
- end
39
- end