tty 0.0.4 → 0.0.5

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 (35) hide show
  1. data/.travis.yml +1 -1
  2. data/README.md +19 -7
  3. data/lib/tty.rb +10 -0
  4. data/lib/tty/support/equatable.rb +1 -0
  5. data/lib/tty/support/unicode.rb +36 -0
  6. data/lib/tty/table.rb +3 -3
  7. data/lib/tty/table/border.rb +104 -0
  8. data/lib/tty/table/border/ascii.rb +41 -0
  9. data/lib/tty/table/border/null.rb +49 -0
  10. data/lib/tty/table/border/unicode.rb +41 -0
  11. data/lib/tty/table/column_set.rb +77 -0
  12. data/lib/tty/table/operation/alignment.rb +2 -0
  13. data/lib/tty/table/operation/alignment_set.rb +4 -58
  14. data/lib/tty/table/operation/truncation.rb +15 -19
  15. data/lib/tty/table/operation/wrapped.rb +34 -0
  16. data/lib/tty/table/renderer.rb +8 -11
  17. data/lib/tty/table/renderer/ascii.rb +15 -0
  18. data/lib/tty/table/renderer/basic.rb +21 -34
  19. data/lib/tty/table/renderer/unicode.rb +2 -2
  20. data/lib/tty/vector.rb +117 -0
  21. data/lib/tty/version.rb +1 -1
  22. data/spec/tty/table/border/ascii/rendering_spec.rb +49 -0
  23. data/spec/tty/table/border/new_spec.rb +21 -0
  24. data/spec/tty/table/border/null/rendering_spec.rb +49 -0
  25. data/spec/tty/table/border/unicode/rendering_spec.rb +49 -0
  26. data/spec/tty/table/column_set/extract_widths_spec.rb +26 -0
  27. data/spec/tty/table/operation/alignment_set/align_rows_spec.rb +4 -4
  28. data/spec/tty/table/operation/alignment_set/new_spec.rb +1 -1
  29. data/spec/tty/table/operation/wrapped/wrap_spec.rb +22 -0
  30. data/spec/tty/table/properties_spec.rb +3 -0
  31. data/spec/tty/table/renderer/basic/render_spec.rb +144 -33
  32. data/spec/tty/table/renderer/pick_renderer_spec.rb +25 -0
  33. data/spec/tty/table/to_s_spec.rb +51 -0
  34. data/spec/tty/vector/new_spec.rb +47 -0
  35. metadata +35 -8
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'spec_helper'
4
+
5
+ describe TTY::Table::Renderer, '#pick_renderer' do
6
+ let(:klass) { ::Class.new }
7
+ let(:instance) { klass.new }
8
+
9
+ subject { instance.pick_renderer renderer}
10
+
11
+ before { klass.send :include, described_class }
12
+
13
+ context 'with basic' do
14
+ let(:renderer) { :basic }
15
+
16
+ it { should be_instance_of(TTY::Table::Renderer::Basic) }
17
+ end
18
+
19
+ context 'with unicode' do
20
+ let(:renderer) { :unicode }
21
+
22
+ it { should be_instance_of(TTY::Table::Renderer::Unicode) }
23
+ end
24
+
25
+ end
@@ -0,0 +1,51 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'spec_helper'
4
+
5
+ describe TTY::Table, '#to_s' do
6
+ let(:header) { ['h1', 'h2', 'h3'] }
7
+ let(:rows) { [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']] }
8
+ let(:renderer) { :basic }
9
+
10
+ subject { described_class.new header, rows, :renderer => renderer }
11
+
12
+ context 'without border' do
13
+ it 'displays table' do
14
+ subject.to_s.should == <<-EOS.normalize
15
+ h1 h2 h3
16
+ a1 a2 a3
17
+ b1 b2 b3
18
+ EOS
19
+ end
20
+ end
21
+
22
+ context 'with ascii border' do
23
+ let(:renderer) { :ascii }
24
+
25
+ it 'displays table' do
26
+ subject.to_s.should == <<-EOS.normalize
27
+ +--+--+--+
28
+ |h1|h2|h3|
29
+ +--+--+--+
30
+ |a1|a2|a3|
31
+ |b1|b2|b3|
32
+ +--+--+--+
33
+ EOS
34
+ end
35
+ end
36
+
37
+ context 'with unicode border' do
38
+ let(:renderer) { :unicode}
39
+
40
+ it 'displays table' do
41
+ subject.to_s.should == <<-EOS.normalize
42
+ ┌──┬──┬──┐
43
+ │h1│h2│h3│
44
+ ├──┼──┼──┤
45
+ │a1│a2│a3│
46
+ │b1│b2│b3│
47
+ └──┴──┴──┘
48
+ EOS
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,47 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require 'spec_helper'
4
+
5
+ describe TTY::Vector, '#new' do
6
+ let(:object) { described_class }
7
+
8
+ subject { object.new(argument) }
9
+
10
+ context 'with no arguments' do
11
+ subject { object.new }
12
+
13
+ it 'sets elements to empty array' do
14
+ subject.to_a.should == []
15
+ end
16
+ end
17
+
18
+ context 'with nil argument' do
19
+ let(:argument) { nil }
20
+
21
+ it 'throws type error' do
22
+ expect { subject }.to raise_error(TTY::TypeError)
23
+ end
24
+ end
25
+
26
+ context 'with an argument that is a hash' do
27
+ let(:argument) { {:value => 'Piotr'} }
28
+
29
+ it 'sets elements' do
30
+ subject.to_a.should == [[:value, 'Piotr']]
31
+ end
32
+ end
33
+
34
+ context 'with an argument that respond to #to_ary' do
35
+ let(:argument) {
36
+ Class.new do
37
+ def to_ary
38
+ ['Piotr']
39
+ end
40
+ end.new
41
+ }
42
+
43
+ it 'sets elements' do
44
+ subject.to_a.should == ['Piotr']
45
+ end
46
+ end
47
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-18 00:00:00.000000000 Z
12
+ date: 2012-12-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2152566920 !ruby/object:Gem::Requirement
16
+ requirement: &2152426380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2152566920
24
+ version_requirements: *2152426380
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &2152566320 !ruby/object:Gem::Requirement
27
+ requirement: &2152425900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2152566320
35
+ version_requirements: *2152425900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: yard
38
- requirement: &2152565580 !ruby/object:Gem::Requirement
38
+ requirement: &2152425460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2152565580
46
+ version_requirements: *2152425460
47
47
  description: Toolbox for developing CLI clients
48
48
  email:
49
49
  - ''
@@ -66,19 +66,28 @@ files:
66
66
  - lib/tty/support/conversion.rb
67
67
  - lib/tty/support/delegatable.rb
68
68
  - lib/tty/support/equatable.rb
69
+ - lib/tty/support/unicode.rb
69
70
  - lib/tty/support/utils.rb
70
71
  - lib/tty/system.rb
71
72
  - lib/tty/table.rb
73
+ - lib/tty/table/border.rb
74
+ - lib/tty/table/border/ascii.rb
75
+ - lib/tty/table/border/null.rb
76
+ - lib/tty/table/border/unicode.rb
77
+ - lib/tty/table/column_set.rb
72
78
  - lib/tty/table/error.rb
73
79
  - lib/tty/table/operation/alignment.rb
74
80
  - lib/tty/table/operation/alignment_set.rb
75
81
  - lib/tty/table/operation/truncation.rb
82
+ - lib/tty/table/operation/wrapped.rb
76
83
  - lib/tty/table/renderer.rb
84
+ - lib/tty/table/renderer/ascii.rb
77
85
  - lib/tty/table/renderer/basic.rb
78
86
  - lib/tty/table/renderer/color.rb
79
87
  - lib/tty/table/renderer/unicode.rb
80
88
  - lib/tty/table/validatable.rb
81
89
  - lib/tty/terminal.rb
90
+ - lib/tty/vector.rb
82
91
  - lib/tty/version.rb
83
92
  - spec/spec_helper.rb
84
93
  - spec/tty/color_spec.rb
@@ -89,6 +98,11 @@ files:
89
98
  - spec/tty/support/fixtures/classes.rb
90
99
  - spec/tty/system/platform_spec.rb
91
100
  - spec/tty/table/access_spec.rb
101
+ - spec/tty/table/border/ascii/rendering_spec.rb
102
+ - spec/tty/table/border/new_spec.rb
103
+ - spec/tty/table/border/null/rendering_spec.rb
104
+ - spec/tty/table/border/unicode/rendering_spec.rb
105
+ - spec/tty/table/column_set/extract_widths_spec.rb
92
106
  - spec/tty/table/each_spec.rb
93
107
  - spec/tty/table/empty_spec.rb
94
108
  - spec/tty/table/eql_spec.rb
@@ -100,6 +114,7 @@ files:
100
114
  - spec/tty/table/operation/alignment_set/new_spec.rb
101
115
  - spec/tty/table/operation/alignment_set/to_ary_spec.rb
102
116
  - spec/tty/table/operation/truncation/truncate_spec.rb
117
+ - spec/tty/table/operation/wrapped/wrap_spec.rb
103
118
  - spec/tty/table/options_spec.rb
104
119
  - spec/tty/table/properties_spec.rb
105
120
  - spec/tty/table/renderer/basic/alignment_spec.rb
@@ -107,9 +122,12 @@ files:
107
122
  - spec/tty/table/renderer/basic/new_spec.rb
108
123
  - spec/tty/table/renderer/basic/render_spec.rb
109
124
  - spec/tty/table/renderer/basic_spec.rb
125
+ - spec/tty/table/renderer/pick_renderer_spec.rb
110
126
  - spec/tty/table/renderer_spec.rb
127
+ - spec/tty/table/to_s_spec.rb
111
128
  - spec/tty/table/validatable_spec.rb
112
129
  - spec/tty/terminal/size_spec.rb
130
+ - spec/tty/vector/new_spec.rb
113
131
  - tasks/metrics/cane.rake
114
132
  - tasks/metrics/flog.rake
115
133
  - tasks/metrics/reek.rake
@@ -148,6 +166,11 @@ test_files:
148
166
  - spec/tty/support/fixtures/classes.rb
149
167
  - spec/tty/system/platform_spec.rb
150
168
  - spec/tty/table/access_spec.rb
169
+ - spec/tty/table/border/ascii/rendering_spec.rb
170
+ - spec/tty/table/border/new_spec.rb
171
+ - spec/tty/table/border/null/rendering_spec.rb
172
+ - spec/tty/table/border/unicode/rendering_spec.rb
173
+ - spec/tty/table/column_set/extract_widths_spec.rb
151
174
  - spec/tty/table/each_spec.rb
152
175
  - spec/tty/table/empty_spec.rb
153
176
  - spec/tty/table/eql_spec.rb
@@ -159,6 +182,7 @@ test_files:
159
182
  - spec/tty/table/operation/alignment_set/new_spec.rb
160
183
  - spec/tty/table/operation/alignment_set/to_ary_spec.rb
161
184
  - spec/tty/table/operation/truncation/truncate_spec.rb
185
+ - spec/tty/table/operation/wrapped/wrap_spec.rb
162
186
  - spec/tty/table/options_spec.rb
163
187
  - spec/tty/table/properties_spec.rb
164
188
  - spec/tty/table/renderer/basic/alignment_spec.rb
@@ -166,7 +190,10 @@ test_files:
166
190
  - spec/tty/table/renderer/basic/new_spec.rb
167
191
  - spec/tty/table/renderer/basic/render_spec.rb
168
192
  - spec/tty/table/renderer/basic_spec.rb
193
+ - spec/tty/table/renderer/pick_renderer_spec.rb
169
194
  - spec/tty/table/renderer_spec.rb
195
+ - spec/tty/table/to_s_spec.rb
170
196
  - spec/tty/table/validatable_spec.rb
171
197
  - spec/tty/terminal/size_spec.rb
198
+ - spec/tty/vector/new_spec.rb
172
199
  has_rdoc: