terminal-table 1.8.0 → 3.0.2
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.
- checksums.yaml +5 -5
- data/.github/workflows/ci.yml +28 -0
- data/.gitignore +5 -0
- data/History.rdoc +57 -0
- data/README.md +417 -0
- data/examples/data.csv +4 -0
- data/examples/examples.rb +0 -0
- data/examples/examples_unicode.rb +89 -0
- data/examples/issue100.rb +34 -0
- data/examples/issue111.rb +4 -0
- data/examples/issue118.rb +36 -0
- data/examples/issue95.rb +42 -0
- data/examples/show_csv_table.rb +34 -0
- data/examples/strong_separator.rb +23 -0
- data/lib/terminal-table/cell.rb +8 -8
- data/lib/terminal-table/row.rb +18 -4
- data/lib/terminal-table/separator.rb +56 -4
- data/lib/terminal-table/style.rb +218 -13
- data/lib/terminal-table/table.rb +47 -18
- data/lib/terminal-table/util.rb +13 -0
- data/lib/terminal-table/version.rb +1 -1
- data/lib/terminal-table.rb +2 -2
- data/terminal-table.gemspec +3 -3
- metadata +28 -19
- data/README.rdoc +0 -247
data/terminal-table.gemspec
CHANGED
@@ -16,11 +16,11 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.add_development_dependency "bundler", "~>
|
20
|
-
spec.add_development_dependency "rake", "~>
|
19
|
+
spec.add_development_dependency "bundler", "~> 2"
|
20
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
21
21
|
spec.add_development_dependency "rspec", ">= 3.0"
|
22
22
|
spec.add_development_dependency "term-ansicolor"
|
23
23
|
spec.add_development_dependency "pry"
|
24
24
|
|
25
|
-
spec.add_runtime_dependency "unicode-display_width", ["
|
25
|
+
spec.add_runtime_dependency "unicode-display_width", [">= 1.1.1", "< 3"]
|
26
26
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
8
8
|
- Scott J. Goldman
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '2'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rake
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '13.0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '13.0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,38 +85,47 @@ dependencies:
|
|
85
85
|
name: unicode-display_width
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - "~>"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '1.1'
|
91
88
|
- - ">="
|
92
89
|
- !ruby/object:Gem::Version
|
93
90
|
version: 1.1.1
|
91
|
+
- - "<"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '3'
|
94
94
|
type: :runtime
|
95
95
|
prerelease: false
|
96
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
|
-
- - "~>"
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version: '1.1'
|
101
98
|
- - ">="
|
102
99
|
- !ruby/object:Gem::Version
|
103
100
|
version: 1.1.1
|
104
|
-
|
101
|
+
- - "<"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3'
|
104
|
+
description:
|
105
105
|
email:
|
106
106
|
- tj@vision-media.ca
|
107
107
|
executables: []
|
108
108
|
extensions: []
|
109
109
|
extra_rdoc_files: []
|
110
110
|
files:
|
111
|
+
- ".github/workflows/ci.yml"
|
111
112
|
- ".gitignore"
|
112
113
|
- Gemfile
|
113
114
|
- History.rdoc
|
114
115
|
- LICENSE.txt
|
115
116
|
- Manifest
|
116
|
-
- README.
|
117
|
+
- README.md
|
117
118
|
- Rakefile
|
118
119
|
- Todo.rdoc
|
120
|
+
- examples/data.csv
|
119
121
|
- examples/examples.rb
|
122
|
+
- examples/examples_unicode.rb
|
123
|
+
- examples/issue100.rb
|
124
|
+
- examples/issue111.rb
|
125
|
+
- examples/issue118.rb
|
126
|
+
- examples/issue95.rb
|
127
|
+
- examples/show_csv_table.rb
|
128
|
+
- examples/strong_separator.rb
|
120
129
|
- lib/terminal-table.rb
|
121
130
|
- lib/terminal-table/cell.rb
|
122
131
|
- lib/terminal-table/import.rb
|
@@ -125,13 +134,14 @@ files:
|
|
125
134
|
- lib/terminal-table/style.rb
|
126
135
|
- lib/terminal-table/table.rb
|
127
136
|
- lib/terminal-table/table_helper.rb
|
137
|
+
- lib/terminal-table/util.rb
|
128
138
|
- lib/terminal-table/version.rb
|
129
139
|
- terminal-table.gemspec
|
130
140
|
homepage: https://github.com/tj/terminal-table
|
131
141
|
licenses:
|
132
142
|
- MIT
|
133
143
|
metadata: {}
|
134
|
-
post_install_message:
|
144
|
+
post_install_message:
|
135
145
|
rdoc_options: []
|
136
146
|
require_paths:
|
137
147
|
- lib
|
@@ -146,9 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
156
|
- !ruby/object:Gem::Version
|
147
157
|
version: '0'
|
148
158
|
requirements: []
|
149
|
-
|
150
|
-
|
151
|
-
signing_key:
|
159
|
+
rubygems_version: 3.2.3
|
160
|
+
signing_key:
|
152
161
|
specification_version: 4
|
153
162
|
summary: Simple, feature rich ascii table generation library
|
154
163
|
test_files: []
|
data/README.rdoc
DELETED
@@ -1,247 +0,0 @@
|
|
1
|
-
= Terminal Table
|
2
|
-
|
3
|
-
== Description
|
4
|
-
|
5
|
-
Terminal Table is a fast and simple, yet feature rich ASCII table generator written in Ruby.
|
6
|
-
|
7
|
-
== Installation
|
8
|
-
|
9
|
-
$ gem install terminal-table
|
10
|
-
|
11
|
-
== Usage
|
12
|
-
|
13
|
-
=== Basics
|
14
|
-
|
15
|
-
To use Terminal Table:
|
16
|
-
|
17
|
-
require 'terminal-table'
|
18
|
-
|
19
|
-
To generate a table, provide an array of arrays (which are interpreted as rows):
|
20
|
-
|
21
|
-
rows = []
|
22
|
-
rows << ['One', 1]
|
23
|
-
rows << ['Two', 2]
|
24
|
-
rows << ['Three', 3]
|
25
|
-
table = Terminal::Table.new :rows => rows
|
26
|
-
|
27
|
-
# > puts table
|
28
|
-
#
|
29
|
-
# +-------+---+
|
30
|
-
# | One | 1 |
|
31
|
-
# | Two | 2 |
|
32
|
-
# | Three | 3 |
|
33
|
-
# +-------+---+
|
34
|
-
|
35
|
-
|
36
|
-
The constructor can also be given a block which is either yielded the Table object or instance evaluated:
|
37
|
-
|
38
|
-
table = Terminal::Table.new do |t|
|
39
|
-
t.rows = rows
|
40
|
-
end
|
41
|
-
|
42
|
-
table = Terminal::Table.new do
|
43
|
-
self.rows = rows
|
44
|
-
end
|
45
|
-
|
46
|
-
Adding rows one by one:
|
47
|
-
|
48
|
-
table = Terminal::Table.new do |t|
|
49
|
-
t << ['One', 1]
|
50
|
-
t.add_row ['Two', 2]
|
51
|
-
end
|
52
|
-
|
53
|
-
To add separators between rows:
|
54
|
-
|
55
|
-
table = Terminal::Table.new do |t|
|
56
|
-
t << ['One', 1]
|
57
|
-
t << :separator
|
58
|
-
t.add_row ['Two', 2]
|
59
|
-
t.add_separator
|
60
|
-
t.add_row ['Three', 3]
|
61
|
-
end
|
62
|
-
|
63
|
-
# > puts table
|
64
|
-
#
|
65
|
-
# +-------+---+
|
66
|
-
# | One | 1 |
|
67
|
-
# +-------+---+
|
68
|
-
# | Two | 2 |
|
69
|
-
# +-------+---+
|
70
|
-
# | Three | 3 |
|
71
|
-
# +-------+---+
|
72
|
-
|
73
|
-
Cells can handle multiline content:
|
74
|
-
|
75
|
-
table = Terminal::Table.new do |t|
|
76
|
-
t << ['One', 1]
|
77
|
-
t << :separator
|
78
|
-
t.add_row ["Two\nDouble", 2]
|
79
|
-
t.add_separator
|
80
|
-
t.add_row ['Three', 3]
|
81
|
-
end
|
82
|
-
|
83
|
-
# > puts table
|
84
|
-
#
|
85
|
-
# +--------+---+
|
86
|
-
# | One | 1 |
|
87
|
-
# +--------+---+
|
88
|
-
# | Two | 2 |
|
89
|
-
# | Double | |
|
90
|
-
# +--------+---+
|
91
|
-
# | Three | 3 |
|
92
|
-
# +--------+---+
|
93
|
-
|
94
|
-
=== Head
|
95
|
-
|
96
|
-
To add a head to the table:
|
97
|
-
|
98
|
-
table = Terminal::Table.new :headings => ['Word', 'Number'], :rows => rows
|
99
|
-
|
100
|
-
# > puts table
|
101
|
-
#
|
102
|
-
# +-------+--------+
|
103
|
-
# | Word | Number |
|
104
|
-
# +-------+--------+
|
105
|
-
# | One | 1 |
|
106
|
-
# | Two | 2 |
|
107
|
-
# | Three | 3 |
|
108
|
-
# +-------+--------+
|
109
|
-
|
110
|
-
=== Title
|
111
|
-
|
112
|
-
To add a title to the table:
|
113
|
-
|
114
|
-
table = Terminal::Table.new :title => "Cheatsheet", :headings => ['Word', 'Number'], :rows => rows
|
115
|
-
|
116
|
-
# > puts table
|
117
|
-
#
|
118
|
-
# +------------+--------+
|
119
|
-
# | Cheatsheet |
|
120
|
-
# +------------+--------+
|
121
|
-
# | Word | Number |
|
122
|
-
# +------------+--------+
|
123
|
-
# | One | 1 |
|
124
|
-
# | Two | 2 |
|
125
|
-
# | Three | 3 |
|
126
|
-
# +------------+--------+
|
127
|
-
|
128
|
-
=== Alignment
|
129
|
-
|
130
|
-
To align the second column to the right:
|
131
|
-
|
132
|
-
table.align_column(1, :right)
|
133
|
-
|
134
|
-
# > puts table
|
135
|
-
#
|
136
|
-
# +-------+--------+
|
137
|
-
# | Word | Number |
|
138
|
-
# +-------+--------+
|
139
|
-
# | One | 1 |
|
140
|
-
# | Two | 2 |
|
141
|
-
# | Three | 3 |
|
142
|
-
# +-------+--------+
|
143
|
-
|
144
|
-
To align an individual cell, you specify the cell value in a hash along the alignment:
|
145
|
-
|
146
|
-
table << ["Four", {:value => 4.0, :alignment => :center}]
|
147
|
-
|
148
|
-
# > puts table
|
149
|
-
#
|
150
|
-
# +-------+--------+
|
151
|
-
# | Word | Number |
|
152
|
-
# +-------+--------+
|
153
|
-
# | One | 1 |
|
154
|
-
# | Two | 2 |
|
155
|
-
# | Three | 3 |
|
156
|
-
# | Four | 4.0 |
|
157
|
-
# +-------+--------+
|
158
|
-
|
159
|
-
=== Style
|
160
|
-
|
161
|
-
To specify style options:
|
162
|
-
|
163
|
-
table = Terminal::Table.new :headings => ['Word', 'Number'], :rows => rows, :style => {:width => 80}
|
164
|
-
|
165
|
-
# > puts table
|
166
|
-
#
|
167
|
-
# +--------------------------------------+---------------------------------------+
|
168
|
-
# | Word | Number |
|
169
|
-
# +--------------------------------------+---------------------------------------+
|
170
|
-
# | One | 1 |
|
171
|
-
# | Two | 2 |
|
172
|
-
# | Three | 3 |
|
173
|
-
# +--------------------------------------+---------------------------------------+
|
174
|
-
|
175
|
-
And change styles on the fly:
|
176
|
-
|
177
|
-
table.style = {:width => 40, :padding_left => 3, :border_x => "=", :border_i => "x"}
|
178
|
-
|
179
|
-
# > puts table
|
180
|
-
#
|
181
|
-
# x====================x=================x
|
182
|
-
# | Cheatsheet |
|
183
|
-
# x====================x=================x
|
184
|
-
# | Word | Number |
|
185
|
-
# x====================x=================x
|
186
|
-
# | One | 1 |
|
187
|
-
# | Two | 2 |
|
188
|
-
# | Three | 3 |
|
189
|
-
# x====================x=================x
|
190
|
-
|
191
|
-
You can also use styles to add a separator after every row:
|
192
|
-
|
193
|
-
table = Terminal::Table.new do |t|
|
194
|
-
t.add_row [1, 'One']
|
195
|
-
t.add_row [2, 'Two']
|
196
|
-
t.add_row [3, 'Three']
|
197
|
-
t.style = {:all_separators => true}
|
198
|
-
end
|
199
|
-
|
200
|
-
# > puts table
|
201
|
-
#
|
202
|
-
# +---+-------+
|
203
|
-
# | 1 | One |
|
204
|
-
# +---+-------+
|
205
|
-
# | 2 | Two |
|
206
|
-
# +---+-------+
|
207
|
-
# | 3 | Three |
|
208
|
-
# +---+-------+
|
209
|
-
|
210
|
-
You can also use styles to disable top and bottom borders of the table
|
211
|
-
|
212
|
-
table = Terminal::Table.new do |t|
|
213
|
-
t.headings = ['id', 'name']
|
214
|
-
t.rows = [[1, 'One'], [2, 'Two'], [3, 'Three']]
|
215
|
-
t.style = { :border_top => false, :border_bottom => false }
|
216
|
-
end
|
217
|
-
|
218
|
-
# > puts table
|
219
|
-
# | id | name |
|
220
|
-
# +----+-------+
|
221
|
-
# | 1 | One |
|
222
|
-
# | 2 | Two |
|
223
|
-
# | 3 | Three |
|
224
|
-
|
225
|
-
To change the default style options:
|
226
|
-
|
227
|
-
Terminal::Table::Style.defaults = {:width => 80}
|
228
|
-
|
229
|
-
All Table objects created afterwards will inherit these defaults.
|
230
|
-
|
231
|
-
=== Constructor options and setter methods
|
232
|
-
|
233
|
-
Valid options for the constructor are :rows, :headings, :style and :title - and all options can also be set on the created table object by their setter method:
|
234
|
-
|
235
|
-
table = Terminal::Table.new
|
236
|
-
table.title = "Cheatsheet"
|
237
|
-
table.headings = ['Word', 'Number']
|
238
|
-
table.rows = rows
|
239
|
-
table.style = {:width => 40}
|
240
|
-
|
241
|
-
== More examples
|
242
|
-
|
243
|
-
For more examples, please see the examples/examples.rb file included in the source distribution.
|
244
|
-
|
245
|
-
== Author
|
246
|
-
|
247
|
-
TJ Holowaychuk <tj@vision-media.ca>
|