Skip to content

Commit e8a70e1

Browse files
committed
Added U.filestreamer() method.
1 parent 5452672 commit e8a70e1

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- added `NOSQL/TABLe/TEXTDB().release()` method
1717
- extended `controller.view()` by adding a support for rendering views from plugins (e.g. `#plugin_name/view_name`)
1818
- extended `U.reader([url/items])` by adding support for `URL` addresses (content must be TextDB)
19+
- added `U.filestreamer(filename)` for streaming text files
1920

2021
========================
2122
0.0.58

textdb-stream.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,34 @@ TextStreamReaderProto.close = function() {
462462
return self;
463463
};
464464

465+
TextStreamReaderProto.replace = function(index, value, divider) {
466+
467+
var self = this;
468+
var rec = self.docsbuffer[index];
469+
470+
if (rec.doc === value)
471+
return;
472+
473+
var was = true;
474+
var sep = (divider || self.divider);
475+
476+
if (rec.doc.length === value.length) {
477+
var b = Buffer.byteLength(value);
478+
if (rec.length === b) {
479+
self.write(value + sep, rec.position);
480+
was = false;
481+
}
482+
}
483+
484+
if (was) {
485+
var tmp = self.remchar + rec.doc.substring(1) + sep;
486+
self.write(tmp, rec.position);
487+
self.write2(value + sep);
488+
}
489+
490+
return self;
491+
};
492+
465493
TextStreamReaderProto.write = function(doc, position) {
466494
var self = this;
467495
self.bufferstack.push({ position: position, data: doc });

utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,6 +1583,11 @@ exports.streamer2 = function(beg, end, callback, skip, stream) {
15831583
return exports.streamer(beg, end, callback, skip, stream, true);
15841584
};
15851585

1586+
exports.filestreamer = function(filename) {
1587+
var Fs = require('./textdb-stream');
1588+
return new Fs(filename);
1589+
};
1590+
15861591
/**
15871592
* HTML encode string
15881593
* @param {String} str

0 commit comments

Comments
 (0)