var stringify = require('./stringify')
var repeat = require('./repeat-str')

function pad (str, len, padr, type) {
  str = stringify(str)
  len = ~~len

  var padlen = 0

  if (!padr) padr = ' '
  else if (padr.length > 1) padr = padr.charAt(0)

  switch (type) {
    case 'right':
      padlen = len - str.length
      return str + repeat(padr, padlen)
    case 'left':
      padlen = len - str.length
      return repeat(padr, padlen) + str
    default: // both
      padlen = len - str.length
      return repeat(padr, Math.ceil(padlen / 2)) + str + repeat(padr, Math.floor(padlen / 2))
  }
}

module.exports = pad

@@ -43,16 +43,19 @@
  repeat 
+   
 = requir
@@ -101,18 +101,10 @@
 en, 
-padr, type
+ch
 ) %7B%0A
@@ -170,18 +170,14 @@
 f (!
-padr) padr
+ch) ch
  = '
@@ -190,20 +190,18 @@
 lse if (
-padr
+ch
 .length 
@@ -209,19 +209,15 @@
  1) 
-padr = padr
+ch = ch
 .cha
@@ -228,48 +228,8 @@
 0)%0A%0A
-  switch (type) %7B%0A    case 'right':%0A    
   pa
@@ -244,36 +244,32 @@
 en - str.length%0A
-    
   return str + r
@@ -265,277 +265,501 @@
 urn 
-str + repeat(padr, padlen)%0A    case 'left':%0A      padlen = len - str.length%0A      return repeat(padr, padlen) + str%0A    default: // both%0A      padlen = len - str.length%0A      return repeat(padr, Math.ceil(padlen / 2)) + str + repeat(padr, Math.floor(padlen / 2))%0A  %7D%0A%7D%0A
+repeat(ch, Math.ceil(padlen / 2)) + str + repeat(ch, Math.floor(padlen / 2))%0A%7D%0A%0Afunction lpad (str, minLen, ch) %7B%0A  str = stringify(str)%0A  minLen = ~~minLen%0A  ch = ch %7C%7C ' '%0A%0A  return (str.length %3C minLen)%0A    ? repeat(ch, minLen - str.length) + str%0A    : str%0A%7D%0A%0Afunction rpad (str, minLen, ch) %7B%0A  str = stringify(str)%0A  minLen = ~~minLen%0A  ch = ch %7C%7C ' '%0A%0A  return (str.length %3C minLen)%0A    ? str + repeat(ch, minLen - str.length)%0A    : str%0A%7D%0A%0Amodule.exports = pad%0Amodule.exports.left = lpad
 %0Amod
@@ -757,27 +757,34 @@
  lpad%0Amodule.exports
+.right
  = 
+r
 pad%0A

update string/pad — add lpad and rpad