npmtest-voca (v0.0.1)

Code coverage report for node-npmtest-voca/node_modules/voca/pad.js

Statements: 65.38% (17 / 26)      Branches: 37.5% (3 / 8)      Functions: 50% (1 / 2)      Lines: 64% (16 / 25)      Ignored: none     

All files » node-npmtest-voca/node_modules/voca/ » pad.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66    1     1   1   1   1   1   1   1   1   1   1   1   1   5                                             1                       1  
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = pad;
 
var _build_padding = require('./helper/string/build_padding');
 
var _build_padding2 = _interopRequireDefault(_build_padding);
 
var _clip_number = require('./helper/number/clip_number');
 
var _clip_number2 = _interopRequireDefault(_clip_number);
 
var _coerce_to_string = require('./helper/string/coerce_to_string');
 
var _coerce_to_string2 = _interopRequireDefault(_coerce_to_string);
 
var _is_nil = require('./helper/object/is_nil');
 
var _is_nil2 = _interopRequireDefault(_is_nil);
 
var _const = require('./helper/number/const');
 
var _to_integer = require('./helper/number/to_integer');
 
var _to_integer2 = _interopRequireDefault(_to_integer);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
/**
 * Pads `subject` to a new `length`.
 *
 * @function pad
 * @static
 * @since 1.0.0
 * @memberOf Manipulate
 * @param {string} [subject=''] The string to pad.
 * @param {int} [length=0] The length to pad the string. No changes are made if `length` is less than `subject.length`.
 * @param {string} [pad=' '] The string to be used for padding.
 * @return {string} Returns the padded string.
 * @example
 * v.pad('dog', 5);
 * // => ' dog '
 *
 * v.pad('bird', 6, '-');
 * // => '-bird-'
 *
 * v.pad('cat', 6, '-=');
 * // => '-cat-='
 */
function pad(subject, length, pad) {
  var subjectString = (0, _coerce_to_string2.default)(subject);
  var lengthInt = (0, _is_nil2.default)(length) ? 0 : (0, _clip_number2.default)((0, _to_integer2.default)(length), 0, _const.MAX_SAFE_INTEGER);
  var padString = (0, _coerce_to_string2.default)(pad, ' ');
  if (lengthInt <= subjectString.length) {
    return subjectString;
  }
  var paddingLength = lengthInt - subjectString.length;
  var paddingSideLength = (0, _to_integer2.default)(paddingLength / 2);
  var paddingSideRemainingLength = paddingLength % 2;
  return (0, _build_padding2.default)(padString, paddingSideLength) + subjectString + (0, _build_padding2.default)(padString, paddingSideLength + paddingSideRemainingLength);
}
module.exports = exports['default'];