tty-table 0.7.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 (151) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +57 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +165 -94
  5. data/lib/tty-table.rb +1 -5
  6. data/lib/tty/table.rb +102 -42
  7. data/lib/tty/table/alignment_set.rb +3 -6
  8. data/lib/tty/table/border.rb +57 -68
  9. data/lib/tty/table/border/ascii.rb +17 -17
  10. data/lib/tty/table/border/null.rb +20 -22
  11. data/lib/tty/table/border/row_line.rb +4 -3
  12. data/lib/tty/table/border/unicode.rb +17 -17
  13. data/lib/tty/table/border_dsl.rb +28 -25
  14. data/lib/tty/table/border_options.rb +50 -25
  15. data/lib/tty/table/column_constraint.rb +29 -17
  16. data/lib/tty/table/{column_set.rb → columns.rb} +44 -69
  17. data/lib/tty/table/empty.rb +2 -0
  18. data/lib/tty/table/error.rb +1 -1
  19. data/lib/tty/table/field.rb +43 -35
  20. data/lib/tty/table/header.rb +7 -5
  21. data/lib/tty/table/indentation.rb +16 -25
  22. data/lib/tty/table/operation/alignment.rb +10 -8
  23. data/lib/tty/table/operation/escape.rb +2 -3
  24. data/lib/tty/table/operation/filter.rb +1 -1
  25. data/lib/tty/table/operation/padding.rb +4 -12
  26. data/lib/tty/table/operation/truncation.rb +4 -4
  27. data/lib/tty/table/operation/wrapped.rb +4 -4
  28. data/lib/tty/table/operations.rb +4 -15
  29. data/lib/tty/table/options.rb +2 -4
  30. data/lib/tty/table/orientation.rb +5 -5
  31. data/lib/tty/table/orientation/horizontal.rb +1 -1
  32. data/lib/tty/table/orientation/vertical.rb +1 -1
  33. data/lib/tty/table/renderer.rb +40 -35
  34. data/lib/tty/table/renderer/ascii.rb +4 -4
  35. data/lib/tty/table/renderer/basic.rb +85 -88
  36. data/lib/tty/table/renderer/unicode.rb +3 -3
  37. data/lib/tty/table/row.rb +10 -8
  38. data/lib/tty/table/transformation.rb +2 -2
  39. data/lib/tty/table/validatable.rb +25 -7
  40. data/lib/tty/table/version.rb +3 -3
  41. metadata +33 -283
  42. data/.gitignore +0 -14
  43. data/.rspec +0 -3
  44. data/.travis.yml +0 -24
  45. data/CODE_OF_CONDUCT.md +0 -49
  46. data/Gemfile +0 -18
  47. data/Rakefile +0 -8
  48. data/benchmarks/speed.rb +0 -41
  49. data/spec/spec_helper.rb +0 -50
  50. data/spec/unit/access_spec.rb +0 -86
  51. data/spec/unit/add_row_spec.rb +0 -28
  52. data/spec/unit/alignment_set/each_spec.rb +0 -17
  53. data/spec/unit/alignment_set/new_spec.rb +0 -27
  54. data/spec/unit/alignment_set/to_ary_spec.rb +0 -14
  55. data/spec/unit/alignment_spec.rb +0 -71
  56. data/spec/unit/border/ascii/rendering_spec.rb +0 -90
  57. data/spec/unit/border/new_spec.rb +0 -27
  58. data/spec/unit/border/null/rendering_spec.rb +0 -130
  59. data/spec/unit/border/options/from_spec.rb +0 -38
  60. data/spec/unit/border/options/new_spec.rb +0 -14
  61. data/spec/unit/border/unicode/rendering_spec.rb +0 -63
  62. data/spec/unit/border_options/new_spec.rb +0 -20
  63. data/spec/unit/border_options/update_spec.rb +0 -18
  64. data/spec/unit/column_constraint/enforce_spec.rb +0 -70
  65. data/spec/unit/column_constraint/widths_spec.rb +0 -35
  66. data/spec/unit/column_set/extract_widths_spec.rb +0 -48
  67. data/spec/unit/column_set/total_width_spec.rb +0 -15
  68. data/spec/unit/column_set/widths_from_spec.rb +0 -51
  69. data/spec/unit/data_spec.rb +0 -12
  70. data/spec/unit/each_spec.rb +0 -26
  71. data/spec/unit/each_with_index_spec.rb +0 -51
  72. data/spec/unit/empty_spec.rb +0 -23
  73. data/spec/unit/eql_spec.rb +0 -34
  74. data/spec/unit/field/equality_spec.rb +0 -51
  75. data/spec/unit/field/length_spec.rb +0 -35
  76. data/spec/unit/field/lines_spec.rb +0 -21
  77. data/spec/unit/field/new_spec.rb +0 -29
  78. data/spec/unit/field/width_spec.rb +0 -23
  79. data/spec/unit/filter_spec.rb +0 -22
  80. data/spec/unit/header/call_spec.rb +0 -30
  81. data/spec/unit/header/color_spec.rb +0 -19
  82. data/spec/unit/header/equality_spec.rb +0 -51
  83. data/spec/unit/header/height_spec.rb +0 -27
  84. data/spec/unit/header/new_spec.rb +0 -16
  85. data/spec/unit/header/set_spec.rb +0 -20
  86. data/spec/unit/header/to_ary_spec.rb +0 -14
  87. data/spec/unit/header_spec.rb +0 -13
  88. data/spec/unit/indentation/indent_spec.rb +0 -21
  89. data/spec/unit/new_spec.rb +0 -73
  90. data/spec/unit/operation/alignment/call_spec.rb +0 -39
  91. data/spec/unit/operation/escape/call_spec.rb +0 -15
  92. data/spec/unit/operation/filter/call_spec.rb +0 -16
  93. data/spec/unit/operation/truncation/call_spec.rb +0 -30
  94. data/spec/unit/operation/wrapped/call_spec.rb +0 -40
  95. data/spec/unit/operations/new_spec.rb +0 -30
  96. data/spec/unit/options/access_spec.rb +0 -14
  97. data/spec/unit/options_spec.rb +0 -25
  98. data/spec/unit/orientation_spec.rb +0 -145
  99. data/spec/unit/padding_spec.rb +0 -117
  100. data/spec/unit/properties_spec.rb +0 -25
  101. data/spec/unit/render_repeat_spec.rb +0 -42
  102. data/spec/unit/render_spec.rb +0 -63
  103. data/spec/unit/render_with_spec.rb +0 -106
  104. data/spec/unit/renderer/ascii/coloring_spec.rb +0 -70
  105. data/spec/unit/renderer/ascii/indentation_spec.rb +0 -41
  106. data/spec/unit/renderer/ascii/multiline_spec.rb +0 -101
  107. data/spec/unit/renderer/ascii/padding_spec.rb +0 -88
  108. data/spec/unit/renderer/ascii/render_spec.rb +0 -68
  109. data/spec/unit/renderer/ascii/resizing_spec.rb +0 -114
  110. data/spec/unit/renderer/ascii/separator_spec.rb +0 -28
  111. data/spec/unit/renderer/basic/alignment_spec.rb +0 -88
  112. data/spec/unit/renderer/basic/coloring_spec.rb +0 -61
  113. data/spec/unit/renderer/basic/extract_column_widths_spec.rb +0 -28
  114. data/spec/unit/renderer/basic/filter_spec.rb +0 -53
  115. data/spec/unit/renderer/basic/indentation_spec.rb +0 -48
  116. data/spec/unit/renderer/basic/multiline_spec.rb +0 -74
  117. data/spec/unit/renderer/basic/new_spec.rb +0 -26
  118. data/spec/unit/renderer/basic/options_spec.rb +0 -52
  119. data/spec/unit/renderer/basic/padding_spec.rb +0 -76
  120. data/spec/unit/renderer/basic/render_spec.rb +0 -57
  121. data/spec/unit/renderer/basic/resizing_spec.rb +0 -96
  122. data/spec/unit/renderer/basic/separator_spec.rb +0 -43
  123. data/spec/unit/renderer/basic/truncation_spec.rb +0 -35
  124. data/spec/unit/renderer/basic/wrapping_spec.rb +0 -40
  125. data/spec/unit/renderer/border_spec.rb +0 -104
  126. data/spec/unit/renderer/render_spec.rb +0 -36
  127. data/spec/unit/renderer/select_spec.rb +0 -22
  128. data/spec/unit/renderer/unicode/coloring_spec.rb +0 -70
  129. data/spec/unit/renderer/unicode/indentation_spec.rb +0 -41
  130. data/spec/unit/renderer/unicode/padding_spec.rb +0 -61
  131. data/spec/unit/renderer/unicode/render_spec.rb +0 -68
  132. data/spec/unit/renderer/unicode/separator_spec.rb +0 -26
  133. data/spec/unit/renderer_spec.rb +0 -19
  134. data/spec/unit/rotate_spec.rb +0 -86
  135. data/spec/unit/row/access_spec.rb +0 -25
  136. data/spec/unit/row/call_spec.rb +0 -45
  137. data/spec/unit/row/data_spec.rb +0 -26
  138. data/spec/unit/row/each_spec.rb +0 -31
  139. data/spec/unit/row/equality_spec.rb +0 -73
  140. data/spec/unit/row/height_spec.rb +0 -27
  141. data/spec/unit/row/new_spec.rb +0 -41
  142. data/spec/unit/row/to_ary_spec.rb +0 -14
  143. data/spec/unit/to_s_spec.rb +0 -56
  144. data/spec/unit/transformation/extract_tuples_spec.rb +0 -35
  145. data/spec/unit/utf_spec.rb +0 -33
  146. data/spec/unit/validatable/validate_options_spec.rb +0 -33
  147. data/spec/unit/validatable_spec.rb +0 -32
  148. data/tasks/console.rake +0 -10
  149. data/tasks/coverage.rake +0 -11
  150. data/tasks/spec.rake +0 -29
  151. data/tty-table.gemspec +0 -30
@@ -1,68 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::ASCII, '#render' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:table) { TTY::Table.new header, rows }
9
-
10
- subject(:renderer) { described_class.new(table) }
11
-
12
- context 'only rows' do
13
- let(:table) { TTY::Table.new rows }
14
-
15
- it 'display table rows' do
16
- expect(renderer.render).to eq unindent(<<-EOS)
17
- +--+--+--+
18
- |a1|a2|a3|
19
- |b1|b2|b3|
20
- +--+--+--+
21
- EOS
22
- end
23
- end
24
-
25
- context 'with header' do
26
- it 'displays table with header' do
27
- expect(renderer.render).to eq unindent(<<-EOS)
28
- +--+--+--+
29
- |h1|h2|h3|
30
- +--+--+--+
31
- |a1|a2|a3|
32
- |b1|b2|b3|
33
- +--+--+--+
34
- EOS
35
- end
36
- end
37
-
38
- context 'with short header' do
39
- let(:header) { ['h1', 'h2'] }
40
- let(:rows) { [['aaa1', 'a2'], ['b1', 'bb1']] }
41
-
42
- it 'displays table according to widths' do
43
- expect(renderer.render).to eq unindent(<<-EOS)
44
- +----+---+
45
- |h1 |h2 |
46
- +----+---+
47
- |aaa1|a2 |
48
- |b1 |bb1|
49
- +----+---+
50
- EOS
51
- end
52
- end
53
-
54
- context 'with long header' do
55
- let(:header) { ['header1', 'header2', 'header3'] }
56
-
57
- it 'header greater than row sizes' do
58
- expect(renderer.render).to eq unindent(<<-EOS)
59
- +-------+-------+-------+
60
- |header1|header2|header3|
61
- +-------+-------+-------+
62
- |a1 |a2 |a3 |
63
- |b1 |b2 |b3 |
64
- +-------+-------+-------+
65
- EOS
66
- end
67
- end
68
- end
@@ -1,114 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::ASCII, 'resizing' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:table) { TTY::Table.new(header, rows) }
9
-
10
- subject(:renderer) { described_class.new(table, options) }
11
-
12
- context 'when expanding' do
13
- context 'even columns' do
14
- let(:options) { {width: 16, resize: true} }
15
-
16
- it 'resizes each column' do
17
- expect(renderer.render).to eql unindent(<<-EOS)
18
- +----+----+----+
19
- |h1 |h2 |h3 |
20
- +----+----+----+
21
- |a1 |a2 |a3 |
22
- |b1 |b2 |b3 |
23
- +----+----+----+
24
- EOS
25
- end
26
- end
27
-
28
- context 'even columns with extra width' do
29
- let(:header) { ['h1', 'h2', 'h3', 'h4'] }
30
- let(:rows) { [['a1','a2','a3','a4'], ['b1','b2','b3','b4']] }
31
- let(:options) { {width: 21, resize: true} }
32
-
33
- it 'resizes each column' do
34
- expect(renderer.render).to eql unindent(<<-EOS)
35
- +----+----+----+----+
36
- |h1 |h2 |h3 |h4 |
37
- +----+----+----+----+
38
- |a1 |a2 |a3 |a4 |
39
- |b1 |b2 |b3 |b4 |
40
- +----+----+----+----+
41
- EOS
42
- end
43
- end
44
-
45
- context 'uneven columns' do
46
- let(:header) { ['h1', 'h2', 'h3'] }
47
- let(:rows) { [['aaa1', 'aa2', 'aaaaaaa3'], ['b1', 'b2', 'b3']] }
48
- let(:options) { {width: 32, resize: true} }
49
-
50
- it 'resizes each column' do
51
- expect(renderer.render).to eql unindent(<<-EOS)
52
- +---------+-------+------------+
53
- |h1 |h2 |h3 |
54
- +---------+-------+------------+
55
- |aaa1 |aa2 |aaaaaaa3 |
56
- |b1 |b2 |b3 |
57
- +---------+-------+------------+
58
- EOS
59
- end
60
- end
61
- end
62
-
63
- context 'when shrinking' do
64
- let(:header) { ['head1', 'head2'] }
65
- let(:rows) { [['aaaa1','aaaa2',], ['bbbb1','bbbb2']] }
66
-
67
- context 'even columns' do
68
- let(:options) { {width: 9, resize: true} }
69
-
70
- it 'resizes each column' do
71
- expect(renderer.render).to eql unindent(<<-EOS)
72
- +---+---+
73
- |h… |h… |
74
- +---+---+
75
- |a… |a… |
76
- |b… |b… |
77
- +---+---+
78
- EOS
79
- end
80
- end
81
-
82
- context 'even columns with extra width' do
83
- let(:options) { {width: 10, resize: true} }
84
-
85
- it 'resizes each column' do
86
- expect(renderer.render).to eql unindent(<<-EOS)
87
- +----+---+
88
- |he… |h… |
89
- +----+---+
90
- |aa… |a… |
91
- |bb… |b… |
92
- +----+---+
93
- EOS
94
- end
95
- end
96
-
97
- context 'uneven columns' do
98
- let(:header) { ['head1', 'head2', 'head3'] }
99
- let(:rows) { [['aaa1', 'aa2', 'aaaaaaa3'], ['b1', 'b2', 'b3']] }
100
- let(:options) { {width: 15, resize: true} }
101
-
102
- it 'resizes each column' do
103
- expect(renderer.render).to eql unindent(<<-EOS)
104
- +---+---+-----+
105
- |h… |h… |head3|
106
- +---+---+-----+
107
- |a… |aa2|aaa… |
108
- |b1 |b2 |b3 |
109
- +---+---+-----+
110
- EOS
111
- end
112
- end
113
- end
114
- end
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::ASCII, 'with separator' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:table) { TTY::Table.new(header, rows) }
9
-
10
- let(:object) { described_class.new table }
11
-
12
- subject(:renderer) { object }
13
-
14
- context 'when ascii' do
15
- it "renders each row" do
16
- renderer.border.separator= :each_row
17
- expect(renderer.render).to eq unindent(<<-EOS)
18
- +--+--+--+
19
- |h1|h2|h3|
20
- +--+--+--+
21
- |a1|a2|a3|
22
- +--+--+--+
23
- |b1|b2|b3|
24
- +--+--+--+
25
- EOS
26
- end
27
- end
28
- end
@@ -1,88 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::Basic, 'alignment' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:options) { { alignments: alignments } }
9
- let(:table) { TTY::Table.new(header, rows) }
10
-
11
- subject(:renderer) { described_class.new table, options }
12
-
13
- context 'with default' do
14
- let(:header) { ['h1', 'h2'] }
15
- let(:rows) { [['aaaaa', 'a'], ['b', 'bbbbb']] }
16
- let(:alignments) { nil }
17
-
18
- it 'aligns left by default' do
19
- expect(renderer.render).to eql unindent(<<-EOS)
20
- h1 h2
21
- aaaaa a
22
- b bbbbb
23
- EOS
24
- end
25
- end
26
-
27
- context 'with different headers' do
28
- let(:header) { ['header1', 'head2', 'h3'] }
29
- let(:alignments) { [:left, :center, :right] }
30
-
31
- it 'aligns headers' do
32
- expect(renderer.render).to eql unindent(<<-EOS)
33
- header1 head2 h3
34
- a1 a2 a3
35
- b1 b2 b3
36
- EOS
37
- end
38
- end
39
-
40
- context 'with different aligns' do
41
- let(:header) { nil }
42
- let(:rows) { [['aaaaa', 'a'], ['b', 'bbbbb']] }
43
- let(:alignments) { [:left, :right] }
44
-
45
- it 'aligns table rows' do
46
- expect(renderer.render.to_s).to eql unindent(<<-EOS)
47
- aaaaa a
48
- b bbbbb
49
- EOS
50
- end
51
- end
52
-
53
- context 'with individual field aligns' do
54
- let(:header) { ['header1', 'header2', 'header3'] }
55
- let(:alignments) { [:left, :center, :right] }
56
- let(:options) { {alignments: alignments} }
57
- let(:table) {
58
- TTY::Table.new header: header do |t|
59
- t << ['a1', 'a2', 'a3']
60
- t << ['b1', {value: 'b2', alignment: :right}, 'b3']
61
- t << ['c1', 'c2', {value: 'c3', alignment: :center}]
62
- end
63
- }
64
-
65
- it "takes individual fields over global aligns" do
66
- expect(renderer.render).to eq unindent(<<-EOS)
67
- header1 header2 header3
68
- a1 a2 a3
69
- b1 b2 b3
70
- c1 c2 c3
71
- EOS
72
- end
73
- end
74
-
75
- context 'with aligned header' do
76
- let(:rows) { [['aaaaa1', 'a2', 'aaa3'], ['b1', 'bbbb2', 'bb3']] }
77
- let(:header) {['h1', {value: 'h2', alignment: :right}, {value: 'h3', alignment: :center}] }
78
- let(:options) { { renderer: :basic } }
79
-
80
- it "aligns headres" do
81
- expect(renderer.render).to eq unindent(<<-EOS)
82
- h1 h2 h3
83
- aaaaa1 a2 aaa3
84
- b1 bbbb2 bb3
85
- EOS
86
- end
87
- end
88
- end
@@ -1,61 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::Basic, 'coloring' do
6
- let(:clear) { "\e[0m" }
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 "doesn't color" 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 eql unindent(<<-EOS)
20
- header1 header2
21
- a1 a2
22
- b1 b2
23
- EOS
24
- end
25
- end
26
-
27
- context 'when content' do
28
- it "colors individual field" do
29
- header = [color.green('header1'), 'header2']
30
- table = TTY::Table.new header: header
31
- table << [color.green.on_blue('a1'), 'a2']
32
- table << ['b1', color.red.on_yellow('b2')]
33
- renderer = described_class.new(table)
34
-
35
- expect(renderer.render).to eq unindent(<<-EOS)
36
- #{color.green('header1')} header2
37
- #{color.green.on_blue('a1')} a2
38
- b1 #{color.red.on_yellow('b2')}
39
- EOS
40
- end
41
-
42
- it "colors multiline content" do
43
- header = [color.yellow("Multi\nHeader"), 'header2']
44
- table = TTY::Table.new header: header
45
- table << [color.green.on_blue("Multi\nLine\nContent"), 'a2']
46
- table << ['b1', color.red.on_yellow("Multi\nLine\nContent")]
47
- renderer = described_class.new(table, multiline: true)
48
-
49
- expect(renderer.render).to eq unindent(<<-EOS)
50
- #{color.yellow('Multi ')} header2
51
- #{color.yellow('Header')}
52
- #{color.green.on_blue('Multi ')} a2
53
- #{color.green.on_blue('Line ')}
54
- #{color.green.on_blue('Content')}
55
- b1 #{color.red.on_yellow("Multi ")}
56
- #{color.red.on_yellow("Line ")}
57
- #{color.red.on_yellow("Content")}
58
- EOS
59
- end
60
- end
61
- end
@@ -1,28 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::Basic, '#column_widths' do
6
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
7
- let(:renderer) { described_class.new(table) }
8
-
9
- subject { renderer.render }
10
-
11
- context 'with rows only' do
12
- let(:rows) { [['a1a', 'a2a2a2'], ['b1b1b', 'b2b2']] }
13
- let(:table) { TTY::Table.new rows }
14
-
15
- it 'calculates column widths' do
16
- expect(renderer.column_widths).to eq([5,6])
17
- end
18
- end
19
-
20
- context 'with header' do
21
- let(:header) { ['header1', 'head2', 'h3'] }
22
- let(:table) { TTY::Table.new header, rows }
23
-
24
- it 'calcualtes column widths with header' do
25
- expect(renderer.column_widths).to eq([7,5,2])
26
- end
27
- end
28
- end
@@ -1,53 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe TTY::Table::Renderer::Basic, 'filter' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:table) { TTY::Table.new(header, rows) }
9
-
10
- subject(:renderer) { described_class.new(table, {filter: filter}) }
11
-
12
- context 'with header' do
13
- context 'filtering only rows' do
14
- let(:filter) { Proc.new { |val, row, col|
15
- (col == 1 and row > 0) ? val.capitalize : val
16
- }
17
- }
18
-
19
- it 'filters only rows' do
20
- expect(renderer.render).to eq unindent(<<-EOS)
21
- h1 h2 h3
22
- a1 A2 a3
23
- b1 B2 b3
24
- EOS
25
- end
26
- end
27
-
28
- context 'filtering header and rows' do
29
- let(:filter) { Proc.new { |val, row, col| col == 1 ? val.capitalize : val }}
30
-
31
- it 'filters only rows' do
32
- expect(renderer.render).to eq unindent(<<-EOS)
33
- h1 H2 h3
34
- a1 A2 a3
35
- b1 B2 b3
36
- EOS
37
- end
38
- end
39
- end
40
-
41
- context 'without header' do
42
- let(:header) { nil }
43
-
44
- let(:filter) { Proc.new { |val, row, col| col == 1 ? val.capitalize : val } }
45
-
46
- it 'filters only rows' do
47
- expect(renderer.render).to eq unindent(<<-EOS)
48
- a1 A2 a3
49
- b1 B2 b3
50
- EOS
51
- end
52
- end
53
- end