From 9a7e78f686793f9186c1182561a382072eab0ae9 Mon Sep 17 00:00:00 2001 From: Rufus Pollock Date: Sat, 15 Jun 2013 12:19:36 +0100 Subject: [PATCH] [build][xs]: cat files. --- dist/recline.js | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/dist/recline.js b/dist/recline.js index 78690322..c660fdb3 100644 --- a/dist/recline.js +++ b/dist/recline.js @@ -33,37 +33,45 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {}; var reader = new FileReader(); var encoding = dataset.encoding || 'UTF-8'; reader.onload = function(e) { - var rows = my.parseCSV(e.target.result, dataset); - dfd.resolve({ - records: rows, - metadata: { - filename: dataset.file.name - }, - useMemoryStore: true - }); + var out = my.extractFields(my.parseCSV(data, dataset), dataset); + out.useMemoryStore = true; + out.metadata = { + filename: dataset.file.name + } + dfd.resolve(out); }; reader.onerror = function (e) { alert('Failed to load file. Code: ' + e.target.error.code); }; reader.readAsText(dataset.file, encoding); } else if (dataset.data) { - var rows = my.parseCSV(dataset.data, dataset); - dfd.resolve({ - records: rows, - useMemoryStore: true - }); + var out = my.extractFields(my.parseCSV(dataset.data, dataset), dataset); + out.useMemoryStore = true; + dfd.resolve(out); } else if (dataset.url) { jQuery.get(dataset.url).done(function(data) { - var rows = my.parseCSV(data, dataset); - dfd.resolve({ - records: rows, - useMemoryStore: true - }); + var out = my.extractFields(my.parseCSV(data, dataset), dataset); + out.useMemoryStore = true; }); } return dfd.promise(); }; + // Convert array of rows in { records: [ ...] , fields: [ ... ] } + // @param {Boolean} noHeaderRow If true assume that first row is not a header (i.e. list of fields but is data. + my.extractFields = function(rows, noFields) { + if (noFields.noHeaderRow !== true && rows.length > 0) { + return { + fields: rows[0], + records: rows.slice(1) + } + } else { + return { + records: rows + } + } + }; + // ## parseCSV // // Converts a Comma Separated Values string into an array of arrays. @@ -84,6 +92,8 @@ this.recline.Backend.CSV = this.recline.Backend.CSV || {}; // fields containing special characters, such as the delimiter or // quotechar, or which contain new-line characters. It defaults to '"' // + // @param {Integer} skipInitialRows A integer number of rows to skip (default 0) + // // Heavily based on uselesscode's JS CSV parser (MIT Licensed): // http://www.uselesscode.org/javascript/csv/ my.parseCSV= function(s, options) {