| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- '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
 
- }
 
 
  |