tty 0.1.2 → 0.1.3

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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -3
  3. data/CHANGELOG.md +5 -0
  4. data/README.md +42 -306
  5. data/lib/tty/{text → shell}/distance.rb +5 -27
  6. data/lib/tty/shell/suggestion.rb +42 -22
  7. data/lib/tty/version.rb +1 -1
  8. data/lib/tty.rb +2 -42
  9. data/spec/tty/{text → shell}/distance/distance_spec.rb +4 -4
  10. data/spec/tty/shell/distance/initialize_spec.rb +14 -0
  11. data/tty.gemspec +4 -3
  12. metadata +37 -269
  13. data/benchmarks/table.rb +0 -40
  14. data/lib/tty/table/border/ascii.rb +0 -32
  15. data/lib/tty/table/border/null.rb +0 -37
  16. data/lib/tty/table/border/row_line.rb +0 -18
  17. data/lib/tty/table/border/unicode.rb +0 -32
  18. data/lib/tty/table/border.rb +0 -222
  19. data/lib/tty/table/border_dsl.rb +0 -251
  20. data/lib/tty/table/border_options.rb +0 -53
  21. data/lib/tty/table/column_set.rb +0 -121
  22. data/lib/tty/table/columns.rb +0 -170
  23. data/lib/tty/table/error.rb +0 -18
  24. data/lib/tty/table/field.rb +0 -139
  25. data/lib/tty/table/header.rb +0 -133
  26. data/lib/tty/table/indentation.rb +0 -52
  27. data/lib/tty/table/operation/alignment.rb +0 -107
  28. data/lib/tty/table/operation/alignment_set.rb +0 -77
  29. data/lib/tty/table/operation/escape.rb +0 -30
  30. data/lib/tty/table/operation/filter.rb +0 -34
  31. data/lib/tty/table/operation/padding.rb +0 -95
  32. data/lib/tty/table/operation/truncation.rb +0 -55
  33. data/lib/tty/table/operation/wrapped.rb +0 -58
  34. data/lib/tty/table/operations.rb +0 -69
  35. data/lib/tty/table/orientation/horizontal.rb +0 -48
  36. data/lib/tty/table/orientation/vertical.rb +0 -38
  37. data/lib/tty/table/orientation.rb +0 -57
  38. data/lib/tty/table/padder.rb +0 -180
  39. data/lib/tty/table/renderer/ascii.rb +0 -16
  40. data/lib/tty/table/renderer/basic.rb +0 -294
  41. data/lib/tty/table/renderer/color.rb +0 -12
  42. data/lib/tty/table/renderer/unicode.rb +0 -21
  43. data/lib/tty/table/renderer.rb +0 -101
  44. data/lib/tty/table/row.rb +0 -217
  45. data/lib/tty/table/transformation.rb +0 -39
  46. data/lib/tty/table/validatable.rb +0 -64
  47. data/lib/tty/table.rb +0 -476
  48. data/lib/tty/text/truncation.rb +0 -99
  49. data/lib/tty/text/wrapping.rb +0 -118
  50. data/lib/tty/text.rb +0 -98
  51. data/spec/tty/table/access_spec.rb +0 -86
  52. data/spec/tty/table/add_row_spec.rb +0 -28
  53. data/spec/tty/table/border/ascii/rendering_spec.rb +0 -90
  54. data/spec/tty/table/border/new_spec.rb +0 -27
  55. data/spec/tty/table/border/null/rendering_spec.rb +0 -130
  56. data/spec/tty/table/border/options/from_spec.rb +0 -38
  57. data/spec/tty/table/border/options/new_spec.rb +0 -14
  58. data/spec/tty/table/border/unicode/rendering_spec.rb +0 -63
  59. data/spec/tty/table/border_options/new_spec.rb +0 -20
  60. data/spec/tty/table/border_options/update_spec.rb +0 -18
  61. data/spec/tty/table/column_set/extract_widths_spec.rb +0 -15
  62. data/spec/tty/table/column_set/total_width_spec.rb +0 -15
  63. data/spec/tty/table/column_set/widths_from_spec.rb +0 -51
  64. data/spec/tty/table/columns/enforce_spec.rb +0 -68
  65. data/spec/tty/table/columns/widths_spec.rb +0 -35
  66. data/spec/tty/table/data_spec.rb +0 -14
  67. data/spec/tty/table/each_spec.rb +0 -41
  68. data/spec/tty/table/each_with_index_spec.rb +0 -57
  69. data/spec/tty/table/empty_spec.rb +0 -23
  70. data/spec/tty/table/eql_spec.rb +0 -34
  71. data/spec/tty/table/field/equality_spec.rb +0 -51
  72. data/spec/tty/table/field/length_spec.rb +0 -21
  73. data/spec/tty/table/field/lines_spec.rb +0 -21
  74. data/spec/tty/table/field/new_spec.rb +0 -29
  75. data/spec/tty/table/field/width_spec.rb +0 -23
  76. data/spec/tty/table/filter_spec.rb +0 -23
  77. data/spec/tty/table/header/call_spec.rb +0 -30
  78. data/spec/tty/table/header/height_spec.rb +0 -27
  79. data/spec/tty/table/header/new_spec.rb +0 -25
  80. data/spec/tty/table/header/set_spec.rb +0 -20
  81. data/spec/tty/table/header/to_ary_spec.rb +0 -14
  82. data/spec/tty/table/header_spec.rb +0 -13
  83. data/spec/tty/table/indentation/insert_indent_spec.rb +0 -27
  84. data/spec/tty/table/initialize_spec.rb +0 -88
  85. data/spec/tty/table/operation/alignment/format_spec.rb +0 -47
  86. data/spec/tty/table/operation/alignment/new_spec.rb +0 -31
  87. data/spec/tty/table/operation/alignment_set/call_spec.rb +0 -39
  88. data/spec/tty/table/operation/alignment_set/each_spec.rb +0 -17
  89. data/spec/tty/table/operation/alignment_set/new_spec.rb +0 -27
  90. data/spec/tty/table/operation/alignment_set/to_ary_spec.rb +0 -14
  91. data/spec/tty/table/operation/escape/call_spec.rb +0 -16
  92. data/spec/tty/table/operation/filter/call_spec.rb +0 -17
  93. data/spec/tty/table/operation/truncation/call_spec.rb +0 -32
  94. data/spec/tty/table/operation/truncation/truncate_spec.rb +0 -22
  95. data/spec/tty/table/operation/wrapped/call_spec.rb +0 -33
  96. data/spec/tty/table/operation/wrapped/wrap_spec.rb +0 -23
  97. data/spec/tty/table/operations/new_spec.rb +0 -30
  98. data/spec/tty/table/options_spec.rb +0 -25
  99. data/spec/tty/table/orientation_spec.rb +0 -145
  100. data/spec/tty/table/padder/parse_spec.rb +0 -45
  101. data/spec/tty/table/padder/to_s_spec.rb +0 -14
  102. data/spec/tty/table/padding_spec.rb +0 -120
  103. data/spec/tty/table/properties_spec.rb +0 -25
  104. data/spec/tty/table/render_spec.rb +0 -63
  105. data/spec/tty/table/render_with_spec.rb +0 -106
  106. data/spec/tty/table/renderer/ascii/indentation_spec.rb +0 -41
  107. data/spec/tty/table/renderer/ascii/padding_spec.rb +0 -61
  108. data/spec/tty/table/renderer/ascii/render_spec.rb +0 -68
  109. data/spec/tty/table/renderer/ascii/resizing_spec.rb +0 -114
  110. data/spec/tty/table/renderer/ascii/separator_spec.rb +0 -28
  111. data/spec/tty/table/renderer/basic/alignment_spec.rb +0 -88
  112. data/spec/tty/table/renderer/basic/coloring_spec.rb +0 -46
  113. data/spec/tty/table/renderer/basic/extract_column_widths_spec.rb +0 -28
  114. data/spec/tty/table/renderer/basic/filter_spec.rb +0 -53
  115. data/spec/tty/table/renderer/basic/indentation_spec.rb +0 -48
  116. data/spec/tty/table/renderer/basic/multiline_content_spec.rb +0 -135
  117. data/spec/tty/table/renderer/basic/new_spec.rb +0 -22
  118. data/spec/tty/table/renderer/basic/options_spec.rb +0 -48
  119. data/spec/tty/table/renderer/basic/padding_spec.rb +0 -52
  120. data/spec/tty/table/renderer/basic/render_spec.rb +0 -57
  121. data/spec/tty/table/renderer/basic/resizing_spec.rb +0 -96
  122. data/spec/tty/table/renderer/basic/separator_spec.rb +0 -43
  123. data/spec/tty/table/renderer/basic/truncation_spec.rb +0 -35
  124. data/spec/tty/table/renderer/basic/wrapping_spec.rb +0 -40
  125. data/spec/tty/table/renderer/basic_spec.rb +0 -0
  126. data/spec/tty/table/renderer/border_spec.rb +0 -104
  127. data/spec/tty/table/renderer/render_spec.rb +0 -36
  128. data/spec/tty/table/renderer/select_spec.rb +0 -22
  129. data/spec/tty/table/renderer/style_spec.rb +0 -72
  130. data/spec/tty/table/renderer/unicode/indentation_spec.rb +0 -41
  131. data/spec/tty/table/renderer/unicode/padding_spec.rb +0 -61
  132. data/spec/tty/table/renderer/unicode/render_spec.rb +0 -68
  133. data/spec/tty/table/renderer/unicode/separator_spec.rb +0 -26
  134. data/spec/tty/table/renderer_spec.rb +0 -19
  135. data/spec/tty/table/rotate_spec.rb +0 -86
  136. data/spec/tty/table/row/access_spec.rb +0 -25
  137. data/spec/tty/table/row/call_spec.rb +0 -41
  138. data/spec/tty/table/row/data_spec.rb +0 -26
  139. data/spec/tty/table/row/each_spec.rb +0 -31
  140. data/spec/tty/table/row/equality_spec.rb +0 -73
  141. data/spec/tty/table/row/height_spec.rb +0 -27
  142. data/spec/tty/table/row/new_spec.rb +0 -41
  143. data/spec/tty/table/row/to_ary_spec.rb +0 -14
  144. data/spec/tty/table/to_s_spec.rb +0 -63
  145. data/spec/tty/table/transformation/extract_tuples_spec.rb +0 -35
  146. data/spec/tty/table/validatable/validate_options_spec.rb +0 -33
  147. data/spec/tty/table/validatable_spec.rb +0 -32
  148. data/spec/tty/text/distance/initialize_spec.rb +0 -14
  149. data/spec/tty/text/distance_spec.rb +0 -11
  150. data/spec/tty/text/truncate_spec.rb +0 -12
  151. data/spec/tty/text/truncation/initialize_spec.rb +0 -29
  152. data/spec/tty/text/truncation/truncate_spec.rb +0 -94
  153. data/spec/tty/text/wrap_spec.rb +0 -13
  154. data/spec/tty/text/wrapping/initialize_spec.rb +0 -25
  155. data/spec/tty/text/wrapping/wrap_spec.rb +0 -97
@@ -1,14 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Header, '#to_ary' do
6
- let(:object) { described_class.new(attributes) }
7
- let(:attributes) { [:id, :name, :age] }
8
-
9
- subject { object.to_ary }
10
-
11
- it { is_expected.to be_instance_of(Array) }
12
-
13
- it { is_expected.to eq(attributes) }
14
- end
@@ -1,13 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table, '#header' do
6
- let(:header) { [:header1, :header2] }
7
- let(:rows) { [['a1', 'a2'], ['b1', 'b2']] }
8
- let(:object) { described_class }
9
-
10
- subject(:table) { object.new header, rows }
11
-
12
- it { expect(table.header).to be_instance_of(TTY::Table::Header) }
13
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Indentation, '#insert_indent' do
6
- let(:indent) { 2 }
7
- let(:renderer) { double(:renderer, indent: indent) }
8
- let(:object) { described_class.new(renderer) }
9
-
10
- subject { object.insert_indent(part) }
11
-
12
- context 'when enumerable' do
13
- let(:part) { ['line1'] }
14
-
15
- it 'inserts indentation for each element' do
16
- expect(subject[0]).to eql(' line1')
17
- end
18
- end
19
-
20
- context 'when string' do
21
- let(:part) { 'line1' }
22
-
23
- it 'inserts indentation' do
24
- expect(subject).to eql(' line1')
25
- end
26
- end
27
- end
@@ -1,88 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table, '#initialize' do
6
- let(:header) { ['Header1', 'Header2'] }
7
- let(:rows) { [['a1', 'a2'], ['b1', 'b2']] }
8
-
9
- it { is_expected.to be_kind_of(Enumerable) }
10
-
11
- it { is_expected.to be_kind_of(Comparable) }
12
-
13
- it { expect(Enumerable === subject).to eq(true) }
14
-
15
- context 'with rows only' do
16
- it 'initializes with rows as arguments' do
17
- table = TTY::Table[*rows]
18
- expect(table.to_a).to eql(rows)
19
- end
20
-
21
- it 'initializes with rows' do
22
- table = TTY::Table.new rows
23
- expect(table.to_a).to eql(rows)
24
- end
25
-
26
- it 'initializes table rows as an option' do
27
- table = TTY::Table.new rows: rows
28
- expect(table.to_a).to eq(rows)
29
- end
30
-
31
- it 'initializes table rows in a block with param' do
32
- table = TTY::Table.new do |t|
33
- t << rows[0]
34
- t << rows[1]
35
- end
36
- expect(table.to_a).to eq(rows)
37
- end
38
-
39
- it 'initializes table and adds rows' do
40
- table = TTY::Table.new
41
- table << rows[0]
42
- table << rows[1]
43
- expect(table.to_a).to eq(rows)
44
- end
45
-
46
- it 'chains rows' do
47
- table = TTY::Table.new
48
- table << rows[0] << rows[1]
49
- expect(table.to_a).to eq(rows)
50
- end
51
-
52
- context 'with data as hash' do
53
- let(:data) { [ {'Header1' => ['a1','a2'], 'Header2' => ['b1', 'b2'] }] }
54
-
55
- it 'extracts rows' do
56
- table = TTY::Table.new data
57
- expect(table.to_a).to include rows[0]
58
- expect(table.to_a).to include rows[1]
59
- end
60
-
61
- it 'extracts header' do
62
- table = TTY::Table.new data
63
- expect(table.header).to include header[0]
64
- expect(table.header).to include header[1]
65
- end
66
- end
67
- end
68
-
69
- context 'with header and rows' do
70
- it 'initializes header as an option' do
71
- table = TTY::Table.new header: header
72
- expect(table.header).to eql(header)
73
- end
74
-
75
- it 'initializes table rows as an argument' do
76
- table = TTY::Table.new header, rows
77
- expect(table.header).to eql(header)
78
- expect(table.rows).to eql(rows)
79
- end
80
- end
81
-
82
- context 'coercion' do
83
- it 'converts row arguments from hash to array' do
84
- table = TTY::Table.new rows: {a: 1, b: 2}
85
- expect(table.to_a).to include [:a, 1 ]
86
- end
87
- end
88
- end
@@ -1,47 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Alignment, '#new' do
6
- let(:object) { described_class.new alignment }
7
- let(:field) { "aaaa"}
8
- let(:space) { '' }
9
- let(:column_width) { 8 }
10
-
11
- subject { object.format field, column_width, space }
12
-
13
- shared_examples_for 'lower column width' do
14
- let(:column_width) { 2 }
15
-
16
- it { is_expected.to eql(field) }
17
- end
18
-
19
- context 'left aligend' do
20
- let(:alignment) { :left }
21
-
22
- it { is_expected.to eq(field + ' ') }
23
-
24
- it_should_behave_like 'lower column width'
25
- end
26
-
27
- context 'center aligned' do
28
- let(:alignment) { :center }
29
-
30
- it { is_expected.to eql(' ' + field + ' ') }
31
-
32
- it_should_behave_like 'lower column width'
33
- end
34
-
35
- context 'right aligned' do
36
- let(:alignment) { :right }
37
-
38
- it_should_behave_like 'lower column width'
39
- end
40
-
41
- context 'with space' do
42
- let(:alignment) { :center }
43
- let(:space) { ' '}
44
-
45
- it { is_expected.to eql(' ' + field + ' ') }
46
- end
47
- end
@@ -1,31 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Alignment, '#new' do
6
- let(:object) { described_class }
7
-
8
- subject { object.new(type) }
9
-
10
- context 'with no type' do
11
- let(:type) { nil }
12
-
13
- it { is_expected.to be_instance_of(object) }
14
-
15
- it { expect(subject.type).to eql(:left) }
16
- end
17
-
18
- context 'with unrecognized type' do
19
- let(:type) { :unknown }
20
-
21
- it 'raises exception' do
22
- expect { subject }.to raise_error(TTY::TypeError)
23
- end
24
- end
25
-
26
- context 'with coerced type' do
27
- let(:type) { 'center' }
28
-
29
- it { expect(subject.type).to eql(:center) }
30
- end
31
- end
@@ -1,39 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::AlignmentSet, '#call' do
6
- let(:object) { described_class.new alignments, widths }
7
- let(:value) { 'a1' }
8
- let(:field) { TTY::Table::Field.new(value)}
9
-
10
- subject { object.call(field, 0, 0) }
11
-
12
- context 'aligned with column widths and no alignments' do
13
- let(:alignments) { [] }
14
- let(:widths) { [4, 4] }
15
-
16
- it { is_expected.to eq("#{value} ") }
17
- end
18
-
19
- context 'aligned with column widths and alignments' do
20
- let(:alignments) { [:right, :left] }
21
- let(:widths) { [4, 4] }
22
-
23
- it { is_expected.to eq(" #{value}") }
24
- end
25
-
26
- context 'aligned with no column widths and no alignments' do
27
- let(:alignments) { [] }
28
- let(:widths) { [] }
29
-
30
- it { is_expected.to eq("#{value}") }
31
- end
32
-
33
- context 'aligned with no column widths and alignments' do
34
- let(:alignments) { [:right, :left] }
35
- let(:widths) { [] }
36
-
37
- it { is_expected.to eq("#{value}") }
38
- end
39
- end
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::AlignmentSet, '#each' do
6
- let(:alignments) { [:left, :center, :right] }
7
- let(:yields) { [] }
8
- let(:object) { described_class.new alignments }
9
-
10
- subject { object.each { |alignment| yields << alignment } }
11
-
12
- it 'yields each alignment' do
13
- expect { subject }.to change { yields.dup }.
14
- from([]).
15
- to(alignments)
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::AlignmentSet, '#new' do
6
- let(:object) { described_class }
7
-
8
- subject { object.new(argument) }
9
-
10
- context 'with no argument' do
11
- let(:argument) { [] }
12
-
13
- it { is_expected.to be_kind_of(Enumerable) }
14
-
15
- it { is_expected.to be_instance_of(object) }
16
-
17
- it { expect(subject.alignments).to eq([]) }
18
- end
19
-
20
- context 'with argument' do
21
- let(:argument) { [:center, :left] }
22
-
23
- it { is_expected.to be_instance_of(object) }
24
-
25
- it { expect(subject.alignments).to eq(argument) }
26
- end
27
- end
@@ -1,14 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::AlignmentSet, '#to_ary' do
6
- let(:argument) { [:center, :left] }
7
- let(:object) { described_class.new argument }
8
-
9
- subject { object.to_ary }
10
-
11
- it { is_expected.to be_instance_of(Array) }
12
-
13
- it { is_expected.to eq(argument) }
14
- end
@@ -1,16 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Escape, '#call' do
6
- let(:object) { described_class }
7
- let(:text) { "太丸\nゴシ\tック体\r" }
8
- let(:field) { TTY::Table::Field.new(text) }
9
-
10
- subject { object.new }
11
-
12
- it 'changes field value' do
13
- subject.call(field, 0, 0)
14
- expect(field.value).to eql("太丸\\nゴシ\\tック体\\r")
15
- end
16
- end
@@ -1,17 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Filter, '#call' do
6
- let(:object) { described_class }
7
- let(:field) { TTY::Table::Field.new('a1') }
8
- let(:filter) { Proc.new { |val, row, col| 'new' } }
9
- let(:value) { 'new' }
10
-
11
- subject { object.new(filter) }
12
-
13
- it 'changes field value' do
14
- subject.call(field, 0, 0)
15
- expect(field.value).to eql(value)
16
- end
17
- end
@@ -1,32 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Truncation, '#call' do
6
- let(:object) { described_class.new column_widths }
7
- let(:text) { '太丸ゴシック体' }
8
- let(:field) { TTY::Table::Field.new(text) }
9
-
10
- context 'without column width' do
11
- let(:column_widths) { [] }
12
-
13
- it "truncates string" do
14
- object.call(field, 0, 0)
15
- expect(field.value).to eql(text)
16
- end
17
- end
18
-
19
- context 'with column width ' do
20
- let(:column_widths) { [3, 6] }
21
-
22
- it "truncates string for 0 column" do
23
- object.call(field, 0, 0)
24
- expect(field.value).to eql('太丸…')
25
- end
26
-
27
- it "truncates string for 1 column" do
28
- object.call(field, 0, 1)
29
- expect(field.value).to eql('太丸ゴシッ…')
30
- end
31
- end
32
- end
@@ -1,22 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Truncation, '#truncate' do
6
- let(:instance) { described_class.new [] }
7
- let(:text) { '太丸ゴシック体' }
8
-
9
- subject { instance.truncate(text, width) }
10
-
11
- context 'without shortening' do
12
- let(:width) { 8 }
13
-
14
- it { is_expected.to eq(text) }
15
- end
16
-
17
- context 'with shortening' do
18
- let(:width) { 5 }
19
-
20
- it { is_expected.to eq('太丸ゴシ…') }
21
- end
22
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Wrapped, '#call' do
6
- let(:padding) { TTY::Table::Padder.parse }
7
- let(:object) { described_class.new(column_widths, padding) }
8
- let(:text) { 'ラドクリフ、マラソン五輪代表に1万m出場にも含み' }
9
- let(:field) { TTY::Table::Field.new(text) }
10
-
11
- context 'without column width' do
12
- let(:column_widths) { [] }
13
-
14
- it "doesn't wrap string" do
15
- object.call(field, 0, 0)
16
- expect(field.value).to eql(text)
17
- end
18
- end
19
-
20
- context 'with column width' do
21
- let(:column_widths) { [12, 14] }
22
-
23
- it "wraps string for 0 column" do
24
- object.call(field, 0, 0)
25
- expect(field.value).to eql("ラドクリフ、マラソン五輪\n代表に1万m出場にも含み")
26
- end
27
-
28
- it "wraps string for 1 column" do
29
- object.call(field, 0, 1)
30
- expect(field.value).to eql("ラドクリフ、マラソン五輪代表\nに1万m出場にも含み")
31
- end
32
- end
33
- end
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operation::Wrapped, '#wrap' do
6
- let(:padding) { TTY::Table::Padder.parse }
7
- let(:instance) { described_class.new([], padding) }
8
- let(:text) { 'ラドクリフ、マラソン五輪代表に1万m出場にも含み' }
9
-
10
- subject { instance.wrap(text, width) }
11
-
12
- context 'without wrapping' do
13
- let(:width) { 8 }
14
-
15
- it { is_expected.to eq("ラドクリフ、マラ\nソン五輪代表に1\n万m出場にも含み") }
16
- end
17
-
18
- context 'with wrapping' do
19
- let(:width) { 100 }
20
-
21
- it { is_expected.to eq(text) }
22
- end
23
- end
@@ -1,30 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table::Operations, '#new' do
6
- let(:object) { described_class }
7
- let(:row) { [1,2,3] }
8
- let(:table) { TTY::Table.new :rows => [row] }
9
- let(:callable) {
10
- Class.new do
11
- def call(val, row, col)
12
- val.value= val.value + 1
13
- end
14
- end
15
- }
16
- let(:instance) { callable.new }
17
-
18
- subject { object.new table }
19
-
20
- before { subject.add(:alignment, instance) }
21
-
22
- it 'stores away operations' do
23
- expect(subject.operations[:alignment]).to include(instance)
24
- end
25
-
26
- it 'runs selected operations' do
27
- subject.run_operations(:alignment)
28
- expect(table.data[0]).to eql([2,3,4])
29
- end
30
- end
@@ -1,25 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table, 'options' do
6
- let(:rows) { [['a1', 'a2'], ['b1', 'b2']] }
7
- let(:widths) { nil }
8
- let(:aligns) { [] }
9
- let(:object) { described_class }
10
- let(:options) {
11
- {
12
- column_widths: widths,
13
- column_aligns: aligns,
14
- renderer: :basic
15
- }
16
- }
17
-
18
- subject(:table) { object.new rows, options }
19
-
20
- it { expect(table.header).to be_nil }
21
-
22
- it { expect(table.rows).to eq(rows) }
23
-
24
- it { expect(table.orientation).to be_kind_of TTY::Table::Orientation::Horizontal }
25
- end
@@ -1,145 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe TTY::Table, 'orientation' do
6
- let(:header) { ['h1', 'h2', 'h3'] }
7
- let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
- let(:options) { { :orientation => orientation } }
9
-
10
- subject { described_class.new(header, rows, options) }
11
-
12
- context 'when illegal option' do
13
- let(:orientation) { :accross }
14
-
15
- it { expect { subject }.to raise_error(TTY::InvalidOrientationError) }
16
- end
17
-
18
- context 'when horizontal' do
19
- let(:orientation) { :horizontal }
20
-
21
- it { expect(subject.orientation).to be_kind_of TTY::Table::Orientation }
22
-
23
- it { expect(subject.orientation.name).to eql(:horizontal) }
24
-
25
- it { expect(subject.header).to eql(header) }
26
-
27
- it 'preserves original rows' do
28
- expect(subject.to_a).to eql(subject.data)
29
- end
30
-
31
- context 'without border' do
32
- it 'displays table' do
33
- expect(subject.to_s).to eq <<-EOS.normalize
34
- h1 h2 h3
35
- a1 a2 a3
36
- b1 b2 b3
37
- EOS
38
- end
39
- end
40
-
41
- context 'with border' do
42
- let(:renderer) { :ascii }
43
-
44
- it 'diplays table' do
45
- expect(subject.render(renderer)).to eq <<-EOS.normalize
46
- +--+--+--+
47
- |h1|h2|h3|
48
- +--+--+--+
49
- |a1|a2|a3|
50
- |b1|b2|b3|
51
- +--+--+--+
52
- EOS
53
- end
54
- end
55
- end
56
-
57
- context 'when vertical' do
58
- let(:orientation) { :vertical }
59
-
60
- it { expect(subject.orientation).to be_kind_of TTY::Table::Orientation }
61
-
62
- it { expect(subject.orientation.name).to eql :vertical }
63
-
64
- it { expect(subject.header).to be_empty }
65
-
66
- context 'with header' do
67
- it 'rotates original rows' do
68
- rotated_rows = [['h1','a1'],['h2','a2'],['h3','a3'], ['h1','b1'],['h2','b2'],['h3','b3']]
69
- expect(subject.to_a).to eql rotated_rows
70
- end
71
-
72
- context 'without border' do
73
- it 'displays table' do
74
- expect(subject.to_s).to eq <<-EOS.normalize
75
- h1 a1
76
- h2 a2
77
- h3 a3
78
- h1 b1
79
- h2 b2
80
- h3 b3
81
- EOS
82
- end
83
- end
84
-
85
- context 'with border' do
86
- let(:renderer) { :ascii }
87
-
88
- it 'diplays table' do
89
- expect(subject.render(renderer)).to eq <<-EOS.normalize
90
- +--+--+
91
- |h1|a1|
92
- |h2|a2|
93
- |h3|a3|
94
- |h1|b1|
95
- |h2|b2|
96
- |h3|b3|
97
- +--+--+
98
- EOS
99
- end
100
- end
101
- end
102
-
103
- context 'without header' do
104
- let(:header) { nil }
105
-
106
- it 'rotates original rows' do
107
- rotated_rows = [
108
- ['1','a1'],['2','a2'],['3','a3'],
109
- ['1','b1'],['2','b2'],['3','b3']
110
- ]
111
- expect(subject.to_a).to eql rotated_rows
112
- end
113
-
114
- context 'without border' do
115
- it 'displays table' do
116
- expect(subject.to_s).to eq <<-EOS.normalize
117
- 1 a1
118
- 2 a2
119
- 3 a3
120
- 1 b1
121
- 2 b2
122
- 3 b3
123
- EOS
124
- end
125
- end
126
-
127
- context 'with border' do
128
- let(:renderer) { :ascii }
129
-
130
- it 'diplays table' do
131
- expect(subject.render(renderer)).to eq <<-EOS.normalize
132
- +-+--+
133
- |1|a1|
134
- |2|a2|
135
- |3|a3|
136
- |1|b1|
137
- |2|b2|
138
- |3|b3|
139
- +-+--+
140
- EOS
141
- end
142
- end
143
- end
144
- end
145
- end # orientation