console_table 0.0.3 → 0.0.4
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 +4 -4
- data/Rakefile +9 -0
- data/console_table.gemspec +2 -1
- data/lib/console_table.rb +14 -2
- data/test/{console_table_test.rb → test_console_table.rb} +96 -9
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f72bfb44646e954c27cf46a4b3b3f4d50c629b0
|
4
|
+
data.tar.gz: 23402eb6500112776e41f43a988c0340552c1b65
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fb568ca9cac5df83ac89909b4988f56b464345ca938600926c84f747d734799ea64967d472420d0a30cc6be66b39afa0a9040d6eb63fd08be6d4a22573526a4
|
7
|
+
data.tar.gz: d2bdf4a87fe2dbf1a6f62a5a1a9bbfbf60250b28c36d96a480575e76fbe36597b71b275a60a9c700e2edff0bac2d7ff2b683b02f17a83d7cf4cfc8d24c55e5c2
|
data/Rakefile
CHANGED
data/console_table.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "console_table"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.4"
|
8
8
|
spec.authors = ["Rod Hilton"]
|
9
9
|
spec.email = ["consoletable@rodhilton.com"]
|
10
10
|
spec.summary = %q{Simplifies printing tables of information to commandline consoles}
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.add_development_dependency "bundler", "~> 1.5"
|
20
20
|
spec.add_development_dependency 'rake', '~> 0'
|
21
21
|
spec.add_development_dependency 'simplecov', '~> 0.9'
|
22
|
+
spec.add_development_dependency 'minitest', '~> 5.5'
|
22
23
|
|
23
24
|
spec.add_runtime_dependency 'colorize', '~> 0.7'
|
24
25
|
end
|
data/lib/console_table.rb
CHANGED
@@ -101,7 +101,10 @@ class ConsoleTable
|
|
101
101
|
justify = to_print[:justify] || :left
|
102
102
|
mode = to_print[:mode] || :default
|
103
103
|
|
104
|
-
formatted=format(@working_width, text, ellipsize, justify)
|
104
|
+
formatted=format(@working_width, text, ellipsize, justify)
|
105
|
+
if text != :default or background != :default or mode != :default
|
106
|
+
formatted = formatted.colorize(:color => color, :background => background, :mode => mode)
|
107
|
+
end
|
105
108
|
@out.print formatted
|
106
109
|
end
|
107
110
|
|
@@ -127,7 +130,11 @@ class ConsoleTable
|
|
127
130
|
justify = to_print[:justify] || justify #can override
|
128
131
|
mode = to_print[:mode] || :default
|
129
132
|
|
130
|
-
formatted=format(column[:size], text, ellipsize, justify)
|
133
|
+
formatted=format(column[:size], text, ellipsize, justify)
|
134
|
+
|
135
|
+
if color != :default or background != :default or mode != :default
|
136
|
+
formatted = formatted.colorize(:color => color, :background => background, :mode => mode)
|
137
|
+
end
|
131
138
|
|
132
139
|
unless (to_print[:highlight].nil?)
|
133
140
|
highlight_regex = to_print[:highlight][:regex] || /wontbefoundbecauseit'sgobbledygookblahblahblahbah/
|
@@ -167,6 +174,11 @@ class ConsoleTable
|
|
167
174
|
total_width = ENV["COLUMNS"].to_i || 150
|
168
175
|
end
|
169
176
|
|
177
|
+
keys = @original_column_layout.collect { |d| d[:key] }.uniq
|
178
|
+
if keys.length < @original_column_layout.length
|
179
|
+
raise("ConsoleTable configuration invalid, same key defined more than once")
|
180
|
+
end
|
181
|
+
|
170
182
|
num_spacers = @original_column_layout.length - 1
|
171
183
|
set_sizes = @original_column_layout.collect { |x| x[:size] }.find_all { |x| x.is_a? Integer }
|
172
184
|
used_up = set_sizes.inject(:+) || 0
|
@@ -1,7 +1,7 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'console_table'
|
3
3
|
|
4
|
-
class ConsoleTableTest < Test
|
4
|
+
class ConsoleTableTest < Minitest::Test
|
5
5
|
|
6
6
|
def setup
|
7
7
|
@mock_out = StringIO.new
|
@@ -196,10 +196,10 @@ Row 2, Column 1 Row 2, Column 2 Row Row 2, Column 4
|
|
196
196
|
|
197
197
|
commit_table_config = [
|
198
198
|
{:key=>:col1, :size=>20, :title=>"Column 1"},
|
199
|
-
{:key=>:
|
199
|
+
{:key=>:col2, :size=>20, :title=>"Column 2"},
|
200
200
|
]
|
201
201
|
|
202
|
-
|
202
|
+
assert_raises(RuntimeError) { ConsoleTable.define(commit_table_config) }
|
203
203
|
end
|
204
204
|
|
205
205
|
def test_wont_create_layout_with_more_than_100_percent
|
@@ -207,10 +207,10 @@ Row 2, Column 1 Row 2, Column 2 Row Row 2, Column 4
|
|
207
207
|
|
208
208
|
commit_table_config = [
|
209
209
|
{:key=>:col1, :size=>0.8, :title=>"Column 1"},
|
210
|
-
{:key=>:
|
210
|
+
{:key=>:col2, :size=>0.3, :title=>"Column 2"},
|
211
211
|
]
|
212
212
|
|
213
|
-
|
213
|
+
assert_raises(RuntimeError) { ConsoleTable.define(commit_table_config) }
|
214
214
|
end
|
215
215
|
|
216
216
|
def test_wont_create_layout_with_invalid_size
|
@@ -218,10 +218,97 @@ Row 2, Column 1 Row 2, Column 2 Row Row 2, Column 4
|
|
218
218
|
|
219
219
|
commit_table_config = [
|
220
220
|
{:key=>:col1, :size=>0.8, :title=>"Column 1"},
|
221
|
-
{:key=>:
|
221
|
+
{:key=>:col2, :size=>"hello!", :title=>"Column 2"},
|
222
|
+
]
|
223
|
+
|
224
|
+
assert_raises(RuntimeError) { ConsoleTable.define(commit_table_config) }
|
225
|
+
end
|
226
|
+
|
227
|
+
def test_wont_allow_repeats_of_key_names
|
228
|
+
ENV["COLUMNS"] = "50"
|
229
|
+
|
230
|
+
commit_table_config = [
|
231
|
+
{:key=>:col1, :size=>20, :title=>"Column 1"},
|
232
|
+
{:key=>:col1, :size=>20, :title=>"Column 2"},
|
233
|
+
]
|
234
|
+
|
235
|
+
assert_raises(RuntimeError) { ConsoleTable.define(commit_table_config) }
|
236
|
+
end
|
237
|
+
|
238
|
+
def test_can_truncate_output
|
239
|
+
ENV["COLUMNS"] = "100"
|
240
|
+
|
241
|
+
commit_table_config = [
|
242
|
+
{:key=>:col1, :size=>20, :title=>"Column 1"}
|
243
|
+
]
|
244
|
+
|
245
|
+
ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
|
246
|
+
table.print({
|
247
|
+
:col1 => "This is short"
|
248
|
+
})
|
249
|
+
|
250
|
+
table.print({
|
251
|
+
:col1 => "This is way too long and it needs to get cut off"
|
252
|
+
})
|
253
|
+
|
254
|
+
table.print({
|
255
|
+
:col1 => {:text=>"This is way too long and it needs to get cut off", :ellipsize=>true}
|
256
|
+
})
|
257
|
+
end
|
258
|
+
|
259
|
+
expected=<<-END
|
260
|
+
====================
|
261
|
+
Column 1
|
262
|
+
--------------------
|
263
|
+
This is short
|
264
|
+
This is way too long
|
265
|
+
This is way too l...
|
266
|
+
====================
|
267
|
+
END
|
268
|
+
|
269
|
+
assert_output_equal expected, @mock_out.string
|
270
|
+
end
|
271
|
+
|
272
|
+
def test_can_justify_columns_and_override_in_rows
|
273
|
+
ENV["COLUMNS"] = "100"
|
274
|
+
|
275
|
+
commit_table_config = [
|
276
|
+
{:key=>:col1, :size=>20, :title=>"Column 1"},
|
277
|
+
{:key=>:col2, :size=>20, :title=>"Column 2", :justify=>:center},
|
278
|
+
{:key=>:col3, :size=>20, :title=>"Column 3", :justify=>:right}
|
222
279
|
]
|
223
280
|
|
224
|
-
|
281
|
+
ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
|
282
|
+
table.print({
|
283
|
+
:col1 => "Short1",
|
284
|
+
:col2 => "Short2",
|
285
|
+
:col3 => "Short3"
|
286
|
+
})
|
287
|
+
|
288
|
+
table.print({
|
289
|
+
:col1 => {text: "Short1"},
|
290
|
+
:col2 => {text: "Short2"},
|
291
|
+
:col3 => {text: "Short3"}
|
292
|
+
})
|
293
|
+
|
294
|
+
table.print({
|
295
|
+
:col1 => {text: "Short1", :justify=>:center},
|
296
|
+
:col2 => {text: "Short2", :justify=>:right},
|
297
|
+
:col3 => {text: "Short3", :justify=>:left}
|
298
|
+
})
|
299
|
+
end
|
300
|
+
|
301
|
+
expected=<<-END
|
302
|
+
==============================================================
|
303
|
+
Column 1 Column 2 Column 3
|
304
|
+
--------------------------------------------------------------
|
305
|
+
Short1 Short2 Short3
|
306
|
+
Short1 Short2 Short3
|
307
|
+
Short1 Short2 Short3
|
308
|
+
==============================================================
|
309
|
+
END
|
310
|
+
|
311
|
+
assert_output_equal expected, @mock_out.string
|
225
312
|
end
|
226
313
|
|
227
314
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rod Hilton
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.5'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '5.5'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: colorize
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +96,7 @@ files:
|
|
82
96
|
- Rakefile
|
83
97
|
- console_table.gemspec
|
84
98
|
- lib/console_table.rb
|
85
|
-
- test/
|
99
|
+
- test/test_console_table.rb
|
86
100
|
- todo.txt
|
87
101
|
homepage: https://github.com/rodhilton/console_table
|
88
102
|
licenses:
|
@@ -109,4 +123,4 @@ signing_key:
|
|
109
123
|
specification_version: 4
|
110
124
|
summary: Simplifies printing tables of information to commandline consoles
|
111
125
|
test_files:
|
112
|
-
- test/
|
126
|
+
- test/test_console_table.rb
|