On Mon, Jul 30, 2012 at 2:11 PM, Shlomi Fish <shlo...@shlomifish.org> wrote:
> Hi Sawyer, > > On Sat, 28 Jul 2012 18:13:44 +0300 > sawyer x <xsawy...@gmail.com> wrote: > > > Data::Tabular::Document (for the lack of a better name at the moment) > > allows you to create a document with rows, with each row having items. > They > > are all objects, so you can create them separately and then add them. At > > the end you can render it using any one of a few given renderers. > > Sounds good. I've had a similar idea for a module that renders tables into > a > multitude of formats and protocols (e.g: > https://metacpan.org/release/Text-Table > (which I maintain), HTML tables, Excel tables, CSV, tab-separated values, > Google Docs, etc.), but did not do anything to implement it. Maybe we can > collaborate on this module. > I don't want Yet Another Table Module. I wanted to write an abstraction layer for tabular data. That is all. I'd be happy to collaborate on it. I prefer not to upload it to Github until I can come up with a name (I think Data::Tabular::Document is too verbose and ... technical, but I might use it if I can't come up with a new name). I'm *very* open to naming suggestions. > > > 2. Allow composing a row without adding it. I had a situation where I > only > > knew whether I needed a row or not at the end of a process. By that time, > > I've already had to add the items. I could put the row data separately > and > > at the end of the processing put it in, but if you're using Excel, you > need > > to add each item separately so it becomes tricky. With this module, I can > > create a new Data::Tabular::Document::Row object and add items to it. At > > the end, I can decide to $doc->add_row($row_object) if I want to. > > > > Sounds good. Hopefully there will also be a way to delete or manipulate > previous rows. > Since every row has an ID, you are able to delete them from documents or add them to multiple documents (reducing duplicity in data when working in cross-referenced multiple documents). The objects are immutable, as I prefer writing them, so if you want to manipulate the data of a row, you'll need to create a new row. That's on purpose. > > So the question is: is this totally worthless? Is it useful? It is > useful > > enough to upload to CPAN? Is there a better, more comfortable/correct way > > of doing it? > > It sounds useful and worthy of being on CPAN. I'm not aware of a previous > CPAN > effort, but there might be. > If you hear of any, let me know. Much of it is already written, so once I have a name, I could upload it to Github and later on CPAN. I'd be happy to collaborate. Thanks, S.