added unit testing, and started implementing unit tests...phew
This commit is contained in:
65
node_modules/wide-align/align.js
generated
vendored
Normal file
65
node_modules/wide-align/align.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
'use strict'
|
||||
var stringWidth = require('string-width')
|
||||
|
||||
exports.center = alignCenter
|
||||
exports.left = alignLeft
|
||||
exports.right = alignRight
|
||||
|
||||
// lodash's way of generating pad characters.
|
||||
|
||||
function createPadding (width) {
|
||||
var result = ''
|
||||
var string = ' '
|
||||
var n = width
|
||||
do {
|
||||
if (n % 2) {
|
||||
result += string;
|
||||
}
|
||||
n = Math.floor(n / 2);
|
||||
string += string;
|
||||
} while (n);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function alignLeft (str, width) {
|
||||
var trimmed = str.trimRight()
|
||||
if (trimmed.length === 0 && str.length >= width) return str
|
||||
var padding = ''
|
||||
var strWidth = stringWidth(trimmed)
|
||||
|
||||
if (strWidth < width) {
|
||||
padding = createPadding(width - strWidth)
|
||||
}
|
||||
|
||||
return trimmed + padding
|
||||
}
|
||||
|
||||
function alignRight (str, width) {
|
||||
var trimmed = str.trimLeft()
|
||||
if (trimmed.length === 0 && str.length >= width) return str
|
||||
var padding = ''
|
||||
var strWidth = stringWidth(trimmed)
|
||||
|
||||
if (strWidth < width) {
|
||||
padding = createPadding(width - strWidth)
|
||||
}
|
||||
|
||||
return padding + trimmed
|
||||
}
|
||||
|
||||
function alignCenter (str, width) {
|
||||
var trimmed = str.trim()
|
||||
if (trimmed.length === 0 && str.length >= width) return str
|
||||
var padLeft = ''
|
||||
var padRight = ''
|
||||
var strWidth = stringWidth(trimmed)
|
||||
|
||||
if (strWidth < width) {
|
||||
var padLeftBy = parseInt((width - strWidth) / 2, 10)
|
||||
padLeft = createPadding(padLeftBy)
|
||||
padRight = createPadding(width - (strWidth + padLeftBy))
|
||||
}
|
||||
|
||||
return padLeft + trimmed + padRight
|
||||
}
|
Reference in New Issue
Block a user