table_pal 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4b1c3f5234498b916d764d00cc8e9d6a050fd91cac4bc803791b015934494e86
4
+ data.tar.gz: 42e49d8eee541a96e21090e467f3abdd87bd96545b0a6dacb12e67cacda061d2
5
+ SHA512:
6
+ metadata.gz: 7f7cb22a2a031b3d48bad82329d3d76393d855491b78be17e218b7b235db23b06b0a47c6a54a5725d4d9ea178b761b51039635fa81c605a59d46ce844d8677a0
7
+ data.tar.gz: 8dfea9dfe91bc61d63f03ad30aced9bfafbf756c07e0b3aa0027b6eda44123d93e14592c1fee490454f34cf397a7f27cf9646ab6a39f304f3ca223a49eccc3f0
data/.rubocop.yml ADDED
@@ -0,0 +1,108 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6.4
3
+ Layout/SpaceInLambdaLiteral:
4
+ EnforcedStyle: require_space
5
+
6
+ Layout/AlignHash:
7
+ EnforcedColonStyle: table
8
+
9
+ Layout/EmptyLinesAroundClassBody:
10
+ EnforcedStyle: empty_lines_except_namespace
11
+
12
+ Lint/UnusedMethodArgument:
13
+ AutoCorrect: false
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: false
17
+
18
+ Metrics/CyclomaticComplexity:
19
+ Enabled: false
20
+
21
+ Metrics/PerceivedComplexity:
22
+ Enabled: false
23
+
24
+ Metrics/LineLength:
25
+ Enabled: false
26
+
27
+ Metrics/ModuleLength:
28
+ Enabled: false
29
+
30
+ Metrics/ParameterLists:
31
+ Enabled: false
32
+
33
+ Metrics/MethodLength:
34
+ Enabled: false
35
+
36
+ Naming/VariableNumber:
37
+ Enabled: false
38
+
39
+ Style/ClassAndModuleChildren:
40
+ Enabled: false
41
+
42
+ Style/ClassVars:
43
+ Enabled: false
44
+
45
+ Style/Documentation:
46
+ Enabled: false
47
+
48
+ Style/EmptyMethod:
49
+ Enabled: false
50
+
51
+ Style/FrozenStringLiteralComment:
52
+ Enabled: false
53
+
54
+ Style/MutableConstant:
55
+ Enabled: false
56
+
57
+ Style/StabbyLambdaParentheses:
58
+ EnforcedStyle: require_no_parentheses
59
+
60
+ # Layout/AlignArray:
61
+ # Layout/AlignHash:
62
+ # Layout/AlignParameters:
63
+ # Layout/EmptyLineBetweenDefs:
64
+ # Layout/EmptyLinesAroundClassBody:
65
+ # Layout/EmptyLinesAroundExceptionHandlingKeywords:
66
+ # Layout/EmptyLinesAroundModuleBody:
67
+ # Layout/ExtraSpacing:
68
+ # Layout/LeadingBlankLines:
69
+ # Layout/SpaceAroundOperators:
70
+ # Layout/SpaceBeforeFirstArg:
71
+ # Layout/SpaceInLambdaLiteral:
72
+ # Lint/AmbiguousOperator:
73
+ # Lint/AmbiguousRegexpLiteral:
74
+ # Lint/HandleExceptions:
75
+ # Lint/IneffectiveAccessModifier:
76
+ # Lint/ToJSON:
77
+ # Lint/UnderscorePrefixedVariableName:
78
+ # Lint/UnneededSplatExpansion:
79
+ # Lint/UnreachableCode:
80
+ # Lint/UselessAccessModifier:
81
+ # Lint/UselessAssignment:
82
+ # Lint/Void:
83
+ # Metrics/AbcSize:
84
+ # Metrics/BlockLength:
85
+ # Metrics/ClassLength:
86
+ # Metrics/CyclomaticComplexity:
87
+ # Metrics/LineLength:
88
+ # Metrics/MethodLength:
89
+ # Metrics/ModuleLength:
90
+ # Metrics/ParameterLists:
91
+ # Metrics/PerceivedComplexity:
92
+ # Naming/ClassAndModuleCamelCase:
93
+ # Naming/RescuedExceptionsVariableName:
94
+ # Naming/UncommunicativeMethodParamName:
95
+ # Naming/VariableNumber:
96
+ # Security/MarshalLoad:
97
+ # Style/ClassVars:
98
+ # Style/Documentation:
99
+ # Style/EmptyMethod:
100
+ # Style/FormatStringToken:
101
+ # Style/IfUnlessModifier:
102
+ # Style/MixinUsage:
103
+ # Style/MutableConstant:
104
+ # Style/NumericLiterals:
105
+ # Style/NumericPredicate:
106
+ # Style/SingleLineMethods:
107
+ # Style/StringLiterals:
108
+ # Style/TernaryParentheses:
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ table_pal (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.0)
10
+ coderay (1.1.2)
11
+ interesting_methods (0.1.2)
12
+ jaro_winkler (1.5.2)
13
+ method_source (0.9.2)
14
+ minitest (5.12.2)
15
+ parallel (1.17.0)
16
+ parser (2.6.3.0)
17
+ ast (~> 2.4.0)
18
+ pry (0.12.2)
19
+ coderay (~> 1.1.0)
20
+ method_source (~> 0.9.0)
21
+ rainbow (3.0.0)
22
+ rake (13.0.0)
23
+ rubocop (0.71.0)
24
+ jaro_winkler (~> 1.5.1)
25
+ parallel (~> 1.10)
26
+ parser (>= 2.6)
27
+ rainbow (>= 2.2.2, < 4.0)
28
+ ruby-progressbar (~> 1.7)
29
+ unicode-display_width (>= 1.4.0, < 1.7)
30
+ ruby-progressbar (1.10.1)
31
+ unicode-display_width (1.6.0)
32
+
33
+ PLATFORMS
34
+ ruby
35
+
36
+ DEPENDENCIES
37
+ interesting_methods (~> 0.1)
38
+ minitest (~> 5.12)
39
+ pry (~> 0.12)
40
+ rake (~> 13.0)
41
+ rubocop (~> 0.71)
42
+ table_pal!
43
+
44
+ BUNDLED WITH
45
+ 2.0.2
data/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Table Pal
2
+
3
+ This gem lets you print tables with ease.
4
+
5
+ It's mainly used by myself and isn't necessarily meant for widespread public comsumption just yet.
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |task|
4
+ task.pattern = 'tests/*_test.rb'
5
+ end
6
+
7
+ task default: 'test'
data/lib/cell.rb ADDED
@@ -0,0 +1,52 @@
1
+ module TablePal
2
+ class Cell
3
+
4
+ using Colours
5
+
6
+ attr_reader :row, :column, :content, :formatter, :justification, :colour
7
+
8
+ def initialize(row:, column:, content: '', formatter: nil, justification: nil, colour: nil)
9
+ @row = row
10
+ @column = column
11
+ @content = content
12
+ @formatter = formatter || row.formatter || NoFormatting
13
+ @justification = justification || row.justification || column.justification
14
+ @colour = colour || row.colour || column.colour || :itself
15
+ end
16
+
17
+ def formatted(justified: false, coloured: false)
18
+ result = format(content)
19
+ result = justify(result) if justified
20
+ result = colourize(result) if coloured
21
+
22
+ result
23
+ end
24
+
25
+ def format(result)
26
+ return '' if result == ''
27
+
28
+ formatter.call(result).to_s
29
+ end
30
+
31
+ def justify(result)
32
+ result.send(justification_to_method, column.width)
33
+ end
34
+
35
+ def colourize(result)
36
+ result.send(colour)
37
+ end
38
+
39
+ def width
40
+ formatted.length
41
+ end
42
+
43
+ def justification_to_method
44
+ {
45
+ left: :ljust,
46
+ right: :rjust,
47
+ center: :center
48
+ }[justification]
49
+ end
50
+
51
+ end
52
+ end
data/lib/colours.rb ADDED
@@ -0,0 +1,286 @@
1
+ module Colours
2
+ refine String do
3
+ def reset
4
+ ansi(0)
5
+ end
6
+
7
+ # FORMATTING
8
+
9
+ def bold
10
+ style 1
11
+ end
12
+
13
+ def faint
14
+ style 2
15
+ end
16
+
17
+ def italic
18
+ style 3
19
+ end
20
+
21
+ def underline
22
+ style 4
23
+ end
24
+
25
+ # FOREGROUND COLOURS
26
+
27
+ def black
28
+ style 30
29
+ end
30
+
31
+ def blue
32
+ style 34
33
+ end
34
+
35
+ def cyan
36
+ style 36
37
+ end
38
+
39
+ def green
40
+ style 32
41
+ end
42
+
43
+ def magenta
44
+ style 35
45
+ end
46
+
47
+ # TODO: wrong number
48
+ def purple
49
+ style 35
50
+ end
51
+
52
+ def red
53
+ style 31
54
+ end
55
+
56
+ def white
57
+ style 37
58
+ end
59
+
60
+ def yellow
61
+ style 33
62
+ end
63
+
64
+ def bright_black
65
+ style 90
66
+ end
67
+
68
+ def bright_blue
69
+ style 94
70
+ end
71
+
72
+ def bright_cyan
73
+ style 96
74
+ end
75
+
76
+ def bright_green
77
+ style 92
78
+ end
79
+
80
+ def bright_magenta
81
+ style 95
82
+ end
83
+
84
+ def bright_red
85
+ style 91
86
+ end
87
+
88
+ def bright_white
89
+ style 97
90
+ end
91
+
92
+ def bright_yellow
93
+ style 93
94
+ end
95
+
96
+ # BACKGROUND COLOURS
97
+
98
+ def bg_black
99
+ style 40
100
+ end
101
+
102
+ def bg_blue
103
+ style 44
104
+ end
105
+
106
+ def bg_cyan
107
+ style 46
108
+ end
109
+
110
+ def bg_green
111
+ style 42
112
+ end
113
+
114
+ def bg_magenta
115
+ style 45
116
+ end
117
+
118
+ def bg_red
119
+ style 41
120
+ end
121
+
122
+ def bg_white
123
+ style 47
124
+ end
125
+
126
+ def bg_yellow
127
+ style 43
128
+ end
129
+
130
+ # ANSI 256 COLOURS
131
+
132
+ def bg(code)
133
+ style "48;5;#{code}"
134
+ end
135
+
136
+ def fg(code)
137
+ style "38;5;#{code}"
138
+ end
139
+
140
+ # MISC
141
+
142
+ def backticks
143
+ backtick + self + backtick
144
+ end
145
+
146
+ def near_black
147
+ bg(240)
148
+ end
149
+
150
+ private
151
+
152
+ def ansi(code)
153
+ "\e[#{code}m"
154
+ end
155
+
156
+ def backtick
157
+ '`'.yellow
158
+ end
159
+
160
+ def style(code)
161
+ ansi(code) + self + reset
162
+ end
163
+ end
164
+
165
+ class Demo
166
+
167
+ class << self
168
+
169
+ using Colours
170
+
171
+ def all_ansi_256
172
+ puts
173
+ display_all_ansi_256('bg')
174
+ puts
175
+ puts
176
+ display_all_ansi_256('fg')
177
+ puts
178
+ puts
179
+ display_all(styles)
180
+ puts
181
+ puts
182
+ display_all(fg_colours)
183
+ puts
184
+ puts
185
+ display_all(bright_colours)
186
+ puts
187
+ puts
188
+ display_all(bg_colours)
189
+ puts
190
+ puts
191
+ end
192
+
193
+ private
194
+
195
+ def display_all(formats)
196
+ codes_displayed = 1
197
+
198
+ formats.each do |method, complementary_method|
199
+ print ".#{method}".ljust(col_width).send(method).send(complementary_method)
200
+
201
+ codes_displayed += 1
202
+
203
+ if codes_displayed * col_width > screen_width
204
+ puts
205
+ codes_displayed = 1
206
+ end
207
+ end
208
+ end
209
+
210
+ def styles
211
+ {
212
+ bold: :white,
213
+ faint: :white,
214
+ italic: :white,
215
+ underline: :white
216
+ }
217
+ end
218
+
219
+ def fg_colours
220
+ {
221
+ black: :near_black,
222
+ blue: :bg_black,
223
+ cyan: :bg_black,
224
+ green: :bg_black,
225
+ magenta: :bg_black,
226
+ red: :bg_black,
227
+ white: :bg_black,
228
+ yellow: :bg_black
229
+ }
230
+ end
231
+
232
+ def bright_colours
233
+ {
234
+ bright_black: :bg_black,
235
+ bright_blue: :bg_black,
236
+ bright_cyan: :bg_black,
237
+ bright_green: :bg_black,
238
+ bright_magenta: :bg_black,
239
+ bright_red: :bg_black,
240
+ bright_white: :bg_black,
241
+ bright_yellow: :bg_black
242
+ }
243
+ end
244
+
245
+ def bg_colours
246
+ {
247
+ bg_black: :white,
248
+ bg_blue: :black,
249
+ bg_cyan: :black,
250
+ bg_green: :black,
251
+ bg_magenta: :black,
252
+ bg_red: :black,
253
+ bg_white: :black,
254
+ bg_yellow: :black
255
+ }
256
+ end
257
+
258
+ def display_all_ansi_256(method)
259
+ # Use `Colours::Demo.all_ansi_256` to see colours available
260
+
261
+ codes_displayed = 1
262
+
263
+ 256.times do |code|
264
+ print ".#{method}(#{code})".ljust(col_width).send(method, code).fg(89)
265
+
266
+ codes_displayed += 1
267
+
268
+ if codes_displayed * col_width + 2 > screen_width
269
+ puts
270
+ codes_displayed = 1
271
+ end
272
+ end
273
+ end
274
+
275
+ def col_width
276
+ @col_width ||= '.bright_magenta '.length
277
+ end
278
+
279
+ def screen_width
280
+ @screen_width ||= `tput cols`.to_i
281
+ end
282
+
283
+ end
284
+
285
+ end
286
+ end
data/lib/column.rb ADDED
@@ -0,0 +1,29 @@
1
+ module TablePal
2
+ class Column
3
+
4
+ attr_reader :table, :left_padding, :right_padding, :left_border, :right_border, :justification, :colour
5
+
6
+ def initialize(table:, left_padding: ' ', right_padding: ' ', left_border: '', right_border: '|', justification: :left, colour: nil)
7
+ @table = table
8
+ @left_padding = left_padding
9
+ @right_padding = right_padding
10
+ @left_border = left_border
11
+ @right_border = right_border
12
+ @justification = justification
13
+ @colour = colour
14
+ end
15
+
16
+ def width
17
+ table.select_cells(column: self).max_by(&:width).width
18
+ end
19
+
20
+ def left_padding_char(char)
21
+ char * left_padding.length
22
+ end
23
+
24
+ def right_padding_char(char)
25
+ char * right_padding.length
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,11 @@
1
+ module TablePal
2
+ class CSVFormatted
3
+
4
+ def initialize(table:)
5
+ table.rows.each do |row|
6
+ puts row.cells_including_empty.map(&:formatted).join(',')
7
+ end
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module TablePal
2
+ class CSVUnformatted
3
+
4
+ def initialize(table:)
5
+ table.rows.each do |row|
6
+ puts row.cells_including_empty.map(&:content).join(',')
7
+ end
8
+ end
9
+
10
+ end
11
+ end
data/lib/formatters.rb ADDED
@@ -0,0 +1,7 @@
1
+ module TablePal
2
+ Dollar = -> content { format('$%.2f', content) }
3
+ FourFractionDigits = -> content { format('%.4f', content) }
4
+ NoFormatting = -> content { content }
5
+ Titleize = -> content { content.titleize }
6
+ Upper = -> content { content.upcase }
7
+ end
data/lib/plain_text.rb ADDED
@@ -0,0 +1,67 @@
1
+ module TablePal
2
+ class PlainText
3
+
4
+ attr_reader :table
5
+
6
+ def initialize(table:)
7
+ @table = table
8
+
9
+ table.rows.each do |row|
10
+ print_row(row)
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def print_row(row)
17
+ row.cells_including_empty.each do |cell|
18
+ print_cell(cell)
19
+ end
20
+
21
+ puts
22
+
23
+ if row.heading
24
+ underline
25
+ empty
26
+ elsif row.subheading
27
+ empty
28
+ end
29
+ end
30
+
31
+ def print_cell(cell)
32
+ print cell.column.left_border
33
+ print cell.column.left_padding
34
+ print cell.formatted(justified: true)
35
+ print cell.column.right_padding
36
+ print cell.column.right_border
37
+ end
38
+
39
+ def underline
40
+ table.columns.map do |column|
41
+ char = '-'
42
+ print column.left_border
43
+ print column.left_padding_char(char)
44
+ print char * column.width
45
+ print column.right_padding_char(char)
46
+ print column.right_border
47
+ end
48
+
49
+ puts
50
+ end
51
+
52
+ def empty
53
+ row = table.create_row
54
+
55
+ row.empty_cells.each do |cell|
56
+ print cell.column.left_border
57
+ print cell.column.left_padding
58
+ print cell.formatted(justified: true)
59
+ print cell.column.right_padding
60
+ print cell.column.right_border
61
+ end
62
+
63
+ puts
64
+ end
65
+
66
+ end
67
+ end
@@ -0,0 +1,61 @@
1
+ module TablePal
2
+ class PlainTextColoured
3
+
4
+ attr_reader :table
5
+
6
+ def initialize(table:)
7
+ @table = table
8
+
9
+ table.rows.each do |row|
10
+ print_row(row)
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def print_row(row)
17
+ row.cells_including_empty.each do |cell|
18
+ print_cell(cell)
19
+ end
20
+
21
+ puts
22
+
23
+ if row.heading
24
+ underline
25
+ empty
26
+ elsif row.subheading
27
+ empty
28
+ end
29
+ end
30
+
31
+ def print_cell(cell)
32
+ print cell.column.left_border
33
+ print cell.column.left_padding
34
+ print cell.formatted(justified: true, coloured: true)
35
+ print cell.column.right_padding
36
+ print cell.column.right_border
37
+ end
38
+
39
+ def underline
40
+ table.columns.map do |column|
41
+ char = '-'
42
+ print column.left_border
43
+ print column.left_padding_char(char)
44
+ print char * column.width
45
+ print column.right_padding_char(char)
46
+ print column.right_border
47
+ end
48
+
49
+ puts
50
+ end
51
+
52
+ def empty
53
+ table.create_row.empty_cells.each do |cell|
54
+ print_cell(cell)
55
+ end
56
+
57
+ puts
58
+ end
59
+
60
+ end
61
+ end
data/lib/requires.rb ADDED
@@ -0,0 +1,11 @@
1
+ require_relative 'colours'
2
+ require_relative 'table_pal'
3
+ require_relative 'cell'
4
+ require_relative 'column'
5
+ require_relative 'csv_formatted'
6
+ require_relative 'csv_unformatted'
7
+ require_relative 'formatters'
8
+ require_relative 'plain_text'
9
+ require_relative 'plain_text_coloured'
10
+ require_relative 'row'
11
+ require_relative 'table'
data/lib/row.rb ADDED
@@ -0,0 +1,44 @@
1
+ module TablePal
2
+ class Row
3
+
4
+ attr_reader :table, :formatter, :heading, :subheading, :justification, :colour
5
+
6
+ def initialize(table:, formatter: nil, heading: false, subheading: false, justification: nil, colour: nil)
7
+ @table = table
8
+ @formatter = formatter
9
+ @heading = heading
10
+ @subheading = subheading
11
+ @justification = justification
12
+ @colour = colour
13
+ end
14
+
15
+ def cells_including_empty
16
+ table.columns.map do |column|
17
+ find_cell(column) || create_cell(column)
18
+ end
19
+ end
20
+
21
+ def underline_cells
22
+ table.columns.map do |column|
23
+ table.create_cell(row: self, column: column, content: '-' * column.width)
24
+ end
25
+ end
26
+
27
+ def empty_cells
28
+ table.columns.map do |column|
29
+ table.create_cell(row: self, column: column)
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def find_cell(column)
36
+ table.find_cell(row: self, column: column)
37
+ end
38
+
39
+ def create_cell(column)
40
+ table.create_cell(row: self, column: column)
41
+ end
42
+
43
+ end
44
+ end
data/lib/table.rb ADDED
@@ -0,0 +1,43 @@
1
+ module TablePal
2
+ class Table
3
+
4
+ attr_reader :rows, :columns, :cells
5
+
6
+ def initialize
7
+ @rows = []
8
+ @columns = []
9
+ @cells = []
10
+ end
11
+
12
+ def create_row(options = {})
13
+ Row.new(options.merge(table: self)).tap do |row|
14
+ @rows << row
15
+ end
16
+ end
17
+
18
+ def create_underline
19
+ Row.new(table: self).cells_as_underline
20
+ end
21
+
22
+ def create_column(options = {})
23
+ Column.new(options.merge(table: self)).tap do |column|
24
+ @columns << column
25
+ end
26
+ end
27
+
28
+ def create_cell(options = {})
29
+ Cell.new(options).tap do |cell|
30
+ @cells << cell
31
+ end
32
+ end
33
+
34
+ def find_cell(row:, column:)
35
+ cells.find { |cell| cell.row == row && cell.column == column }
36
+ end
37
+
38
+ def select_cells(column:)
39
+ cells.select { |cell| cell.column == column }
40
+ end
41
+
42
+ end
43
+ end
data/lib/table_pal.rb ADDED
@@ -0,0 +1,2 @@
1
+ module TablePal
2
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module TablePal
2
+ VERSION = '0.1.0'
3
+ end
data/table_pal.gemspec ADDED
@@ -0,0 +1,22 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ require 'version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'table_pal'
8
+ spec.version = TablePal::VERSION
9
+ spec.authors = ['Sean Lerner']
10
+ spec.email = ['sean@@smallcity.ca']
11
+ spec.summary = 'Aids creating tables'
12
+ spec.homepage = 'https://github.com/seanlerner/table_pal'
13
+ spec.license = 'MIT'
14
+ spec.files = `git ls-files`.split.reject { |f| f.match('test') }
15
+ spec.require_paths = ['lib']
16
+
17
+ spec.add_development_dependency 'interesting_methods', '~> 0.1'
18
+ spec.add_development_dependency 'minitest', '~> 5.12'
19
+ spec.add_development_dependency 'pry', '~> 0.12'
20
+ spec.add_development_dependency 'rake', '~> 13.0'
21
+ spec.add_development_dependency 'rubocop', '~> 0.71'
22
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: table_pal
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sean Lerner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: interesting_methods
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.12'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '13.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '13.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.71'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.71'
83
+ description:
84
+ email:
85
+ - sean@@smallcity.ca
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".rubocop.yml"
91
+ - Gemfile
92
+ - Gemfile.lock
93
+ - README.md
94
+ - Rakefile
95
+ - lib/cell.rb
96
+ - lib/colours.rb
97
+ - lib/column.rb
98
+ - lib/csv_formatted.rb
99
+ - lib/csv_unformatted.rb
100
+ - lib/formatters.rb
101
+ - lib/plain_text.rb
102
+ - lib/plain_text_coloured.rb
103
+ - lib/requires.rb
104
+ - lib/row.rb
105
+ - lib/table.rb
106
+ - lib/table_pal.rb
107
+ - lib/version.rb
108
+ - table_pal.gemspec
109
+ homepage: https://github.com/seanlerner/table_pal
110
+ licenses:
111
+ - MIT
112
+ metadata: {}
113
+ post_install_message:
114
+ rdoc_options: []
115
+ require_paths:
116
+ - lib
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ requirements: []
128
+ rubygems_version: 3.0.3
129
+ signing_key:
130
+ specification_version: 4
131
+ summary: Aids creating tables
132
+ test_files: []