forked from 0x2620/oxjs
change the signature of Ox.pad to match Ox.truncate
This commit is contained in:
parent
24bbf95bd5
commit
a5c6747b57
10 changed files with 62 additions and 29 deletions
|
|
@ -68,24 +68,51 @@ Ox.isValidEmail = function(string) {
|
|||
|
||||
/*@
|
||||
Ox.pad <f> Pad a string to a given length
|
||||
(string[, position], length[, padding]) -> <s> Padded string
|
||||
string <s> String
|
||||
position <s|'right'> Position ('left' or 'right')
|
||||
When passing a number as `string`, the default position is 'left'.
|
||||
length <n> Length
|
||||
padding <s|' '> Padding
|
||||
When passing a number as `string`, and leaving out or passing 'left' as
|
||||
`position`, the default padding is '0'.
|
||||
> Ox.pad('foo', 6)
|
||||
'foo '
|
||||
> Ox.pad('foo', 'left', 6)
|
||||
' foo'
|
||||
> Ox.pad('foo', 6, '.')
|
||||
'foo...'
|
||||
> Ox.pad('foo', 'left', 6, '.')
|
||||
'...foo'
|
||||
> Ox.pad(1, 2)
|
||||
"01"
|
||||
> Ox.pad("abc", -6, ".")
|
||||
"abc..."
|
||||
> Ox.pad("foobar", -3, ".")
|
||||
"foo"
|
||||
> Ox.pad("abc", -6, "123456")
|
||||
"abc123"
|
||||
> Ox.pad("abc", 6, "123456")
|
||||
"456abc"
|
||||
'01'
|
||||
> Ox.pad(1, 2, ' ')
|
||||
' 1'
|
||||
> Ox.pad(1, 'right', 2)
|
||||
'1 '
|
||||
> Ox.pad(1, 'right', 2, '_')
|
||||
'1_'
|
||||
> Ox.pad('foo', 6, '123456')
|
||||
'foo123'
|
||||
> Ox.pad('foo', 'left', 6, '123456')
|
||||
'456foo'
|
||||
> Ox.pad('foobar', 3)
|
||||
'foo'
|
||||
> Ox.pad('foobar', 'left', 3)
|
||||
'bar'
|
||||
@*/
|
||||
Ox.pad = function(string, length, padding) {
|
||||
// fixme: slighly obscure signature
|
||||
Ox.pad = function(string, position, length, padding) {
|
||||
// fixme: weird for negative numbers
|
||||
var pos = length / (length = Math.abs(length));
|
||||
string = string.toString().slice(0, length);
|
||||
padding = Ox.repeat(padding || '0', length - string.length);
|
||||
return pos == 1
|
||||
var hasPosition = Ox.isString(arguments[1]),
|
||||
isNumber = Ox.isNumber(arguments[0]),
|
||||
last = Ox.last(arguments);
|
||||
position = hasPosition ? arguments[1] : isNumber ? 'left' : 'right';
|
||||
length = hasPosition ? arguments[2] : arguments[1];
|
||||
padding = Ox.isString(last) ? last
|
||||
: isNumber && position == 'left' ? '0' : ' ';
|
||||
string = string.toString();
|
||||
padding = Ox.repeat(padding, length - string.length);
|
||||
return position == 'left'
|
||||
? (padding + string).slice(-length)
|
||||
: (string + padding).slice(0, length);
|
||||
};
|
||||
|
|
@ -129,7 +156,7 @@ Ox.parsePath = function(string) {
|
|||
filename: matches[2] || '',
|
||||
extension: matches[3] ? matches[3].slice(1) : ''
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
/*@
|
||||
Ox.parseSRT <f> Parses an srt subtitle file
|
||||
|
|
@ -475,6 +502,10 @@ Ox.toUnderscores = function(string) {
|
|||
/*@
|
||||
Ox.truncate <f> Truncate a string to a given length
|
||||
(string[, position], length[, padding]) -> Truncated string
|
||||
string <s> String
|
||||
position <s|'right'> Position ('left', 'center' or 'right')
|
||||
length <n> Length
|
||||
padding <s|'…'> Padding
|
||||
> Ox.truncate('anticonstitutionellement', 16)
|
||||
'anticonstitutio…'
|
||||
> Ox.truncate('anticonstitutionellement', 'left', 16)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue