console_table 0.0.2 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d6584806bd70be8c861b3f31cab09d40dd7aaea
4
- data.tar.gz: b14fa23bff85071edfb100410e7058935837aec5
3
+ metadata.gz: 319bf461a967b3098c88d16ed370e6b32cfe0a11
4
+ data.tar.gz: 82ac42a1dcc1680f982ddafa7a9613a28a7a0d42
5
5
  SHA512:
6
- metadata.gz: 4b325157fe823b192c90a2f55966e79f3540a446bc903776221fea12a201d10abe2f72ced458be2f4ec92f1ba7f82cb61afa2f073b9db9ee1c1e77322b797b8d
7
- data.tar.gz: 533d3190d9c667094541be8a7dd3bf1092253932491da7c382ed0b02c86452bf08d4a2bd7be68e256a2c5fb87730b68219dcdf5903003313fb9e9fc53980dd3a
6
+ metadata.gz: 1c0bdfbc856c1f7e04a7b9a3adfc3d259472947293a8812637395d233f1bc14ce68bc0e1730312012c4fd87765cb66e07ace95a74c7d27ab2c0f790ce552802b
7
+ data.tar.gz: 64a60d6b7571dcabee14970cc6b9bef3768c2bbcf9663c7d03378ea26085c8b466f7e28a0e56d666b709f92a2d9c562ef844fc6be7e1bb9b33871d99a4cfd6ad
data/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ #NOTE: I just pulled this code out of a skunkworks project into a gem, readme and tests coming soon. Would not recommend this gem for any critical-path work at this time
2
+
3
+ ---
4
+
1
5
  # ConsoleTable
2
6
 
3
7
  TODO: Write a gem description
@@ -1,11 +1,10 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'console_table/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
6
  spec.name = "console_table"
8
- spec.version = "0.0.2"
7
+ spec.version = "0.0.3"
9
8
  spec.authors = ["Rod Hilton"]
10
9
  spec.email = ["consoletable@rodhilton.com"]
11
10
  spec.summary = %q{Simplifies printing tables of information to commandline consoles}
@@ -19,6 +18,7 @@ Gem::Specification.new do |spec|
19
18
 
20
19
  spec.add_development_dependency "bundler", "~> 1.5"
21
20
  spec.add_development_dependency 'rake', '~> 0'
21
+ spec.add_development_dependency 'simplecov', '~> 0.9'
22
22
 
23
23
  spec.add_runtime_dependency 'colorize', '~> 0.7'
24
24
  end
data/lib/console_table.rb CHANGED
@@ -1,60 +1,61 @@
1
+ require 'colorize'
2
+
1
3
  class ConsoleTable
2
-
3
- def self.define(layout, options, &block)
4
+
5
+ def self.define(layout, options={}, &block)
4
6
  table = ConsoleTable.new(layout, options)
5
- table.print_header()
7
+ table.print_header
6
8
  block.call(table)
7
- table.print_footer()
9
+ table.print_footer
8
10
  end
9
11
 
10
12
  def initialize(column_layout, options={})
11
13
  @original_column_layout = column_layout
12
14
  @left_margin = options[:left_margin] || 0
13
15
  @right_margin = options[:right_margin] || 0
14
-
15
- @count = 0
16
-
16
+ @out = options[:output] || $stdout
17
17
  @title = options[:title]
18
18
 
19
19
  @footer_lines = []
20
20
 
21
- calc_column_widths()
22
21
  @headings_printed = false
22
+ @count = 0
23
23
 
24
- Signal.trap('SIGWINCH', proc { calc_column_widths() })
24
+ calc_column_widths
25
+ Signal.trap('SIGWINCH', proc { calc_column_widths })
25
26
  end
26
27
 
27
28
  def print_header()
28
- $stdout.print " " * @left_margin
29
- $stdout.print "=" * @working_width
30
- $stdout.print "\n"
29
+ @out.print " " * @left_margin
30
+ @out.print "=" * @working_width
31
+ @out.print "\n"
31
32
 
32
33
  if not @title.nil? and @title.length <= @working_width
33
- $stdout.print " "*@left_margin
34
+ @out.print " "*@left_margin
34
35
  left_side = (@working_width - @title.uncolorize.length)/2
35
36
  right_side = (@working_width - @title.uncolorize.length) - left_side
36
- $stdout.print " "*left_side
37
- $stdout.print @title
38
- $stdout.print " "*right_side
39
- $stdout.print "\n"
37
+ @out.print " "*left_side
38
+ @out.print @title
39
+ @out.print " "*right_side
40
+ @out.print "\n"
40
41
  end
41
42
  end
42
43
 
43
44
  def print_headings()
44
45
  @headings_printed = true
45
- $stdout.print " "*@left_margin
46
+ @out.print " "*@left_margin
46
47
 
47
48
  @column_widths.each_with_index do |column, i|
48
49
  justify = column[:justify] || :left
49
50
  title = column[:title].strip
50
- $stdout.print format(column[:size], title, false, justify).bold
51
- $stdout.print " " if i < @column_widths.size-1
51
+ @out.print format(column[:size], title, false, justify)
52
+ @out.print " " if i < @column_widths.size-1
52
53
  end
53
- $stdout.print "\n"
54
+ @out.print "\n"
54
55
 
55
- $stdout.print " " * @left_margin
56
- $stdout.print "-" * @working_width
57
- $stdout.print "\n"
56
+ @out.print " " * @left_margin
57
+ @out.print "-" * @working_width
58
+ @out.print "\n"
58
59
  end
59
60
 
60
61
  def add_footer(line)
@@ -65,33 +66,33 @@ class ConsoleTable
65
66
  end
66
67
 
67
68
  def print_footer()
68
- should_print_footer = @footer_lines.length > 0 && @footer_lines.any?{|l| l.uncolorize.length <= @working_width}
69
+ should_print_footer = @footer_lines.length > 0 && @footer_lines.any? { |l| l.uncolorize.length <= @working_width }
69
70
 
70
- if(should_print_footer)
71
- $stdout.print " " * @left_margin
72
- $stdout.print "-" * @working_width
73
- $stdout.print "\n"
71
+ if should_print_footer
72
+ @out.print " " * @left_margin
73
+ @out.print "-" * @working_width
74
+ @out.print "\n"
74
75
  end
75
76
 
76
77
  @footer_lines.each do |line|
77
78
  if line.uncolorize.length <= @working_width
78
- $stdout.print " " * @left_margin
79
- $stdout.print " " * (@working_width - line.uncolorize.length)
80
- $stdout.print line
81
- $stdout.print "\n"
79
+ @out.print " " * @left_margin
80
+ @out.print " " * (@working_width - line.uncolorize.length)
81
+ @out.print line
82
+ @out.print "\n"
82
83
  end
83
84
  end
84
85
 
85
- $stdout.print " " * @left_margin
86
- $stdout.print "=" * @working_width
87
- $stdout.print "\n"
86
+ @out.print " " * @left_margin
87
+ @out.print "=" * @working_width
88
+ @out.print "\n"
88
89
  end
89
90
 
90
91
  def print_plain(to_print)
91
- $stdout.print " "*@left_margin
92
+ @out.print " "*@left_margin
92
93
 
93
94
  if to_print.is_a? String
94
- $stdout.print format(@working_width, normalize(to_print))
95
+ @out.print format(@working_width, normalize(to_print))
95
96
  elsif to_print.is_a? Hash
96
97
  color = to_print[:color] || :default
97
98
  background = to_print[:background] || :default
@@ -100,23 +101,23 @@ class ConsoleTable
100
101
  justify = to_print[:justify] || :left
101
102
  mode = to_print[:mode] || :default
102
103
 
103
- formatted=format(@working_width, text, ellipsize, justify).colorize(:color=>color, :background=>background, :mode=>mode)
104
- $stdout.print formatted
104
+ formatted=format(@working_width, text, ellipsize, justify).colorize(:color => color, :background => background, :mode => mode)
105
+ @out.print formatted
105
106
  end
106
107
 
107
- $stdout.print "\n"
108
+ @out.print "\n"
108
109
  end
109
110
 
110
111
  def print(options)
111
112
  print_headings unless @headings_printed
112
113
 
113
- $stdout.print " "*@left_margin
114
+ @out.print " "*@left_margin
114
115
  #column order is set, so go through each column and look up values in the incoming options
115
116
  @column_widths.each_with_index do |column, i|
116
117
  to_print = options[column[:key]] || ""
117
118
  justify = column[:justify] || :left
118
119
  if to_print.is_a? String
119
- $stdout.print format(column[:size], normalize(to_print), false, justify)
120
+ @out.print format(column[:size], normalize(to_print), false, justify)
120
121
  elsif to_print.is_a? Hash
121
122
  color = to_print[:color] || :default
122
123
  background = to_print[:background] || :default
@@ -126,31 +127,31 @@ class ConsoleTable
126
127
  justify = to_print[:justify] || justify #can override
127
128
  mode = to_print[:mode] || :default
128
129
 
129
- formatted=format(column[:size], text, ellipsize, justify).colorize(:color=>color, :background=>background, :mode=>mode)
130
+ formatted=format(column[:size], text, ellipsize, justify).colorize(:color => color, :background => background, :mode => mode)
130
131
 
131
- unless(to_print[:highlight].nil?)
132
+ unless (to_print[:highlight].nil?)
132
133
  highlight_regex = to_print[:highlight][:regex] || /wontbefoundbecauseit'sgobbledygookblahblahblahbah/
133
134
  highlight_color = to_print[:highlight][:color] || :blue
134
135
  highlight_background = to_print[:highlight][:background] || :default
135
136
 
136
- formatted = formatted.gsub(highlight_regex, '\0'.colorize(:color=>highlight_color, :background=>highlight_background))
137
+ formatted = formatted.gsub(highlight_regex, '\0'.colorize(:color => highlight_color, :background => highlight_background))
137
138
  end
138
139
 
139
- $stdout.print formatted
140
+ @out.print formatted
140
141
  else
141
- $stdout.print format(column[:size], normalize(to_print.to_s))
142
+ @out.print format(column[:size], normalize(to_print.to_s))
142
143
  end
143
144
 
144
- $stdout.print " " if i < @column_widths.size-1
145
+ @out.print " " if i < @column_widths.size-1
145
146
  end
146
- $stdout.print "\n"
147
+ @out.print "\n"
147
148
 
148
149
  @count = @count + 1
149
150
  end
150
151
 
151
152
  private
152
153
  def normalize(string)
153
- if (string.nil?)
154
+ if string.nil?
154
155
  nil
155
156
  else
156
157
  string.to_s.gsub(/\s+/, " ").strip #Primarily to remove any tabs or newlines
@@ -167,47 +168,44 @@ class ConsoleTable
167
168
  end
168
169
 
169
170
  num_spacers = @original_column_layout.length - 1
170
- set_sizes = @original_column_layout.collect{|x| x[:size]}.find_all{|x| x.is_a? Integer}
171
+ set_sizes = @original_column_layout.collect { |x| x[:size] }.find_all { |x| x.is_a? Integer }
171
172
  used_up = set_sizes.inject(:+) || 0
172
173
  available = total_width - used_up - @left_margin - @right_margin - num_spacers
173
174
 
174
- if(available <= 0)
175
- $stderr.puts "ConsoleTable configuration invalid, current window is too small to display required sizes"
176
- Kernel.exit(-1)
175
+ if available <= 0
176
+ raise("ConsoleTable configuration invalid, current window is too small to display required sizes")
177
177
  end
178
178
 
179
- percentages = @original_column_layout.collect{|x| x[:size]}.find_all{|x| x.is_a? Float}
179
+ percentages = @original_column_layout.collect { |x| x[:size] }.find_all { |x| x.is_a? Float }
180
180
  percent_used = percentages.inject(:+) || 0
181
181
 
182
- if(percent_used > 1.0)
183
- $stderr.puts "ConsoleTable configuration invalid, percentages total value greater than 100%"
184
- Kernel.exit(-1)
182
+ if percent_used > 1.0
183
+ raise("ConsoleTable configuration invalid, percentages total value greater than 100%")
185
184
  end
186
185
 
187
186
  percent_available = 1 - percent_used
188
- stars = @original_column_layout.collect{|x| x[:size]}.find_all{|x| x.is_a? String}
189
- num_stars = stars.length || 1
190
- percent_for_stars = percent_available / num_stars
187
+ stars = @original_column_layout.collect { |x| x[:size] }.find_all { |x| x.is_a? String }
188
+ num_stars = [stars.length, 1].max
189
+ percent_for_stars = percent_available.to_f / num_stars
191
190
 
192
191
  @original_column_layout.each do |column_config|
193
192
  if column_config[:size].is_a? Integer
194
193
  @column_widths << column_config #As-is when integer
195
194
  elsif column_config[:size].is_a? Float
196
- @column_widths << column_config.merge({:size=> (column_config[:size]*available).floor })
195
+ @column_widths << column_config.merge({:size => (column_config[:size]*available).floor})
197
196
  elsif column_config[:size].is_a?(String) && column_config[:size] == "*"
198
- @column_widths << column_config.merge({:size=> (percent_for_stars*available).floor })
197
+ @column_widths << column_config.merge({:size => (percent_for_stars*available).floor})
199
198
  else
200
- $stderr.puts "ConsoleTable configuration invalid, '#{column_config[:size]}' is not a valid size"
201
- Kernel.exit(-1)
199
+ raise("ConsoleTable configuration invalid, '#{column_config[:size]}' is not a valid size")
202
200
  end
203
201
  end
204
202
 
205
- @working_width = (@column_widths.inject(0) {|res, c| res+c[:size]}) + @column_widths.length - 1
203
+ @working_width = (@column_widths.inject(0) { |res, c| res+c[:size] }) + @column_widths.length - 1
206
204
  end
207
205
 
208
206
  def format(length, text, ellipsize=false, justify=:left)
209
207
  if text.length > length
210
- if(ellipsize)
208
+ if ellipsize
211
209
  text[0, length-3] + '...'
212
210
  else
213
211
  text[0, length]
@@ -0,0 +1,238 @@
1
+ require 'test/unit'
2
+ require '../lib/console_table'
3
+
4
+ class ConsoleTableTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @mock_out = StringIO.new
8
+
9
+ end
10
+
11
+ def teardown
12
+ # Do nothing
13
+ end
14
+
15
+ def test_basic
16
+ ENV["COLUMNS"] = "100"
17
+
18
+ commit_table_config = [
19
+ {:key=>:col1, :size=>20, :title=>"Column 1"},
20
+ {:key=>:col2, :size=>20, :title=>"Column 2"},
21
+ ]
22
+
23
+ ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
24
+ table.print({
25
+ :col1 => "Row 1, Column 1",
26
+ :col2 => "Row 1, Column 2"
27
+ })
28
+
29
+ table.print({
30
+ :col1 => "Row 2, Column 1",
31
+ :col2 => "Row 2, Column 1"
32
+ })
33
+ end
34
+
35
+ #2345678901234567890##2345678901234567890
36
+ expected=<<-END
37
+ =========================================
38
+ Column 1 Column 2
39
+ -----------------------------------------
40
+ Row 1, Column 1 Row 1, Column 2
41
+ Row 2, Column 1 Row 2, Column 1
42
+ =========================================
43
+ END
44
+
45
+ assert_output_equal expected, @mock_out.string
46
+ end
47
+
48
+ def test_percents
49
+ ENV["COLUMNS"] = "100"
50
+
51
+ commit_table_config = [
52
+ {:key=>:col1, :size=>0.3, :title=>"Column 1"},
53
+ {:key=>:col2, :size=>0.7, :title=>"Column 2"},
54
+ ]
55
+
56
+ ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
57
+ table.print({
58
+ :col1 => "Row 1, Column 1",
59
+ :col2 => "Row 1, Column 2"
60
+ })
61
+
62
+ table.print({
63
+ :col1 => "Row 2, Column 1",
64
+ :col2 => "Row 2, Column 1"
65
+ })
66
+ end
67
+
68
+ expected=<<-END
69
+ ===================================================================================================
70
+ Column 1 Column 2
71
+ ---------------------------------------------------------------------------------------------------
72
+ Row 1, Column 1 Row 1, Column 2
73
+ Row 2, Column 1 Row 2, Column 1
74
+ ===================================================================================================
75
+ END
76
+
77
+ assert_output_equal expected, @mock_out.string
78
+ end
79
+
80
+ def test_star_fills_all_extra_space
81
+ ENV["COLUMNS"] = "100"
82
+
83
+ commit_table_config = [
84
+ {:key=>:col1, :size=>20, :title=>"Column 1"},
85
+ {:key=>:col2, :size=>"*", :title=>"Column 2"},
86
+ ]
87
+
88
+ ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
89
+ table.print({
90
+ :col1 => "Row 1, Column 1",
91
+ :col2 => "Row 1, Column 2"
92
+ })
93
+
94
+ table.print({
95
+ :col1 => "Row 2, Column 1",
96
+ :col2 => "Row 2, Column 1"
97
+ })
98
+ end
99
+
100
+ expected=<<-END
101
+ ====================================================================================================
102
+ Column 1 Column 2
103
+ ----------------------------------------------------------------------------------------------------
104
+ Row 1, Column 1 Row 1, Column 2
105
+ Row 2, Column 1 Row 2, Column 1
106
+ ====================================================================================================
107
+ END
108
+
109
+ assert_output_equal expected, @mock_out.string
110
+ end
111
+
112
+ def test_multiple_stars_split_evenly
113
+ ENV["COLUMNS"] = "100"
114
+
115
+ commit_table_config = [
116
+ {:key=>:col1, :size=>20, :title=>"Column 1"},
117
+ {:key=>:col2, :size=>"*", :title=>"Column 2"},
118
+ {:key=>:col3, :size=>"*", :title=>"Column 3"},
119
+ ]
120
+
121
+ ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
122
+ table.print({
123
+ :col1 => "Row 1, Column 1",
124
+ :col2 => "Row 1, Column 2",
125
+ :col3 => "Row 1, Column 3"
126
+ })
127
+
128
+ table.print({
129
+ :col1 => "Row 2, Column 1",
130
+ :col2 => "Row 2, Column 1",
131
+ :col3 => "Row 2, Column 3"
132
+ })
133
+ end
134
+
135
+ expected=<<-END
136
+ ====================================================================================================
137
+ Column 1 Column 2 Column 3
138
+ ----------------------------------------------------------------------------------------------------
139
+ Row 1, Column 1 Row 1, Column 2 Row 1, Column 3
140
+ Row 2, Column 1 Row 2, Column 1 Row 2, Column 3
141
+ ====================================================================================================
142
+ END
143
+
144
+ assert_output_equal expected, @mock_out.string
145
+ end
146
+
147
+ def test_can_combine_percentages_fixed_and_stars
148
+ ENV["COLUMNS"] = "160"
149
+
150
+ commit_table_config = [
151
+ {:key=>:col1, :size=>20, :title=>"Column 1"},
152
+ {:key=>:col2, :size=>0.3, :title=>"Column 2"},
153
+ {:key=>:col3, :size=>4, :title=>"Column 3"},
154
+ {:key=>:col4, :size=>"*", :title=>"Column 4"},
155
+ {:key=>:col5, :size=>0.2, :title=>"Column 5"},
156
+ {:key=>:col6, :size=>"*", :title=>"Column 6"},
157
+ {:key=>:col7, :size=>10, :title=>"Column 7"}
158
+ ]
159
+
160
+ ConsoleTable.define(commit_table_config, :output=>@mock_out) do |table|
161
+ table.print({
162
+ :col1 => "Row 1, Column 1",
163
+ :col2 => "Row 1, Column 2",
164
+ :col3 => "Row 1, Column 3",
165
+ :col4 => "Row 1, Column 4",
166
+ :col5 => "Row 1, Column 5",
167
+ :col6 => "Row 1, Column 6",
168
+ :col7 => "Row 1, Column 7",
169
+ })
170
+
171
+ table.print({
172
+ :col1 => "Row 2, Column 1",
173
+ :col2 => "Row 2, Column 2",
174
+ :col3 => "Row 2, Column 3",
175
+ :col4 => "Row 2, Column 4",
176
+ :col5 => "Row 2, Column 5",
177
+ :col6 => "Row 2, Column 6",
178
+ :col7 => "Row 2, Column 7",
179
+ })
180
+ end
181
+
182
+ expected=<<-END
183
+ ================================================================================================================================================================
184
+ Column 1 Column 2 Colu Column 4 Column 5 Column 6 Column 7
185
+ ----------------------------------------------------------------------------------------------------------------------------------------------------------------
186
+ Row 1, Column 1 Row 1, Column 2 Row Row 1, Column 4 Row 1, Column 5 Row 1, Column 6 Row 1, Col
187
+ Row 2, Column 1 Row 2, Column 2 Row Row 2, Column 4 Row 2, Column 5 Row 2, Column 6 Row 2, Col
188
+ ================================================================================================================================================================
189
+ END
190
+
191
+ assert_output_equal expected, @mock_out.string
192
+ end
193
+
194
+ def test_wont_create_layout_too_large_for_screen
195
+ ENV["COLUMNS"] = "30"
196
+
197
+ commit_table_config = [
198
+ {:key=>:col1, :size=>20, :title=>"Column 1"},
199
+ {:key=>:col1, :size=>20, :title=>"Column 2"},
200
+ ]
201
+
202
+ assert_raise(RuntimeError) { ConsoleTable.define(commit_table_config) }
203
+ end
204
+
205
+ def test_wont_create_layout_with_more_than_100_percent
206
+ ENV["COLUMNS"] = "30"
207
+
208
+ commit_table_config = [
209
+ {:key=>:col1, :size=>0.8, :title=>"Column 1"},
210
+ {:key=>:col1, :size=>0.3, :title=>"Column 2"},
211
+ ]
212
+
213
+ assert_raise(RuntimeError) { ConsoleTable.define(commit_table_config) }
214
+ end
215
+
216
+ def test_wont_create_layout_with_invalid_size
217
+ ENV["COLUMNS"] = "30"
218
+
219
+ commit_table_config = [
220
+ {:key=>:col1, :size=>0.8, :title=>"Column 1"},
221
+ {:key=>:col1, :size=>"hello!", :title=>"Column 2"},
222
+ ]
223
+
224
+ assert_raise(RuntimeError) { ConsoleTable.define(commit_table_config) }
225
+ end
226
+
227
+ private
228
+ def assert_output_equal(expected, actual)
229
+ expected_lines = expected.split("\n")
230
+ actual_lines = actual.split("\n")
231
+ assert_equal expected_lines.length, actual_lines.length
232
+ expected_lines.each_with_index do |expected_line, i|
233
+ actual_line = actual_lines[i]
234
+ assert_equal expected_line.rstrip, actual_line.rstrip
235
+ end
236
+
237
+ end
238
+ end
data/todo.txt ADDED
@@ -0,0 +1,2 @@
1
+ :border=>true on options, uses | instead of " " to space and adds 2 to the spacer count. prepends if true
2
+ perhaps :border=>:thin, :thick, thin does above, thick also adds a row of --'s between, or even smartly uses +'s for joins
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.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rod Hilton
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.9'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: colorize
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +82,8 @@ files:
68
82
  - Rakefile
69
83
  - console_table.gemspec
70
84
  - lib/console_table.rb
85
+ - test/console_table_test.rb
86
+ - todo.txt
71
87
  homepage: https://github.com/rodhilton/console_table
72
88
  licenses:
73
89
  - MIT
@@ -92,4 +108,5 @@ rubygems_version: 2.2.2
92
108
  signing_key:
93
109
  specification_version: 4
94
110
  summary: Simplifies printing tables of information to commandline consoles
95
- test_files: []
111
+ test_files:
112
+ - test/console_table_test.rb