* TODO Specify Column Widths Allow a formatter to specify column widths. This could be a number of characters, which would be interpreted as a number of "ems" for LaTeX. Cell content larger than the width would be truncated. Any column without a width specified would be set at the width of the longest value in that cell, after initial formatting. #+begin_SRC ruby tab.to_text do |f| f.widths(a: 13, b: 30) end #+end_SRC Possible enhancements: - specify an overall width and column widths as decimal or fractions, so that a column's width would be that fraction of the overall width. - specify a Range for a width, so that the column would at least min and at most max, otherwise the width of its largest cell. * TODO Conversion to Spreadsheets - State "TODO" from [2017-04-21 Fri 10:36] This is a [[https://github.com/westonganger/spreadsheet_architect][gem]] that I can include into the Table model to convert a table into a spread-sheet, or even a sheet in a multi-sheet spreadsheet file. * TODO Add Quandl or EODDATA Queries Possible replacements for YQL. * CNCL Add from_yql for fetching from Yahoo CLOSED: [2022-01-30 Sun 06:03] - State "TODO" from [2017-04-21 Fri 10:35] Cancelled because Yahoo shut down the YQL api service. Add a constructor to allow fetching stock data from yql. Perhaps grab all available fields, then allow a select of those of interest. * DONE Allow sorting by expression CLOSED: [2022-01-20 Thu 12:47] Either by a single string argument as the sole argument to order_by, or use another method, such a order_with. Note that this can be done now by creating a new column having the sort expression with select and then just order_by that column. Perhaps that is an easy way to implement it. * DONE Ensure that columns resulting from aggregates have proper type CLOSED: [2017-12-29 Fri 05:34] - State "WAIT" from "TODO" [2017-12-29 Fri 05:34] - State "TODO" from [2017-11-27 Mon 04:46] After applying avg, does the column have the proper Numeric or Date, or DateTime type. How about Boolean aggregates? * DONE Formatters CLOSED: [2017-04-21 Fri 10:36] - State "WAIT" from "TODO" [2017-04-21 Fri 10:36] - State "TODO" from [2017-04-21 Fri 10:35] Need to think about ways to define formatters for Table for different output types, including tty, color-tty, latex, csv, spreadsheet? * DONE Add a Group Boundary concept CLOSED: [2017-04-21 Fri 10:36] - State "WAIT" from "TODO" [2017-04-21 Fri 10:36] - State "TODO" from [2017-04-21 Fri 10:35] If I want a table to perform sub-totals at various break points, need to have a way for a table to record its grouping boundaries. Maybe an array of row numbers? Automatically injected by the group-by method? * DONE Add uniq method and set operations CLOSED: [2017-03-02 Thu 15:54] - State "WAIT" from "TODO" [2017-03-02 Thu 15:54] - State "TODO" from [2017-03-02 Thu 15:54] For tables, add a method that eliminates any duplicate rows. Perhaps just apply Array#uniq to the columns?