wordwrap
Advanced tools
Comparing version 0.0.1 to 0.0.2
40
index.js
@@ -1,2 +0,14 @@ | ||
var exports = module.exports = function (start, stop) { | ||
var wordwrap = module.exports = function (start, stop, params) { | ||
if (typeof start === 'object') { | ||
params = start; | ||
start = params.start; | ||
stop = params.stop; | ||
} | ||
if (typeof stop === 'object') { | ||
params = stop; | ||
start = start || params.start; | ||
stop = undefined; | ||
} | ||
if (!stop) { | ||
@@ -7,5 +19,21 @@ stop = start; | ||
if (!params) params = {}; | ||
var mode = params.mode || 'soft'; | ||
var re = mode === 'hard' ? /\b/ : /(\S+\s+)/; | ||
return function (text) { | ||
return text.toString().split(/(\S+\s+)/) | ||
.reduce(function (lines, rawChunk) { | ||
var chunks = text.toString() | ||
.split(re) | ||
.reduce(function (acc, x) { | ||
if (mode === 'hard') { | ||
for (var i = 0; i < x.length; i += stop - start) { | ||
acc.push(x.slice(i, i + stop - start)); | ||
} | ||
} | ||
else acc.push(x) | ||
return acc; | ||
}, []) | ||
; | ||
return chunks.reduce(function (lines, rawChunk) { | ||
if (rawChunk === '') return lines; | ||
@@ -44,1 +72,7 @@ | ||
}; | ||
wordwrap.soft = wordwrap; | ||
wordwrap.hard = function (start, stop) { | ||
return wordwrap(start, stop, { mode : 'hard' }); | ||
}; |
{ | ||
"name" : "wordwrap", | ||
"description" : "Wrap those words. Show them at what columns to start and stop.", | ||
"version" : "0.0.1", | ||
"version" : "0.0.2", | ||
"repository" : { | ||
@@ -6,0 +6,0 @@ "type" : "git", |
Sorry, the diff of this file is not supported yet
35900
9
127
71