terminal-table 1.7.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,238 +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
- To change the default style options:
192
-
193
- Terminal::Table::Style.defaults = {:width => 80}
194
-
195
- All Table objects created afterwards will inherit these defaults.
196
-
197
- === Constructor options and setter methods
198
-
199
- 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:
200
-
201
- table = Terminal::Table.new
202
- table.title = "Cheatsheet"
203
- table.headings = ['Word', 'Number']
204
- table.rows = rows
205
- table.style = {:width => 40}
206
-
207
- == More examples
208
-
209
- For more examples, please see the examples/examples.rb file included in the source distribution.
210
-
211
- == Author
212
-
213
- TJ Holowaychuk <tj@vision-media.ca>
214
-
215
- == License
216
-
217
- (The MIT License)
218
-
219
- Copyright (c) 2008-2009 TJ Holowaychuk <tj@vision-media.ca>
220
-
221
- Permission is hereby granted, free of charge, to any person obtaining
222
- a copy of this software and associated documentation files (the
223
- 'Software'), to deal in the Software without restriction, including
224
- without limitation the rights to use, copy, modify, merge, publish,
225
- distribute, sublicense, an d/or sell copies of the Software, and to
226
- permit persons to whom the Software is furnished to do so, subject to
227
- the following conditions:
228
-
229
- The above copyright notice and this permission notice shall be
230
- included in all copies or substantial portions of the Software.
231
-
232
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
233
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
234
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
235
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
236
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
237
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
238
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.