fat_table 0.4.0 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,5 +2,5 @@
2
2
 
3
3
  module FatTable
4
4
  # The current version of FatTable
5
- VERSION = '0.4.0'
5
+ VERSION = '0.5.3'
6
6
  end
data/lib/fat_table.rb CHANGED
@@ -19,9 +19,12 @@ module FatTable
19
19
 
20
20
  require 'fat_table/version'
21
21
  require 'fat_table/patches'
22
+ require 'ext/array'
22
23
  require 'fat_table/evaluator'
24
+ require 'fat_table/convert'
23
25
  require 'fat_table/column'
24
26
  require 'fat_table/table'
27
+ require 'fat_table/footer'
25
28
  require 'fat_table/formatters'
26
29
  require 'fat_table/db_handle'
27
30
  require 'fat_table/errors'
@@ -58,22 +61,22 @@ module FatTable
58
61
 
59
62
  # Return an empty FatTable::Table object. You can use FatTable::Table#add_row
60
63
  # or FatTable::Table#add_column to populate the table with data.
61
- def self.new
62
- Table.new
64
+ def self.new(*args, tolerant_columns: [])
65
+ Table.new(*args, tolerant_columns: tolerant_columns)
63
66
  end
64
67
 
65
68
  # Construct a FatTable::Table from the contents of a CSV file given by the
66
69
  # file name +fname+. Headers will be taken from the first row and converted to
67
70
  # symbols.
68
- def self.from_csv_file(fname)
69
- Table.from_csv_file(fname)
71
+ def self.from_csv_file(fname, tolerant_columns: [])
72
+ Table.from_csv_file(fname, tolerant_columns: tolerant_columns)
70
73
  end
71
74
 
72
75
  # Construct a FatTable::Table from the string +str+, treated in the same
73
76
  # manner as if read the input from a CSV file. Headers will be taken from the
74
77
  # first row and converted to symbols.
75
- def self.from_csv_string(str)
76
- Table.from_csv_string(str)
78
+ def self.from_csv_string(str, tolerant_columns: [])
79
+ Table.from_csv_string(str, tolerant_columns: tolerant_columns)
77
80
  end
78
81
 
79
82
  # Construct a FatTable::Table from the first table found in the Emacs org-mode
@@ -81,8 +84,8 @@ module FatTable
81
84
  # is an hline. Otherwise, synthetic headers of the form +:col_1+, +:col_2+,
82
85
  # etc. are created. Any other hlines will be treated as marking a boundary in
83
86
  # the table.
84
- def self.from_org_file(fname)
85
- Table.from_org_file(fname)
87
+ def self.from_org_file(fname, tolerant_columns: [])
88
+ Table.from_org_file(fname, tolerant_columns: tolerant_columns)
86
89
  end
87
90
 
88
91
  # Construct a FatTable::Table from the first table found in the string +str+,
@@ -90,8 +93,8 @@ module FatTable
90
93
  # are taken from the first row if the second row is an hrule. Otherwise,
91
94
  # synthetic headers of the form :col_1, :col_2, etc. are created. Any other
92
95
  # hlines will be treated as marking a boundary in the table.
93
- def self.from_org_string(str)
94
- Table.from_org_string(str)
96
+ def self.from_org_string(str, tolerant_columns: [])
97
+ Table.from_org_string(str, tolerant_columns: tolerant_columns)
95
98
  end
96
99
 
97
100
  # Construct a FatTable::Table from the array of arrays +aoa+. By default, with
@@ -105,8 +108,8 @@ module FatTable
105
108
  # org-mode code blocks, by default (+:hlines no+) all hlines are stripped from
106
109
  # the table, otherwise (+:hlines yes+) they are indicated with nil elements in
107
110
  # the outer array.
108
- def self.from_aoa(aoa, hlines: false)
109
- Table.from_aoa(aoa, hlines: hlines)
111
+ def self.from_aoa(aoa, hlines: false, tolerant_columns: [])
112
+ Table.from_aoa(aoa, hlines: hlines, tolerant_columns: tolerant_columns)
110
113
  end
111
114
 
112
115
  # Construct a FatTable::Table from the array of hashes +aoh+, which can be an
@@ -114,8 +117,8 @@ module FatTable
114
117
  # interpret nil separators as marking boundaries in the new Table. All hashes
115
118
  # must have the same keys, which, converted to symbols, become the headers for
116
119
  # the new Table.
117
- def self.from_aoh(aoh, hlines: false)
118
- Table.from_aoh(aoh, hlines: hlines)
120
+ def self.from_aoh(aoh, hlines: false, tolerant_columns: [])
121
+ Table.from_aoh(aoh, hlines: hlines, tolerant_columns: tolerant_columns)
119
122
  end
120
123
 
121
124
  # Construct a FatTable::Table from another FatTable::Table. Inherit any group
@@ -127,8 +130,8 @@ module FatTable
127
130
  # Construct a Table by running a SQL query against the database set up with
128
131
  # FatTable.connect. Return the Table with the query results as rows and the
129
132
  # headers from the query, converted to symbols, as headers.
130
- def self.from_sql(query)
131
- Table.from_sql(query)
133
+ def self.from_sql(query, tolerant_columns: [])
134
+ Table.from_sql(query, tolerant_columns: tolerant_columns)
132
135
  end
133
136
 
134
137
  ########################################################################
data/md/README.md CHANGED
@@ -1109,8 +1109,7 @@ will raise an exception.
1109
1109
 
1110
1110
  - **`first`:** the first non-nil item in the column,
1111
1111
  - **`last`:** the last non-nil item in the column,
1112
- - **`rng`:** form a string of the form `"#{first}..#{last}"` to show the range of
1113
- values in the column,
1112
+ - **`range`:** form a Range ~~{min}..{max}~ to show the range of values in the column,
1114
1113
  - **`sum`:** for `Numeric` and `String` columns, apply ’+’ to all the non-nil
1115
1114
  values,
1116
1115
  - **`count`:** the number of non-nil values in the column,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fat_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel E. Doherty
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-02 00:00:00.000000000 Z
11
+ date: 2022-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
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'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: rspec
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -283,12 +297,24 @@ files:
283
297
  - TODO.org
284
298
  - bin/ft_console
285
299
  - bin/setup
300
+ - examples/create_trans.sql
301
+ - examples/quick.pdf
302
+ - examples/quick.png
303
+ - examples/quick.ppm
304
+ - examples/quick.tex
305
+ - examples/quick_small.png
306
+ - examples/quicktable.tex
307
+ - examples/trades.db
308
+ - examples/trans.csv
286
309
  - fat_table.gemspec
310
+ - lib/ext/array.rb
287
311
  - lib/fat_table.rb
288
312
  - lib/fat_table/column.rb
313
+ - lib/fat_table/convert.rb
289
314
  - lib/fat_table/db_handle.rb
290
315
  - lib/fat_table/errors.rb
291
316
  - lib/fat_table/evaluator.rb
317
+ - lib/fat_table/footer.rb
292
318
  - lib/fat_table/formatters.rb
293
319
  - lib/fat_table/formatters/aoa_formatter.rb
294
320
  - lib/fat_table/formatters/aoh_formatter.rb
@@ -306,7 +332,7 @@ licenses: []
306
332
  metadata:
307
333
  allowed_push_host: https://rubygems.org
308
334
  yard.run: yri
309
- post_install_message:
335
+ post_install_message:
310
336
  rdoc_options: []
311
337
  require_paths:
312
338
  - lib
@@ -322,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
322
348
  version: '0'
323
349
  requirements: []
324
350
  rubygems_version: 3.3.3
325
- signing_key:
351
+ signing_key:
326
352
  specification_version: 4
327
353
  summary: Provides tools for working with tables as a data type.
328
354
  test_files: []