tty-table 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +458 -142
  4. data/lib/tty-table.rb +6 -6
  5. data/lib/tty/table.rb +34 -34
  6. data/lib/tty/table/alignment_set.rb +73 -0
  7. data/lib/tty/table/border.rb +54 -36
  8. data/lib/tty/table/border/null.rb +4 -4
  9. data/lib/tty/table/{columns.rb → column_constraint.rb} +30 -32
  10. data/lib/tty/table/column_set.rb +18 -17
  11. data/lib/tty/table/field.rb +50 -25
  12. data/lib/tty/table/header.rb +6 -2
  13. data/lib/tty/table/indentation.rb +7 -12
  14. data/lib/tty/table/operation/alignment.rb +59 -0
  15. data/lib/tty/table/operation/escape.rb +1 -1
  16. data/lib/tty/table/operation/filter.rb +1 -1
  17. data/lib/tty/table/operation/padding.rb +12 -61
  18. data/lib/tty/table/operation/truncation.rb +2 -2
  19. data/lib/tty/table/operation/wrapped.rb +2 -5
  20. data/lib/tty/table/operations.rb +35 -17
  21. data/lib/tty/table/orientation/vertical.rb +4 -4
  22. data/lib/tty/table/renderer.rb +1 -7
  23. data/lib/tty/table/renderer/basic.rb +69 -63
  24. data/lib/tty/table/version.rb +1 -1
  25. data/spec/spec_helper.rb +3 -4
  26. data/spec/unit/access_spec.rb +8 -8
  27. data/spec/unit/{operation/alignment_set → alignment_set}/each_spec.rb +1 -1
  28. data/spec/unit/{operation/alignment_set → alignment_set}/new_spec.rb +4 -4
  29. data/spec/unit/{operation/alignment_set → alignment_set}/to_ary_spec.rb +1 -1
  30. data/spec/unit/alignment_spec.rb +71 -0
  31. data/spec/unit/border/ascii/rendering_spec.rb +12 -12
  32. data/spec/unit/border/new_spec.rb +2 -2
  33. data/spec/unit/border/null/rendering_spec.rb +2 -2
  34. data/spec/unit/border/unicode/rendering_spec.rb +10 -10
  35. data/spec/unit/{columns → column_constraint}/enforce_spec.rb +15 -12
  36. data/spec/unit/{columns → column_constraint}/widths_spec.rb +6 -6
  37. data/spec/unit/column_set/extract_widths_spec.rb +39 -6
  38. data/spec/unit/data_spec.rb +4 -6
  39. data/spec/unit/each_spec.rb +8 -23
  40. data/spec/unit/each_with_index_spec.rb +27 -33
  41. data/spec/unit/field/length_spec.rb +23 -9
  42. data/spec/unit/field/width_spec.rb +1 -1
  43. data/spec/unit/filter_spec.rb +7 -8
  44. data/spec/unit/header/new_spec.rb +6 -15
  45. data/spec/unit/indentation/indent_spec.rb +21 -0
  46. data/spec/unit/new_spec.rb +73 -0
  47. data/spec/unit/operation/{alignment_set → alignment}/call_spec.rb +1 -1
  48. data/spec/unit/operation/escape/call_spec.rb +2 -3
  49. data/spec/unit/operation/filter/call_spec.rb +2 -3
  50. data/spec/unit/operation/truncation/call_spec.rb +6 -8
  51. data/spec/unit/operation/wrapped/call_spec.rb +15 -8
  52. data/spec/unit/operations/new_spec.rb +1 -1
  53. data/spec/unit/orientation_spec.rb +6 -6
  54. data/spec/unit/padding_spec.rb +29 -32
  55. data/spec/unit/properties_spec.rb +4 -4
  56. data/spec/unit/render_repeat_spec.rb +42 -0
  57. data/spec/unit/render_spec.rb +1 -1
  58. data/spec/unit/render_with_spec.rb +3 -3
  59. data/spec/unit/renderer/ascii/coloring_spec.rb +70 -0
  60. data/spec/unit/renderer/ascii/multiline_spec.rb +101 -0
  61. data/spec/unit/renderer/ascii/padding_spec.rb +37 -10
  62. data/spec/unit/renderer/ascii/render_spec.rb +4 -4
  63. data/spec/unit/renderer/ascii/resizing_spec.rb +22 -22
  64. data/spec/unit/renderer/ascii/separator_spec.rb +1 -1
  65. data/spec/unit/renderer/basic/alignment_spec.rb +20 -20
  66. data/spec/unit/renderer/basic/coloring_spec.rb +43 -28
  67. data/spec/unit/renderer/basic/filter_spec.rb +3 -3
  68. data/spec/unit/renderer/basic/multiline_spec.rb +74 -0
  69. data/spec/unit/renderer/basic/options_spec.rb +9 -9
  70. data/spec/unit/renderer/basic/padding_spec.rb +26 -2
  71. data/spec/unit/renderer/basic/render_spec.rb +4 -4
  72. data/spec/unit/renderer/basic/resizing_spec.rb +18 -18
  73. data/spec/unit/renderer/basic/separator_spec.rb +1 -1
  74. data/spec/unit/renderer/basic/truncation_spec.rb +6 -6
  75. data/spec/unit/renderer/basic/wrapping_spec.rb +3 -3
  76. data/spec/unit/renderer/border_spec.rb +4 -4
  77. data/spec/unit/renderer/unicode/coloring_spec.rb +70 -0
  78. data/spec/unit/renderer/unicode/indentation_spec.rb +1 -1
  79. data/spec/unit/renderer/unicode/padding_spec.rb +26 -26
  80. data/spec/unit/renderer/unicode/render_spec.rb +4 -4
  81. data/spec/unit/renderer/unicode/separator_spec.rb +1 -1
  82. data/spec/unit/to_s_spec.rb +4 -11
  83. data/spec/unit/utf_spec.rb +33 -0
  84. data/tty-table.gemspec +2 -1
  85. metadata +52 -32
  86. data/lib/tty/table/operation/alignment_set.rb +0 -103
  87. data/lib/tty/table/padder.rb +0 -180
  88. data/lib/tty/table/renderer/color.rb +0 -12
  89. data/spec/unit/indentation/insert_indent_spec.rb +0 -27
  90. data/spec/unit/initialize_spec.rb +0 -88
  91. data/spec/unit/padder/parse_spec.rb +0 -45
  92. data/spec/unit/padder/to_s_spec.rb +0 -14
  93. data/spec/unit/renderer/basic/multiline_content_spec.rb +0 -135
  94. data/spec/unit/renderer/style_spec.rb +0 -72
@@ -7,12 +7,12 @@ RSpec.describe TTY::Table::Renderer::Basic, 'options' do
7
7
  let(:object) { described_class }
8
8
  let(:table) { TTY::Table.new(rows) }
9
9
  let(:widths) { nil }
10
- let(:aligns) { [] }
10
+ let(:alignments) { [] }
11
11
  let(:options) {
12
12
  {
13
- :column_widths => widths,
14
- :column_aligns => aligns,
15
- :renderer => :basic
13
+ column_widths: widths,
14
+ alignments: alignments,
15
+ renderer: :basic
16
16
  }
17
17
  }
18
18
 
@@ -22,9 +22,9 @@ RSpec.describe TTY::Table::Renderer::Basic, 'options' do
22
22
 
23
23
  it { expect(renderer.column_widths).to eql([2,2]) }
24
24
 
25
- it { expect(renderer.column_aligns).to eql(aligns) }
25
+ it { expect(renderer.alignments.to_a).to eql(alignments) }
26
26
 
27
- it { expect(renderer.column_aligns.to_a).to be_empty }
27
+ it { expect(renderer.alignments.to_a).to be_empty }
28
28
 
29
29
  context '#column_widths' do
30
30
  let(:widths) { [10, 10] }
@@ -42,11 +42,11 @@ RSpec.describe TTY::Table::Renderer::Basic, 'options' do
42
42
  }
43
43
  end
44
44
 
45
- context '#column_aligns' do
46
- let(:aligns) { [:center, :center] }
45
+ context '#alignments' do
46
+ let(:alignments) { [:center, :center] }
47
47
 
48
48
  it 'unwraps original array' do
49
- expect(renderer.column_aligns.to_a).to eq(aligns)
49
+ expect(renderer.alignments.to_a).to eq(alignments)
50
50
  end
51
51
  end
52
52
  end
@@ -21,7 +21,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'padding' do
21
21
  end
22
22
 
23
23
  context 'with top & bottom padding' do
24
- let(:options) { {padding: [1,0,1,0], multiline: true} }
24
+ let(:options) { {padding: [1,0,1,0]} }
25
25
 
26
26
  it 'pads each field' do
27
27
  expect(renderer.render).to eql <<-EOS.chomp
@@ -36,7 +36,7 @@ EOS
36
36
  end
37
37
 
38
38
  context 'with full padding' do
39
- let(:options) { {padding: [1,1,1,1], multiline: true} }
39
+ let(:options) { {padding: [1,1,1,1]} }
40
40
 
41
41
  it 'pads each field' do
42
42
  expect(renderer.render).to eql <<-EOS.chomp
@@ -49,4 +49,28 @@ EOS
49
49
  EOS
50
50
  end
51
51
  end
52
+
53
+ context "with multiline content padding" do
54
+ it "pads around fields" do
55
+ padding = [1,2,1,2]
56
+ table = TTY::Table.new header: ['header1', 'header2']
57
+ table << ["a1\na1\na1",'a2']
58
+ table << ["b1","b2\nb2"]
59
+ renderer = TTY::Table::Renderer::Basic.new(table, padding: padding, multiline: true)
60
+ expect(renderer.render).to eql <<-EOS.chomp
61
+
62
+ header1 header2
63
+
64
+
65
+ a1 a2
66
+ a1
67
+ a1
68
+
69
+
70
+ b1 b2
71
+ b2
72
+
73
+ EOS
74
+ end
75
+ end
52
76
  end
@@ -13,7 +13,7 @@ RSpec.describe TTY::Table::Renderer::Basic, '#render' do
13
13
  let(:table) { TTY::Table.new rows }
14
14
 
15
15
  it 'displays table without styling' do
16
- expect(renderer.render).to eq <<-EOS.normalize
16
+ expect(renderer.render).to eq unindent(<<-EOS)
17
17
  a1 a2 a3
18
18
  b1 b2 b3
19
19
  EOS
@@ -22,7 +22,7 @@ RSpec.describe TTY::Table::Renderer::Basic, '#render' do
22
22
 
23
23
  context 'with header and rows' do
24
24
  it 'displays table with header' do
25
- expect(renderer.render).to eq <<-EOS.normalize
25
+ expect(renderer.render).to eq unindent(<<-EOS)
26
26
  h1 h2 h3
27
27
  a1 a2 a3
28
28
  b1 b2 b3
@@ -35,7 +35,7 @@ RSpec.describe TTY::Table::Renderer::Basic, '#render' do
35
35
  let(:rows) { [['aaa1', 'a2'], ['b1', 'bb1']] }
36
36
 
37
37
  it 'displays table according to widths' do
38
- expect(renderer.render).to eq <<-EOS.normalize
38
+ expect(renderer.render).to eq unindent(<<-EOS)
39
39
  h1 h2
40
40
  aaa1 a2
41
41
  b1 bb1
@@ -47,7 +47,7 @@ RSpec.describe TTY::Table::Renderer::Basic, '#render' do
47
47
  let(:header) { ['header1', 'header2', 'header3'] }
48
48
 
49
49
  it 'header greater than row sizes' do
50
- expect(renderer.render).to eq <<-EOS.normalize
50
+ expect(renderer.render).to eq unindent(<<-EOS)
51
51
  header1 header2 header3
52
52
  a1 a2 a3
53
53
  b1 b2 b3
@@ -14,7 +14,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'resizing' do
14
14
  let(:options) { {width: 16, resize: true} }
15
15
 
16
16
  it 'resizes each column' do
17
- expect(renderer.render).to eql <<-EOS.normalize
17
+ expect(renderer.render).to eql unindent(<<-EOS)
18
18
  h1 h2 h3
19
19
  a1 a2 a3
20
20
  b1 b2 b3
@@ -28,7 +28,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'resizing' do
28
28
  let(:options) { {width: 21, resize: true} }
29
29
 
30
30
  it 'resizes each column' do
31
- expect(renderer.render).to eql <<-EOS.normalize
31
+ expect(renderer.render).to eql unindent(<<-EOS)
32
32
  h1 h2 h3 h4
33
33
  a1 a2 a3 a4
34
34
  b1 b2 b3 b4
@@ -42,7 +42,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'resizing' do
42
42
  let(:options) { {width: 32, resize: true} }
43
43
 
44
44
  it 'resizes each column' do
45
- expect(renderer.render).to eql <<-EOS.normalize
45
+ expect(renderer.render).to eql unindent(<<-EOS)
46
46
  h1 h2 h3
47
47
  aaa1 aa2 aaaaaaa3
48
48
  b1 b2 b3
@@ -56,25 +56,25 @@ RSpec.describe TTY::Table::Renderer::Basic, 'resizing' do
56
56
  let(:rows) { [['aaaa1','aaaa2',], ['bbbb1','bbbb2']] }
57
57
 
58
58
  context 'even columns' do
59
- let(:options) { {width: 7, resize: true} }
59
+ let(:options) { {width: 8, resize: true} }
60
60
 
61
61
  it 'resizes each column' do
62
- expect(renderer.render).to eql <<-EOS.normalize
63
- he… he…
64
- aa… aa…
65
- bb… bb…
62
+ expect(renderer.render).to eql unindent(<<-EOS)
63
+ he… h…
64
+ aa… a…
65
+ bb… b…
66
66
  EOS
67
67
  end
68
68
  end
69
69
 
70
70
  context 'even columns with extra width' do
71
- let(:options) { {width: 8, resize: true} }
71
+ let(:options) { {width: 9, resize: true} }
72
72
 
73
73
  it 'resizes each column' do
74
- expect(renderer.render).to eql <<-EOS.normalize
75
- hea he…
76
- aaa aa…
77
- bbb bb…
74
+ expect(renderer.render).to eql unindent(<<-EOS)
75
+ he he…
76
+ aa aa…
77
+ bb bb…
78
78
  EOS
79
79
  end
80
80
  end
@@ -82,13 +82,13 @@ RSpec.describe TTY::Table::Renderer::Basic, 'resizing' do
82
82
  context 'uneven columns' do
83
83
  let(:header) { ['head1', 'head2', 'head3'] }
84
84
  let(:rows) { [['aaa1', 'aa2', 'aaaaaaa3'], ['b1', 'b2', 'b3']] }
85
- let(:options) { {width: 15, resize: true} }
85
+ let(:options) { {width: 16, resize: true} }
86
86
 
87
87
  it 'resizes each column' do
88
- expect(renderer.render).to eql <<-EOS.normalize
89
- hea he… head3
90
- aaa1 aa2 aaaaa…
91
- b1 b2 b3
88
+ expect(renderer.render).to eql unindent(<<-EOS)
89
+ he he… head3
90
+ aaa1 aa2 aaaa…
91
+ b1 b2 b3
92
92
  EOS
93
93
  end
94
94
  end
@@ -31,7 +31,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'with separator' do
31
31
 
32
32
  it "renders each row" do
33
33
  renderer.border.separator= :each_row
34
- expect(renderer.render).to eq <<-EOS.normalize
34
+ expect(renderer.render).to eq unindent(<<-EOS)
35
35
  h1 h2 h3
36
36
 
37
37
  a1 a2 a3
@@ -13,7 +13,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'truncation' do
13
13
  let(:options) { {} }
14
14
 
15
15
  it "doesn't shorten the fields" do
16
- expect(renderer.render).to eq <<-EOS.normalize
16
+ expect(renderer.render).to eq unindent(<<-EOS)
17
17
  header1 head2 h3
18
18
  a1111111 a222 a3333333
19
19
  b111 b2222222 b333333
@@ -22,13 +22,13 @@ RSpec.describe TTY::Table::Renderer::Basic, 'truncation' do
22
22
  end
23
23
 
24
24
  context 'with column widths' do
25
- let(:options) { { column_widths: [3, 5, 7] } }
25
+ let(:options) { { column_widths: [4, 5, 7] } }
26
26
 
27
27
  it 'shortens the fields' do
28
- expect(renderer.render).to eq <<-EOS.normalize
29
- he… head2 h3
30
- a1… a222 a33333
31
- b1… b222 b333333
28
+ expect(renderer.render).to eq unindent(<<-EOS)
29
+ he… head2 h3
30
+ a1… a222 a3333
31
+ b111 b22 b333333
32
32
  EOS
33
33
  end
34
34
  end
@@ -12,8 +12,8 @@ RSpec.describe TTY::Table::Renderer::Basic, 'wrapping' do
12
12
  context 'without column widths' do
13
13
  let(:options) { {multiline: true} }
14
14
 
15
- it 'doesn\'t wrap the fields' do
16
- expect(renderer.render).to eq <<-EOS.normalize
15
+ it "doesn't wrap the fields" do
16
+ expect(renderer.render).to eq unindent(<<-EOS)
17
17
  header1 head2 h3
18
18
  a1111111 a222 a3333333
19
19
  b111 b2222222 b333333
@@ -25,7 +25,7 @@ RSpec.describe TTY::Table::Renderer::Basic, 'wrapping' do
25
25
  let(:options) { { column_widths: [3, 5, 7], multiline: true} }
26
26
 
27
27
  it 'wraps the fields' do
28
- expect(renderer.render).to eq <<-EOS.normalize
28
+ expect(renderer.render).to eq unindent(<<-EOS)
29
29
  hea head2 h3
30
30
  der
31
31
  1
@@ -31,7 +31,7 @@ RSpec.describe TTY::Table::Renderer, '#border' do
31
31
  mid_mid ' '
32
32
  end
33
33
 
34
- expect(renderer.render).to eq <<-EOS.normalize
34
+ expect(renderer.render).to eq unindent(<<-EOS)
35
35
  h1 h2 h3
36
36
  == == ==
37
37
  a1 a2 a3
@@ -51,7 +51,7 @@ RSpec.describe TTY::Table::Renderer, '#border' do
51
51
  mid_right '='
52
52
  end
53
53
 
54
- expect(renderer.render).to eq <<-EOS.normalize
54
+ expect(renderer.render).to eq unindent(<<-EOS)
55
55
  +--+--+--+
56
56
  |h1|h2|h3|
57
57
  ==========
@@ -69,7 +69,7 @@ RSpec.describe TTY::Table::Renderer, '#border' do
69
69
  'mid_right' => '=',
70
70
  }})
71
71
 
72
- expect(renderer.render).to eq <<-EOS.normalize
72
+ expect(renderer.render).to eq unindent(<<-EOS)
73
73
  +--+--+--+
74
74
  |h1|h2|h3|
75
75
  ==========
@@ -91,7 +91,7 @@ RSpec.describe TTY::Table::Renderer, '#border' do
91
91
  mid_right '='
92
92
  end
93
93
 
94
- expect(renderer.render).to eq <<-EOS.normalize
94
+ expect(renderer.render).to eq unindent(<<-EOS)
95
95
  ┌──┬──┬──┐
96
96
  │h1│h2│h3│
97
97
  ==========
@@ -0,0 +1,70 @@
1
+ # coding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe TTY::Table::Renderer::Unicode, 'coloring' do
6
+
7
+ let(:color) { Pastel.new(enabled: true) }
8
+
9
+ before { allow(Pastel).to receive(:new).and_return(color) }
10
+
11
+ context 'when border' do
12
+ it "colors border" do
13
+ table = TTY::Table.new header: ['header1', 'header2']
14
+ table << ['a1', 'a2']
15
+ table << ['b1', 'b2']
16
+ renderer = described_class.new(table)
17
+ renderer.border = {style: :green }
18
+
19
+ expect(renderer.render).to eq unindent(<<-EOS)
20
+ #{color.green('┌───────┬───────┐')}
21
+ #{color.green('│')}header1#{color.green('│')}header2#{color.green('│')}
22
+ #{color.green('├───────┼───────┤')}
23
+ #{color.green('│')}a1 #{color.green('│')}a2 #{color.green('│')}
24
+ #{color.green('│')}b1 #{color.green('│')}b2 #{color.green('│')}
25
+ #{color.green('└───────┴───────┘')}
26
+ EOS
27
+ end
28
+ end
29
+
30
+ context 'when content' do
31
+ it "colors individual field" do
32
+ header = [color.yellow('header1'), 'header2']
33
+ table = TTY::Table.new header: header
34
+ table << [color.green.on_blue('a1'), 'a2']
35
+ table << ['b1', color.red.on_yellow('b2')]
36
+ renderer = described_class.new(table)
37
+
38
+ expect(renderer.render).to eq unindent(<<-EOS)
39
+ ┌───────┬───────┐
40
+ │#{color.yellow('header1')}│header2│
41
+ ├───────┼───────┤
42
+ │#{color.green.on_blue('a1')} │a2 │
43
+ │b1 │#{color.red.on_yellow('b2')} │
44
+ └───────┴───────┘
45
+ EOS
46
+ end
47
+
48
+ it "colors multiline content" do
49
+ header = [color.yellow("Multi\nHeader"), 'header2']
50
+ table = TTY::Table.new header: header
51
+ table << [color.green.on_blue("Multi\nLine\nContent"), 'a2']
52
+ table << ['b1', color.red.on_yellow("Multi\nLine\nContent")]
53
+ renderer = described_class.new(table, multiline: true)
54
+
55
+ expect(renderer.render).to eq unindent(<<-EOS)
56
+ ┌───────┬───────┐
57
+ │#{color.yellow('Multi ')}│header2│
58
+ │#{color.yellow('Header')} │ │
59
+ ├───────┼───────┤
60
+ │#{color.green.on_blue('Multi ')}│a2 │
61
+ │#{color.green.on_blue('Line ')}│ │
62
+ │#{color.green.on_blue('Content')}│ │
63
+ │b1 │#{color.red.on_yellow("Multi ")}│
64
+ │ │#{color.red.on_yellow("Line ")}│
65
+ │ │#{color.red.on_yellow("Content")}│
66
+ └───────┴───────┘
67
+ EOS
68
+ end
69
+ end
70
+ end
@@ -13,7 +13,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, 'indentation' do
13
13
 
14
14
  context 'when default' do
15
15
  it 'indents by value' do
16
- expect(renderer.render).to eql <<-EOS.chomp
16
+ expect(renderer.render).to eq <<-EOS.chomp
17
17
  ┌──┬──┬──┐
18
18
  │h1│h2│h3│
19
19
  ├──┼──┼──┤
@@ -13,12 +13,12 @@ RSpec.describe TTY::Table::Renderer::Unicode, 'padding' do
13
13
  let(:options) { {padding: [0,1,0,1]} }
14
14
 
15
15
  it 'pads each field' do
16
- expect(renderer.render).to eql <<-EOS.chomp
17
- ┌───────┬─────────┬──────┬─────┬─────────┬───────┐
18
- │ Field │ Type │ Null │ Key │ Default │ Extra │
19
- ├───────┼─────────┼──────┼─────┼─────────┼───────┤
20
- │ id │ int(11) │ YES │ nil │ NULL │ │
21
- └───────┴─────────┴──────┴─────┴─────────┴───────┘
16
+ expect(renderer.render).to eql unindent(<<-EOS)
17
+ ┌───────┬─────────┬──────┬─────┬─────────┬───────┐
18
+ │ Field │ Type │ Null │ Key │ Default │ Extra │
19
+ ├───────┼─────────┼──────┼─────┼─────────┼───────┤
20
+ │ id │ int(11) │ YES │ nil │ NULL │ │
21
+ └───────┴─────────┴──────┴─────┴─────────┴───────┘
22
22
  EOS
23
23
  end
24
24
  end
@@ -27,16 +27,16 @@ RSpec.describe TTY::Table::Renderer::Unicode, 'padding' do
27
27
  let(:options) { {padding: [1,0,1,0], multiline: true} }
28
28
 
29
29
  it 'pads each field' do
30
- expect(renderer.render).to eql <<-EOS.chomp
31
- ┌─────┬───────┬────┬───┬───────┬─────┐
32
- │ │ │ │ │ │ │
33
- │Field│Type │Null│Key│Default│Extra│
34
- │ │ │ │ │ │ │
35
- ├─────┼───────┼────┼───┼───────┼─────┤
36
- │ │ │ │ │ │ │
37
- │id │int(11)│YES │nil│NULL │ │
38
- │ │ │ │ │ │ │
39
- └─────┴───────┴────┴───┴───────┴─────┘
30
+ expect(renderer.render).to eql unindent(<<-EOS)
31
+ ┌─────┬───────┬────┬───┬───────┬─────┐
32
+ │ │ │ │ │ │ │
33
+ │Field│Type │Null│Key│Default│Extra│
34
+ │ │ │ │ │ │ │
35
+ ├─────┼───────┼────┼───┼───────┼─────┤
36
+ │ │ │ │ │ │ │
37
+ │id │int(11)│YES │nil│NULL │ │
38
+ │ │ │ │ │ │ │
39
+ └─────┴───────┴────┴───┴───────┴─────┘
40
40
  EOS
41
41
  end
42
42
  end
@@ -45,16 +45,16 @@ RSpec.describe TTY::Table::Renderer::Unicode, 'padding' do
45
45
  let(:options) { {padding: [1,1,1,1], multiline: true} }
46
46
 
47
47
  it 'pads each field' do
48
- expect(renderer.render).to eql <<-EOS.chomp
49
- ┌───────┬─────────┬──────┬─────┬─────────┬───────┐
50
- │ │ │ │ │ │ │
51
- │ Field │ Type │ Null │ Key │ Default │ Extra │
52
- │ │ │ │ │ │ │
53
- ├───────┼─────────┼──────┼─────┼─────────┼───────┤
54
- │ │ │ │ │ │ │
55
- │ id │ int(11) │ YES │ nil │ NULL │ │
56
- │ │ │ │ │ │ │
57
- └───────┴─────────┴──────┴─────┴─────────┴───────┘
48
+ expect(renderer.render).to eql unindent(<<-EOS)
49
+ ┌───────┬─────────┬──────┬─────┬─────────┬───────┐
50
+ │ │ │ │ │ │ │
51
+ │ Field │ Type │ Null │ Key │ Default │ Extra │
52
+ │ │ │ │ │ │ │
53
+ ├───────┼─────────┼──────┼─────┼─────────┼───────┤
54
+ │ │ │ │ │ │ │
55
+ │ id │ int(11) │ YES │ nil │ NULL │ │
56
+ │ │ │ │ │ │ │
57
+ └───────┴─────────┴──────┴─────┴─────────┴───────┘
58
58
  EOS
59
59
  end
60
60
  end