UNPKG

strangler

Version:

A set of string utilities for parsing and assembly

53 lines (47 loc) 1.39 kB
var asynk = require('async'); var util = require("util"); var stream = require('stream'); var cases = {}; module.exports.cases = function(newCases){ cases = newCases; }; module.exports.eachCase = function(cb, final){ asynk.forEachOfSeries( Object.keys(cases), function(key, index, done){ return cb(cases[key], key, done) }, final ); }; var largestSegment; var smallestSegment; module.exports.segments = function(min, max){ largestSegment = max; smallestSegment = min; }; module.exports.randomSplits = function(str){ var parts = []; var size; while(str.length > largestSegment){ size = Math.floor( Math.random() * (largestSegment - smallestSegment) )+smallestSegment; parts.push(str.substring(0, size)); str = str.substring(size); } parts.push(str); return parts; }; module.exports.dummyStream = function(dataList){ var TestStream = function(){ stream.Readable.call(this) }; util.inherits(TestStream, stream.Readable); TestStream.prototype._read = function (numBytes){ var stillReading = true; var data; while(stillReading){ data = dataList.length?dataList.shift():null; stillReading = this.push(data); if(!dataList.length) stillReading = false; } }; return new TestStream(); };