Comparing version 0.3.4 to 0.3.5
@@ -7,2 +7,3 @@ module.exports=csvAdv; | ||
var Transform=require("stream").Transform; | ||
var Readable=require("stream").Readable; | ||
var Result=require("./Result"); | ||
@@ -81,5 +82,11 @@ var os=require("os"); | ||
self.on("end",function(){ | ||
self.emit("end_parsed",self.param.constructResult?self.resultObject.getBuffer():{}); | ||
var finalResult=self.param.constructResult?self.resultObject.getBuffer():{}; | ||
self.emit("end_parsed",finalResult); | ||
if (self._callback && typeof self._callback =="function"){ | ||
var func=self._callback; | ||
self._callback=null; | ||
func(null,finalResult); | ||
} | ||
}); | ||
this._callback=null; | ||
return this; | ||
@@ -135,2 +142,13 @@ }; | ||
csvAdv.prototype.fromString=function(csvString,cb){ | ||
var rs=new Readable(); | ||
rs._read=function(){ | ||
this.push(csvString); | ||
this.push(null); | ||
} | ||
rs.pipe(this); | ||
if (cb && typeof cb == "function"){ | ||
this._callback=cb; | ||
} | ||
}; |
@@ -17,3 +17,3 @@ { | ||
], | ||
"version":"0.3.4", | ||
"version":"0.3.5", | ||
"keywords":[ | ||
@@ -20,0 +20,0 @@ "csv", |
@@ -36,3 +36,3 @@ #CSV2JSON | ||
* [Customised Parser](#parser) | ||
* [Integrate with your express server](#webserver) | ||
* [Webserver](#webserver) | ||
* [Events](#events) | ||
@@ -44,2 +44,3 @@ * [Built-in Parsers](#default-parsers) | ||
* [Column Array](#column-array) | ||
* [Parse String](#parse-string) | ||
* [Change Log](#change-log) | ||
@@ -368,4 +369,32 @@ | ||
#### Parse String | ||
To parse a string, simply call fromString(csvString,callback) method. | ||
For example: | ||
```js | ||
var testData=__dirname+"/data/testData"; | ||
var data=fs.readFileSync(testData).toString(); | ||
var csvConverter=new CSVConverter(); | ||
//end_parsed will be emitted once parsing finished | ||
csvConverter.on("end_parsed", function(jsonObj) { | ||
//final result poped here as normal. | ||
}); | ||
csvConverter.fromString(data,function(err,jsonObj){ | ||
if (err){ | ||
//err handle | ||
} | ||
console.log(jsonObj); | ||
}); | ||
``` | ||
#Change Log | ||
##0.3.5 | ||
* Added fromString method to support direct string input | ||
##0.3.4 | ||
@@ -372,0 +401,0 @@ * Added more parameters to command line tool. |
@@ -73,3 +73,3 @@ var CSVAdv = require("../libs/core/csvConverter.js"); | ||
obj.on("end_parsed", function(result) { | ||
assert(result[0].col1 == "Mini. Sectt,hisar S.O"); | ||
assert(result[0].col1 == "\"Mini. Sectt"); | ||
assert(result[3].col2 == "125001,fenvkdsf"); | ||
@@ -107,2 +107,16 @@ // console.log(result); | ||
}); | ||
it("should be able to convert csv string directly", function(done) { | ||
var testData=__dirname+"/data/testData"; | ||
var data=fs.readFileSync(testData).toString(); | ||
var result = {} | ||
var csvConverter=new CSVAdv(); | ||
//end_parsed will be emitted once parsing finished | ||
csvConverter.on("end_parsed", function(jsonObj) { | ||
assert(jsonObj.length === 2); | ||
}); | ||
csvConverter.fromString(data,function(err,jsonObj){ | ||
assert(jsonObj.length === 2); | ||
done(); | ||
}); | ||
}); | ||
}); |
37723
555
409