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
@@ -13,7 +13,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, '#render' do
13
13
  let(:table) { TTY::Table.new rows }
14
14
 
15
15
  it 'display table rows' do
16
- expect(renderer.render).to eq <<-EOS.normalize
16
+ expect(renderer.render).to eq unindent(<<-EOS)
17
17
  ┌──┬──┬──┐
18
18
  │a1│a2│a3│
19
19
  │b1│b2│b3│
@@ -24,7 +24,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, '#render' do
24
24
 
25
25
  context 'with header' do
26
26
  it 'displays table with header' do
27
- expect(renderer.render).to eq <<-EOS.normalize
27
+ expect(renderer.render).to eq unindent(<<-EOS)
28
28
  ┌──┬──┬──┐
29
29
  │h1│h2│h3│
30
30
  ├──┼──┼──┤
@@ -40,7 +40,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, '#render' do
40
40
  let(:rows) { [['aaa1', 'a2'], ['b1', 'bb1']] }
41
41
 
42
42
  it 'displays table according to widths' do
43
- expect(renderer.render).to eq <<-EOS.normalize
43
+ expect(renderer.render).to eq unindent(<<-EOS)
44
44
  ┌────┬───┐
45
45
  │h1 │h2 │
46
46
  ├────┼───┤
@@ -55,7 +55,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, '#render' do
55
55
  let(:header) { ['header1', 'header2', 'header3'] }
56
56
 
57
57
  it 'header greater than row sizes' do
58
- expect(renderer.render).to eq <<-EOS.normalize
58
+ expect(renderer.render).to eq unindent(<<-EOS)
59
59
  ┌───────┬───────┬───────┐
60
60
  │header1│header2│header3│
61
61
  ├───────┼───────┼───────┤
@@ -13,7 +13,7 @@ RSpec.describe TTY::Table::Renderer::Unicode, 'with separator' do
13
13
 
14
14
  it "renders each row" do
15
15
  renderer.border.separator= :each_row
16
- expect(renderer.render).to eq <<-EOS.normalize
16
+ expect(renderer.render).to eq unindent(<<-EOS)
17
17
  ┌──┬──┬──┐
18
18
  │h1│h2│h3│
19
19
  ├──┼──┼──┤
@@ -5,15 +5,12 @@ require 'spec_helper'
5
5
  RSpec.describe TTY::Table, '#to_s' do
6
6
  let(:header) { ['h1', 'h2', 'h3'] }
7
7
  let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:renderer) { :basic }
9
8
 
10
9
  subject(:table) { described_class.new(header, rows) }
11
10
 
12
11
  context 'without renderer' do
13
- let(:renderer) { nil }
14
-
15
12
  it 'displayes basic table' do
16
- expect(table.to_s).to eq <<-EOS.normalize
13
+ expect(table.render(:basic)).to eq unindent(<<-EOS)
17
14
  h1 h2 h3
18
15
  a1 a2 a3
19
16
  b1 b2 b3
@@ -23,7 +20,7 @@ RSpec.describe TTY::Table, '#to_s' do
23
20
 
24
21
  context 'without border' do
25
22
  it 'displays table' do
26
- expect(table.to_s).to eq <<-EOS.normalize
23
+ expect(table.to_s).to eq unindent(<<-EOS)
27
24
  h1 h2 h3
28
25
  a1 a2 a3
29
26
  b1 b2 b3
@@ -32,10 +29,8 @@ RSpec.describe TTY::Table, '#to_s' do
32
29
  end
33
30
 
34
31
  context 'with ascii border' do
35
- let(:renderer) { :ascii }
36
-
37
32
  it 'displays table' do
38
- expect(table.render(renderer)).to eq <<-EOS.normalize
33
+ expect(table.render(:ascii)).to eq unindent(<<-EOS)
39
34
  +--+--+--+
40
35
  |h1|h2|h3|
41
36
  +--+--+--+
@@ -47,10 +42,8 @@ RSpec.describe TTY::Table, '#to_s' do
47
42
  end
48
43
 
49
44
  context 'with unicode border' do
50
- let(:renderer) { :unicode}
51
-
52
45
  it 'displays table' do
53
- expect(table.render(renderer)).to eq <<-EOS.normalize
46
+ expect(table.render(:unicode)).to eq unindent(<<-EOS)
54
47
  ┌──┬──┬──┐
55
48
  │h1│h2│h3│
56
49
  ├──┼──┼──┤
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe TTY::Table, 'unicode support' do
6
+ it "measures utf characters correctly for :basic" do
7
+ table = TTY::Table[['こんにちは', 'a2'], ['b1','選択']]
8
+ expect(table.render(:basic)).to eq unindent(<<-EOS)
9
+ こんにちは a2
10
+ b1 選択
11
+ EOS
12
+ end
13
+
14
+ it "measure utf characters correctly for :ascii" do
15
+ table = TTY::Table[['こんにちは', 'a2'], ['b1','選択']]
16
+ expect(table.render(:ascii)).to eq unindent(<<-EOS)
17
+ +----------+----+
18
+ |こんにちは|a2 |
19
+ |b1 |選択|
20
+ +----------+----+
21
+ EOS
22
+ end
23
+
24
+ it "measure utf characters correctly for :unicode" do
25
+ table = TTY::Table[['こんにちは', 'a2'], ['b1','選択']]
26
+ expect(table.render(:unicode)).to eq unindent(<<-EOS)
27
+ ┌──────────┬────┐
28
+ │こんにちは│a2 │
29
+ │b1 │選択│
30
+ └──────────┴────┘
31
+ EOS
32
+ end
33
+ end
data/tty-table.gemspec CHANGED
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency 'necromancer', '~> 0.3'
23
23
  spec.add_dependency 'pastel', '~> 0.4'
24
24
  spec.add_dependency 'tty-screen', '~> 0.1'
25
- spec.add_dependency 'verse', '~> 0.1'
25
+ spec.add_dependency 'verse', '~> 0.4'
26
+ spec.add_dependency 'unicode_utils','~> 1.4.0'
26
27
 
27
28
  spec.add_development_dependency 'bundler', '~> 1.5'
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty-table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-08 00:00:00.000000000 Z
11
+ date: 2015-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: equatable
@@ -72,14 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0.1'
75
+ version: '0.4'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '0.1'
82
+ version: '0.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: unicode_utils
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.4.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 1.4.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -105,6 +119,7 @@ files:
105
119
  - .rspec
106
120
  - .ruby-version
107
121
  - .travis.yml
122
+ - CHANGELOG.md
108
123
  - Gemfile
109
124
  - LICENSE.txt
110
125
  - README.md
@@ -112,6 +127,7 @@ files:
112
127
  - benchmarks/speed.rb
113
128
  - lib/tty-table.rb
114
129
  - lib/tty/table.rb
130
+ - lib/tty/table/alignment_set.rb
115
131
  - lib/tty/table/border.rb
116
132
  - lib/tty/table/border/ascii.rb
117
133
  - lib/tty/table/border/null.rb
@@ -119,14 +135,14 @@ files:
119
135
  - lib/tty/table/border/unicode.rb
120
136
  - lib/tty/table/border_dsl.rb
121
137
  - lib/tty/table/border_options.rb
138
+ - lib/tty/table/column_constraint.rb
122
139
  - lib/tty/table/column_set.rb
123
- - lib/tty/table/columns.rb
124
140
  - lib/tty/table/empty.rb
125
141
  - lib/tty/table/error.rb
126
142
  - lib/tty/table/field.rb
127
143
  - lib/tty/table/header.rb
128
144
  - lib/tty/table/indentation.rb
129
- - lib/tty/table/operation/alignment_set.rb
145
+ - lib/tty/table/operation/alignment.rb
130
146
  - lib/tty/table/operation/escape.rb
131
147
  - lib/tty/table/operation/filter.rb
132
148
  - lib/tty/table/operation/padding.rb
@@ -137,11 +153,9 @@ files:
137
153
  - lib/tty/table/orientation.rb
138
154
  - lib/tty/table/orientation/horizontal.rb
139
155
  - lib/tty/table/orientation/vertical.rb
140
- - lib/tty/table/padder.rb
141
156
  - lib/tty/table/renderer.rb
142
157
  - lib/tty/table/renderer/ascii.rb
143
158
  - lib/tty/table/renderer/basic.rb
144
- - lib/tty/table/renderer/color.rb
145
159
  - lib/tty/table/renderer/unicode.rb
146
160
  - lib/tty/table/row.rb
147
161
  - lib/tty/table/transformation.rb
@@ -150,6 +164,10 @@ files:
150
164
  - spec/spec_helper.rb
151
165
  - spec/unit/access_spec.rb
152
166
  - spec/unit/add_row_spec.rb
167
+ - spec/unit/alignment_set/each_spec.rb
168
+ - spec/unit/alignment_set/new_spec.rb
169
+ - spec/unit/alignment_set/to_ary_spec.rb
170
+ - spec/unit/alignment_spec.rb
153
171
  - spec/unit/border/ascii/rendering_spec.rb
154
172
  - spec/unit/border/new_spec.rb
155
173
  - spec/unit/border/null/rendering_spec.rb
@@ -158,11 +176,11 @@ files:
158
176
  - spec/unit/border/unicode/rendering_spec.rb
159
177
  - spec/unit/border_options/new_spec.rb
160
178
  - spec/unit/border_options/update_spec.rb
179
+ - spec/unit/column_constraint/enforce_spec.rb
180
+ - spec/unit/column_constraint/widths_spec.rb
161
181
  - spec/unit/column_set/extract_widths_spec.rb
162
182
  - spec/unit/column_set/total_width_spec.rb
163
183
  - spec/unit/column_set/widths_from_spec.rb
164
- - spec/unit/columns/enforce_spec.rb
165
- - spec/unit/columns/widths_spec.rb
166
184
  - spec/unit/data_spec.rb
167
185
  - spec/unit/each_spec.rb
168
186
  - spec/unit/each_with_index_spec.rb
@@ -182,12 +200,9 @@ files:
182
200
  - spec/unit/header/set_spec.rb
183
201
  - spec/unit/header/to_ary_spec.rb
184
202
  - spec/unit/header_spec.rb
185
- - spec/unit/indentation/insert_indent_spec.rb
186
- - spec/unit/initialize_spec.rb
187
- - spec/unit/operation/alignment_set/call_spec.rb
188
- - spec/unit/operation/alignment_set/each_spec.rb
189
- - spec/unit/operation/alignment_set/new_spec.rb
190
- - spec/unit/operation/alignment_set/to_ary_spec.rb
203
+ - spec/unit/indentation/indent_spec.rb
204
+ - spec/unit/new_spec.rb
205
+ - spec/unit/operation/alignment/call_spec.rb
191
206
  - spec/unit/operation/escape/call_spec.rb
192
207
  - spec/unit/operation/filter/call_spec.rb
193
208
  - spec/unit/operation/truncation/call_spec.rb
@@ -196,13 +211,14 @@ files:
196
211
  - spec/unit/options/access_spec.rb
197
212
  - spec/unit/options_spec.rb
198
213
  - spec/unit/orientation_spec.rb
199
- - spec/unit/padder/parse_spec.rb
200
- - spec/unit/padder/to_s_spec.rb
201
214
  - spec/unit/padding_spec.rb
202
215
  - spec/unit/properties_spec.rb
216
+ - spec/unit/render_repeat_spec.rb
203
217
  - spec/unit/render_spec.rb
204
218
  - spec/unit/render_with_spec.rb
219
+ - spec/unit/renderer/ascii/coloring_spec.rb
205
220
  - spec/unit/renderer/ascii/indentation_spec.rb
221
+ - spec/unit/renderer/ascii/multiline_spec.rb
206
222
  - spec/unit/renderer/ascii/padding_spec.rb
207
223
  - spec/unit/renderer/ascii/render_spec.rb
208
224
  - spec/unit/renderer/ascii/resizing_spec.rb
@@ -212,7 +228,7 @@ files:
212
228
  - spec/unit/renderer/basic/extract_column_widths_spec.rb
213
229
  - spec/unit/renderer/basic/filter_spec.rb
214
230
  - spec/unit/renderer/basic/indentation_spec.rb
215
- - spec/unit/renderer/basic/multiline_content_spec.rb
231
+ - spec/unit/renderer/basic/multiline_spec.rb
216
232
  - spec/unit/renderer/basic/new_spec.rb
217
233
  - spec/unit/renderer/basic/options_spec.rb
218
234
  - spec/unit/renderer/basic/padding_spec.rb
@@ -224,7 +240,7 @@ files:
224
240
  - spec/unit/renderer/border_spec.rb
225
241
  - spec/unit/renderer/render_spec.rb
226
242
  - spec/unit/renderer/select_spec.rb
227
- - spec/unit/renderer/style_spec.rb
243
+ - spec/unit/renderer/unicode/coloring_spec.rb
228
244
  - spec/unit/renderer/unicode/indentation_spec.rb
229
245
  - spec/unit/renderer/unicode/padding_spec.rb
230
246
  - spec/unit/renderer/unicode/render_spec.rb
@@ -241,6 +257,7 @@ files:
241
257
  - spec/unit/row/to_ary_spec.rb
242
258
  - spec/unit/to_s_spec.rb
243
259
  - spec/unit/transformation/extract_tuples_spec.rb
260
+ - spec/unit/utf_spec.rb
244
261
  - spec/unit/validatable/validate_options_spec.rb
245
262
  - spec/unit/validatable_spec.rb
246
263
  - tasks/console.rake
@@ -275,6 +292,10 @@ test_files:
275
292
  - spec/spec_helper.rb
276
293
  - spec/unit/access_spec.rb
277
294
  - spec/unit/add_row_spec.rb
295
+ - spec/unit/alignment_set/each_spec.rb
296
+ - spec/unit/alignment_set/new_spec.rb
297
+ - spec/unit/alignment_set/to_ary_spec.rb
298
+ - spec/unit/alignment_spec.rb
278
299
  - spec/unit/border/ascii/rendering_spec.rb
279
300
  - spec/unit/border/new_spec.rb
280
301
  - spec/unit/border/null/rendering_spec.rb
@@ -283,11 +304,11 @@ test_files:
283
304
  - spec/unit/border/unicode/rendering_spec.rb
284
305
  - spec/unit/border_options/new_spec.rb
285
306
  - spec/unit/border_options/update_spec.rb
307
+ - spec/unit/column_constraint/enforce_spec.rb
308
+ - spec/unit/column_constraint/widths_spec.rb
286
309
  - spec/unit/column_set/extract_widths_spec.rb
287
310
  - spec/unit/column_set/total_width_spec.rb
288
311
  - spec/unit/column_set/widths_from_spec.rb
289
- - spec/unit/columns/enforce_spec.rb
290
- - spec/unit/columns/widths_spec.rb
291
312
  - spec/unit/data_spec.rb
292
313
  - spec/unit/each_spec.rb
293
314
  - spec/unit/each_with_index_spec.rb
@@ -307,12 +328,9 @@ test_files:
307
328
  - spec/unit/header/set_spec.rb
308
329
  - spec/unit/header/to_ary_spec.rb
309
330
  - spec/unit/header_spec.rb
310
- - spec/unit/indentation/insert_indent_spec.rb
311
- - spec/unit/initialize_spec.rb
312
- - spec/unit/operation/alignment_set/call_spec.rb
313
- - spec/unit/operation/alignment_set/each_spec.rb
314
- - spec/unit/operation/alignment_set/new_spec.rb
315
- - spec/unit/operation/alignment_set/to_ary_spec.rb
331
+ - spec/unit/indentation/indent_spec.rb
332
+ - spec/unit/new_spec.rb
333
+ - spec/unit/operation/alignment/call_spec.rb
316
334
  - spec/unit/operation/escape/call_spec.rb
317
335
  - spec/unit/operation/filter/call_spec.rb
318
336
  - spec/unit/operation/truncation/call_spec.rb
@@ -321,13 +339,14 @@ test_files:
321
339
  - spec/unit/options/access_spec.rb
322
340
  - spec/unit/options_spec.rb
323
341
  - spec/unit/orientation_spec.rb
324
- - spec/unit/padder/parse_spec.rb
325
- - spec/unit/padder/to_s_spec.rb
326
342
  - spec/unit/padding_spec.rb
327
343
  - spec/unit/properties_spec.rb
344
+ - spec/unit/render_repeat_spec.rb
328
345
  - spec/unit/render_spec.rb
329
346
  - spec/unit/render_with_spec.rb
347
+ - spec/unit/renderer/ascii/coloring_spec.rb
330
348
  - spec/unit/renderer/ascii/indentation_spec.rb
349
+ - spec/unit/renderer/ascii/multiline_spec.rb
331
350
  - spec/unit/renderer/ascii/padding_spec.rb
332
351
  - spec/unit/renderer/ascii/render_spec.rb
333
352
  - spec/unit/renderer/ascii/resizing_spec.rb
@@ -337,7 +356,7 @@ test_files:
337
356
  - spec/unit/renderer/basic/extract_column_widths_spec.rb
338
357
  - spec/unit/renderer/basic/filter_spec.rb
339
358
  - spec/unit/renderer/basic/indentation_spec.rb
340
- - spec/unit/renderer/basic/multiline_content_spec.rb
359
+ - spec/unit/renderer/basic/multiline_spec.rb
341
360
  - spec/unit/renderer/basic/new_spec.rb
342
361
  - spec/unit/renderer/basic/options_spec.rb
343
362
  - spec/unit/renderer/basic/padding_spec.rb
@@ -349,7 +368,7 @@ test_files:
349
368
  - spec/unit/renderer/border_spec.rb
350
369
  - spec/unit/renderer/render_spec.rb
351
370
  - spec/unit/renderer/select_spec.rb
352
- - spec/unit/renderer/style_spec.rb
371
+ - spec/unit/renderer/unicode/coloring_spec.rb
353
372
  - spec/unit/renderer/unicode/indentation_spec.rb
354
373
  - spec/unit/renderer/unicode/padding_spec.rb
355
374
  - spec/unit/renderer/unicode/render_spec.rb
@@ -366,6 +385,7 @@ test_files:
366
385
  - spec/unit/row/to_ary_spec.rb
367
386
  - spec/unit/to_s_spec.rb
368
387
  - spec/unit/transformation/extract_tuples_spec.rb
388
+ - spec/unit/utf_spec.rb
369
389
  - spec/unit/validatable/validate_options_spec.rb
370
390
  - spec/unit/validatable_spec.rb
371
391
  has_rdoc:
@@ -1,103 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module TTY
4
- class Table
5
- module Operation
6
- # A class which responsiblity is to align table rows and header.
7
- class AlignmentSet
8
- include Enumerable
9
- # Initialize an AlignmentSet
10
- #
11
- # @api private
12
- def initialize(aligns, widths = nil)
13
- @converter = Necromancer.new
14
- @elements = @converter.convert(aligns).to(:array)
15
- @widths = widths
16
- end
17
-
18
- # Iterate over each element in the alignment set
19
- #
20
- # @example
21
- # alignment = AlignmentSet.new [1,2,3]
22
- # alignment.each { |element| ... }
23
- #
24
- # @return [self]
25
- #
26
- # @api public
27
- def each
28
- return to_enum unless block_given?
29
- to_ary.each { |element| yield element }
30
- self
31
- end
32
-
33
- # Lookup an alignment by index
34
- #
35
- # @param [Integer]
36
- #
37
- # @return [Symbol] alignment
38
- #
39
- # @api public
40
- def [](index)
41
- elements.fetch(index, :left)
42
- end
43
-
44
- # Return each alignment in an Array
45
- #
46
- # @return [Array]
47
- #
48
- # @api private
49
- def alignments
50
- map { |alignment| alignment }
51
- end
52
-
53
- # Evaluate alignment of the provided row
54
- #
55
- # @param [Array] row
56
- # the table row
57
- # @param [Hash] options
58
- # the table options
59
- #
60
- # @return [TTY::Table::Field]
61
- #
62
- # @api public
63
- def call(field, row, col)
64
- align_field(field, col)
65
- end
66
-
67
- # Convert to array
68
- #
69
- # @return [Array]
70
- #
71
- # @api public
72
- def to_ary
73
- @elements
74
- end
75
-
76
- protected
77
-
78
- attr_reader :widths
79
-
80
- attr_reader :elements
81
-
82
- # Align each field in a row
83
- #
84
- # @param [TTY::Table::Field] field
85
- # the table field
86
- #
87
- # @param [Integer] col
88
- # the table column index
89
- #
90
- # @param [Hash] options
91
- #
92
- # @return [TTY::Table::Field]
93
- #
94
- # @api private
95
- def align_field(field, col)
96
- column_width = widths[col]
97
- direction = field.align || self[col]
98
- field.value = Verse.align(field.to_s, column_width, direction)
99
- end
100
- end # AlignmentSet
101
- end # Operation
102
- end # Table
103
- end # TTY