fat_table 0.9.3 → 0.9.7
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/Gemfile +13 -0
- data/README.org +0 -80
- data/fat_table.gemspec +1 -13
- data/lib/fat_table/errors.rb +3 -0
- data/lib/fat_table/table.rb +41 -14
- data/lib/fat_table/version.rb +1 -1
- data/lib/fat_table.rb +1 -0
- metadata +9 -166
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0eecda446a24945c159963cc45088fdd281fa8e67acc995eacea8b0daa9f428b
|
4
|
+
data.tar.gz: 497feefa41678e0b95c257953c72d7a435cb692d70b4e59eabc681c69a758747
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 601e15e198b25d248c049e48484b4fe4c43fb83ee19fa8a7d477c5b1b91d3c99d4f5b5b6a9887bf0e532f93a37ee1616b301154dc0eeac01541bc2ae568d9c66
|
7
|
+
data.tar.gz: 10168ba22085112da7abe6cfb013554566920fbd0d3e166f3a0ff306b1d460cc611d4e96dd57e473431128a3027e8d33191c692e283c34f0771472938a2f9faa
|
data/Gemfile
CHANGED
@@ -4,3 +4,16 @@ gem 'rubocop-shopify', require: false
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in fat_table.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
gem 'bundler'
|
9
|
+
gem 'debug', '>= 1.0.0'
|
10
|
+
gem 'pry'
|
11
|
+
gem 'pry-doc'
|
12
|
+
gem 'rake', '~> 13.0'
|
13
|
+
gem 'redcarpet'
|
14
|
+
gem 'pg'
|
15
|
+
gem 'sqlite3'
|
16
|
+
gem 'rspec', '~> 3.0'
|
17
|
+
gem 'rubocop-rspec'
|
18
|
+
gem 'rubocop-performance'
|
19
|
+
gem 'simplecov'
|
data/README.org
CHANGED
@@ -79,90 +79,10 @@ org-mode buffer as an org-table, ready for processing by other code blocks.
|
|
79
79
|
- [[#quick-start][Quick Start]]
|
80
80
|
- [[#a-word-about-the-examples][A Word About the Examples]]
|
81
81
|
- [[#anatomy-of-a-table][Anatomy of a Table]]
|
82
|
-
- [[#columns][Columns]]
|
83
|
-
- [[#headers][Headers]]
|
84
|
-
- [[#groups][Groups]]
|
85
82
|
- [[#constructing-tables][Constructing Tables]]
|
86
|
-
- [[#empty-tables][Empty Tables]]
|
87
|
-
- [[#without-headers][Without Headers]]
|
88
|
-
- [[#with-headers][With Headers]]
|
89
|
-
- [[#forcing-string-type][Forcing String Type]]
|
90
|
-
- [[#designating-tolerant-columns][Designating "Tolerant" Columns]]
|
91
|
-
- [[#from-csv-or-org-mode-files-or-strings][From CSV or Org Mode files or strings]]
|
92
|
-
- [[#from-arrays-of-arrays][From Arrays of Arrays]]
|
93
|
-
- [[#in-ruby-code][In Ruby Code]]
|
94
|
-
- [[#in-emacs-org-files][In Emacs Org Files]]
|
95
|
-
- [[#from-arrays-of-hashes][From Arrays of Hashes]]
|
96
|
-
- [[#from-sql-queries][From SQL queries]]
|
97
|
-
- [[#marking-groups-in-input][Marking Groups in Input]]
|
98
|
-
- [[#manually][Manually]]
|
99
|
-
- [[#when-reading-in-tables][When Reading in Tables]]
|
100
83
|
- [[#accessing-parts-of-tables][Accessing Parts of Tables]]
|
101
|
-
- [[#rows][Rows]]
|
102
|
-
- [[#columns-1][Columns]]
|
103
|
-
- [[#cells][Cells]]
|
104
|
-
- [[#other-table-attributes][Other table attributes]]
|
105
84
|
- [[#operations-on-tables][Operations on Tables]]
|
106
|
-
- [[#example-input-tables][Example Input Tables]]
|
107
|
-
- [[#select][Select]]
|
108
|
-
- [[#selecting-existing-columns-also-of-omni][Selecting Existing Columns (Also of :omni)]]
|
109
|
-
- [[#copying-and-renaming-existing-columns][Copying and Renaming Existing Columns.]]
|
110
|
-
- [[#adding-new-columns][Adding New Columns]]
|
111
|
-
- [[#adding-constant-strings-and-other-types-in-select][Adding Constant Strings and Other Types in select]]
|
112
|
-
- [[#custom-instance-variables-and-hooks][Custom Instance Variables and Hooks]]
|
113
|
-
- [[#argument-order-and-boundaries][Argument Order and Boundaries]]
|
114
|
-
- [[#where][Where]]
|
115
|
-
- [[#order_by][Order_by]]
|
116
|
-
- [[#order_with][Order_with]]
|
117
|
-
- [[#group_by][Group_by]]
|
118
|
-
- [[#join][Join]]
|
119
|
-
- [[#join-types][Join Types]]
|
120
|
-
- [[#join-expressions][Join Expressions]]
|
121
|
-
- [[#join-examples][Join Examples]]
|
122
|
-
- [[#inner-joins][Inner Joins]]
|
123
|
-
- [[#left-and-right-joins][Left and Right Joins]]
|
124
|
-
- [[#full-join][Full Join]]
|
125
|
-
- [[#cross-join][Cross Join]]
|
126
|
-
- [[#set-operations][Set Operations]]
|
127
|
-
- [[#unions][Unions]]
|
128
|
-
- [[#intersections][Intersections]]
|
129
|
-
- [[#set-differences-with-except][Set Differences with Except]]
|
130
|
-
- [[#uniq-aka-distinct][Uniq (aka Distinct)]]
|
131
|
-
- [[#remove-groups-with-degroup][Remove groups with degroup!]]
|
132
85
|
- [[#formatting-tables][Formatting Tables]]
|
133
|
-
- [[#available-formatter-output-targets][Available Formatter Output Targets]]
|
134
|
-
- [[#output-media][Output Media]]
|
135
|
-
- [[#examples][Examples]]
|
136
|
-
- [[#to-text][To Text]]
|
137
|
-
- [[#to-org][To Org]]
|
138
|
-
- [[#to-term][To Term]]
|
139
|
-
- [[#to-latex][To LaTeX]]
|
140
|
-
- [[#to-aoa-array-of-arrays][To AoA (Array of Arrays)]]
|
141
|
-
- [[#to-aoh-array-of-hashes][To AoH (Array of Hashes)]]
|
142
|
-
- [[#formatting-directives][Formatting Directives]]
|
143
|
-
- [[#all-types-as-strings][All Types as Strings]]
|
144
|
-
- [[#numeric][Numeric]]
|
145
|
-
- [[#datetime][DateTime]]
|
146
|
-
- [[#boolean][Boolean]]
|
147
|
-
- [[#nilclass][NilClass]]
|
148
|
-
- [[#the-format-and-format_for-methods][The ~format~ and ~format_for~ methods]]
|
149
|
-
- [[#table-locations][Table Locations]]
|
150
|
-
- [[#location-priority][Location priority]]
|
151
|
-
- [[#type-and-column-priority][Type and Column priority]]
|
152
|
-
- [[#footers][Footers]]
|
153
|
-
- [[#adding-footers][Adding Footers]]
|
154
|
-
- [[#dynamic-labels][Dynamic Labels]]
|
155
|
-
- [[#aggregators][Aggregators]]
|
156
|
-
- [[#footer-objects][Footer objects]]
|
157
|
-
- [[#footer-examples][Footer Examples]]
|
158
|
-
- [[#built-in-aggregators][Built-in Aggregators]]
|
159
|
-
- [[#string-aggregators][String Aggregators]]
|
160
|
-
- [[#ruby-objects][Ruby Objects]]
|
161
|
-
- [[#lambdas][Lambdas]]
|
162
|
-
- [[#invoking-formatters][Invoking Formatters]]
|
163
|
-
- [[#by-instantiating-a-formatter][By Instantiating a Formatter]]
|
164
|
-
- [[#by-using-fattable-module-level-method-calls][By Using ~FatTable~ module-level method calls]]
|
165
|
-
- [[#by-calling-methods-on-table-objects][By Calling Methods on Table Objects]]
|
166
86
|
- [[#development][Development]]
|
167
87
|
- [[#contributing][Contributing]]
|
168
88
|
|
data/fat_table.gemspec
CHANGED
@@ -63,20 +63,8 @@ Gem::Specification.new do |spec|
|
|
63
63
|
spec.require_paths = ['lib']
|
64
64
|
spec.metadata['yard.run'] = 'yri' # use "yard" to build full HTML docs.
|
65
65
|
|
66
|
-
spec.add_development_dependency 'bundler'
|
67
|
-
spec.add_development_dependency 'debug', '>= 1.0.0'
|
68
|
-
spec.add_development_dependency 'pry'
|
69
|
-
spec.add_development_dependency 'pry-doc'
|
70
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
71
|
-
spec.add_development_dependency 'redcarpet'
|
72
|
-
spec.add_development_dependency 'pg'
|
73
|
-
spec.add_development_dependency 'sqlite3'
|
74
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
75
|
-
spec.add_development_dependency 'rubocop-rspec'
|
76
|
-
spec.add_development_dependency 'rubocop-performance'
|
77
|
-
spec.add_development_dependency 'simplecov'
|
78
|
-
|
79
66
|
spec.add_runtime_dependency 'fat_core', '>= 4.9.0'
|
67
|
+
spec.add_runtime_dependency 'csv'
|
80
68
|
spec.add_runtime_dependency 'rainbow'
|
81
69
|
spec.add_runtime_dependency 'sequel'
|
82
70
|
spec.add_runtime_dependency 'gem-path'
|
data/lib/fat_table/errors.rb
CHANGED
@@ -16,4 +16,7 @@ module FatTable
|
|
16
16
|
# Raised when an external resource is not available due to caller or
|
17
17
|
# programmer error or some failure of the external resource to be available.
|
18
18
|
class TransientError < StandardError; end
|
19
|
+
|
20
|
+
# Raise when an expected table was not found.
|
21
|
+
class NoTable < UserError; end
|
19
22
|
end
|
data/lib/fat_table/table.rb
CHANGED
@@ -156,14 +156,18 @@ module FatTable
|
|
156
156
|
File.open(fname, 'r') do |io|
|
157
157
|
from_csv_io(io, **types)
|
158
158
|
end
|
159
|
+
rescue NoTable
|
160
|
+
raise NoTable, "no table found in CSV file '#{fname}'"
|
159
161
|
end
|
160
162
|
|
161
163
|
# :category: Constructors
|
162
164
|
|
163
165
|
# Construct a Table from a CSV string +str+, treated in the same manner as
|
164
166
|
# the input from a CSV file in ::from_org_file.
|
165
|
-
def self.from_csv_string(str, **
|
166
|
-
from_csv_io(StringIO.new(str), **
|
167
|
+
def self.from_csv_string(str, has_headers: true, **)
|
168
|
+
from_csv_io(StringIO.new(str), has_headers:, **)
|
169
|
+
rescue NoTable
|
170
|
+
raise NoTable, "no table found in string '#{str[0..20]}...'"
|
167
171
|
end
|
168
172
|
|
169
173
|
# :category: Constructors
|
@@ -176,6 +180,8 @@ module FatTable
|
|
176
180
|
File.open(fname, 'r') do |io|
|
177
181
|
from_org_io(io, **types)
|
178
182
|
end
|
183
|
+
rescue NoTable
|
184
|
+
raise NoTable, "no table found in file '#{fname}'"
|
179
185
|
end
|
180
186
|
|
181
187
|
# :category: Constructors
|
@@ -184,6 +190,8 @@ module FatTable
|
|
184
190
|
# contents of an org-mode file in ::from_org_file.
|
185
191
|
def self.from_org_string(str, **types)
|
186
192
|
from_org_io(StringIO.new(str), **types)
|
193
|
+
rescue NoTable
|
194
|
+
raise NoTable, "no table found in string '#{str[0..20]...}'"
|
187
195
|
end
|
188
196
|
|
189
197
|
# :category: Constructors
|
@@ -275,9 +283,9 @@ module FatTable
|
|
275
283
|
# Construct table from an array of hashes or an array of any object that
|
276
284
|
# can respond to #to_h. If an array element is a nil, mark it as a group
|
277
285
|
# boundary in the Table.
|
278
|
-
def from_array_of_hashes(hashes, hlines: false, **
|
286
|
+
def from_array_of_hashes(hashes, hlines: false, **)
|
279
287
|
heads = hashes.first.keys
|
280
|
-
result = new(*heads, **
|
288
|
+
result = new(*heads, **)
|
281
289
|
hashes.each do |hsh|
|
282
290
|
if hsh.nil?
|
283
291
|
unless hlines
|
@@ -305,7 +313,7 @@ module FatTable
|
|
305
313
|
# hlines are stripped from the table, otherwise (:hlines yes) they are
|
306
314
|
# indicated with nil elements in the outer array as expected by this
|
307
315
|
# method when hlines is set true.
|
308
|
-
def from_array_of_arrays(rows, hlines: false, **
|
316
|
+
def from_array_of_arrays(rows, hlines: false, **)
|
309
317
|
headers = []
|
310
318
|
if !hlines
|
311
319
|
# Take the first row as headers
|
@@ -324,7 +332,7 @@ module FatTable
|
|
324
332
|
headers = (1..rows[0].size).to_a.map { |k| "col_#{k}".as_sym }
|
325
333
|
first_data_row = 0
|
326
334
|
end
|
327
|
-
result = new(*headers, **
|
335
|
+
result = new(*headers, **)
|
328
336
|
rows[first_data_row..-1].each do |row|
|
329
337
|
if row.nil?
|
330
338
|
unless hlines
|
@@ -342,24 +350,35 @@ module FatTable
|
|
342
350
|
result
|
343
351
|
end
|
344
352
|
|
345
|
-
def from_csv_io(io, **
|
346
|
-
result = new(**
|
347
|
-
|
348
|
-
|
349
|
-
|
353
|
+
def from_csv_io(io, has_headers: true, **)
|
354
|
+
result = new(**)
|
355
|
+
if has_headers
|
356
|
+
::CSV.new(io, headers: has_headers, header_converters: :symbol, skip_blanks: true).each do |row|
|
357
|
+
result << row.to_h
|
358
|
+
end
|
359
|
+
else
|
360
|
+
nfields = io.readline.split(',').size
|
361
|
+
io.seek(0, IO::SEEK_SET)
|
362
|
+
heads = (1..nfields).map {|n| "col_#{n}"}
|
363
|
+
::CSV.new(io, headers: heads, skip_blanks: true).each do |row|
|
364
|
+
result << row.to_h
|
365
|
+
end
|
350
366
|
end
|
351
367
|
result.normalize_boundaries
|
352
368
|
result
|
369
|
+
rescue StandardError
|
370
|
+
raise NoTable
|
353
371
|
end
|
354
372
|
|
355
373
|
# Form rows of table by reading the first table found in the org file. The
|
356
374
|
# header row must be marked with an hline (i.e, a row that looks like
|
357
375
|
# '|---+--...--|') and groups of rows may be marked with hlines to
|
358
376
|
# indicate group boundaries.
|
359
|
-
def from_org_io(io, **
|
377
|
+
def from_org_io(io, **)
|
360
378
|
table_re = /\A\s*\|/
|
361
379
|
hrule_re = /\A\s*\|[-+]+/
|
362
380
|
rows = []
|
381
|
+
ncols = nil
|
363
382
|
table_found = false
|
364
383
|
header_found = false
|
365
384
|
io.each do |line|
|
@@ -388,10 +407,17 @@ module FatTable
|
|
388
407
|
break
|
389
408
|
else
|
390
409
|
line = line.sub(/\A\s*\|/, '').sub(/\|\s*\z/, '')
|
391
|
-
rows
|
410
|
+
# Don't include any rows with a size different from that
|
411
|
+
# established by the header row.
|
412
|
+
cols = line.split('|').map(&:clean)
|
413
|
+
ncols ||= cols.size
|
414
|
+
next unless cols.size == ncols
|
415
|
+
|
416
|
+
rows << cols
|
392
417
|
end
|
393
418
|
end
|
394
|
-
|
419
|
+
raise NoTable unless table_found
|
420
|
+
from_array_of_arrays(rows, hlines: true, **)
|
395
421
|
end
|
396
422
|
end
|
397
423
|
|
@@ -717,6 +743,7 @@ module FatTable
|
|
717
743
|
self.explicit_boundaries = explicit_boundaries.uniq.sort
|
718
744
|
end
|
719
745
|
explicit_boundaries
|
746
|
+
self
|
720
747
|
end
|
721
748
|
|
722
749
|
# Return the explicit_boundaries, augmented by an implicit boundary for
|
data/lib/fat_table/version.rb
CHANGED
data/lib/fat_table.rb
CHANGED
metadata
CHANGED
@@ -1,197 +1,42 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fat_table
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel E. Doherty
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2024-12-26 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: debug
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.0
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0.0
|
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'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry-doc
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rake
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '13.0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '13.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: redcarpet
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: pg
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: sqlite3
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '3.0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "~>"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '3.0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: rubocop-rspec
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rubocop-performance
|
13
|
+
name: fat_core
|
155
14
|
requirement: !ruby/object:Gem::Requirement
|
156
15
|
requirements:
|
157
16
|
- - ">="
|
158
17
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
160
|
-
type: :
|
18
|
+
version: 4.9.0
|
19
|
+
type: :runtime
|
161
20
|
prerelease: false
|
162
21
|
version_requirements: !ruby/object:Gem::Requirement
|
163
22
|
requirements:
|
164
23
|
- - ">="
|
165
24
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
25
|
+
version: 4.9.0
|
167
26
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
27
|
+
name: csv
|
169
28
|
requirement: !ruby/object:Gem::Requirement
|
170
29
|
requirements:
|
171
30
|
- - ">="
|
172
31
|
- !ruby/object:Gem::Version
|
173
32
|
version: '0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: fat_core
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - ">="
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: 4.9.0
|
188
33
|
type: :runtime
|
189
34
|
prerelease: false
|
190
35
|
version_requirements: !ruby/object:Gem::Requirement
|
191
36
|
requirements:
|
192
37
|
- - ">="
|
193
38
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
39
|
+
version: '0'
|
195
40
|
- !ruby/object:Gem::Dependency
|
196
41
|
name: rainbow
|
197
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -320,7 +165,6 @@ licenses: []
|
|
320
165
|
metadata:
|
321
166
|
allowed_push_host: https://rubygems.org
|
322
167
|
yard.run: yri
|
323
|
-
post_install_message:
|
324
168
|
rdoc_options: []
|
325
169
|
require_paths:
|
326
170
|
- lib
|
@@ -335,8 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
179
|
- !ruby/object:Gem::Version
|
336
180
|
version: '0'
|
337
181
|
requirements: []
|
338
|
-
rubygems_version: 3.
|
339
|
-
signing_key:
|
182
|
+
rubygems_version: 3.6.2
|
340
183
|
specification_version: 4
|
341
184
|
summary: Provides tools for working with tables as a data type.
|
342
185
|
test_files: []
|