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
|
@ -352,7 +352,7 @@ Ox.load.Image = function(options, callback) {
|
||||||
str = Ox[deflate ? 'encodeDeflate' : 'encodeUTF8'](str);
|
str = Ox[deflate ? 'encodeDeflate' : 'encodeUTF8'](str);
|
||||||
len = str.length;
|
len = str.length;
|
||||||
// Prefix the string with its length, as a four-byte value
|
// Prefix the string with its length, as a four-byte value
|
||||||
str = Ox.pad(Ox.encodeBase256(len), 4, '\u0000') + str;
|
str = Ox.pad(Ox.encodeBase256(len), 'left', 4, '\u0000') + str;
|
||||||
str.length > cap && error('encode');
|
str.length > cap && error('encode');
|
||||||
while (str.length < cap) {
|
while (str.length < cap) {
|
||||||
str += str.substr(4, len);
|
str += str.substr(4, len);
|
||||||
|
|
|
@ -140,7 +140,7 @@ Ox.DateInput = function(options, self) {
|
||||||
autocomplete: Ox.range(1, days + 1).map(function(i) {
|
autocomplete: Ox.range(1, days + 1).map(function(i) {
|
||||||
return self.options.format == 'short' ? Ox.pad(i, 2) : i.toString();
|
return self.options.format == 'short' ? Ox.pad(i, 2) : i.toString();
|
||||||
}),
|
}),
|
||||||
value: self.options.format == 'short' ? Ox.pad(day, 2) : day.toString()
|
value: self.options.format == 'short' ? Ox.pad(parseInt(day), 2) : day.toString()
|
||||||
});
|
});
|
||||||
self.options.value = join();
|
self.options.value = join();
|
||||||
}
|
}
|
||||||
|
|
4
source/Ox.UI/js/List/Chart.js
vendored
4
source/Ox.UI/js/List/Chart.js
vendored
|
@ -74,7 +74,7 @@ Ox.Chart = function(options, self) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
self.sort[key] = key.replace(/(\d+)/g, function(number) {
|
self.sort[key] = key.replace(/(\d+)/g, function(number) {
|
||||||
return Ox.pad(number, 16);
|
return Ox.pad(parseInt(number), 16);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
self.max = Ox.max(self.totals);
|
self.max = Ox.max(self.totals);
|
||||||
|
@ -83,7 +83,7 @@ Ox.Chart = function(options, self) {
|
||||||
if (self.subData) {
|
if (self.subData) {
|
||||||
Ox.forEach(self.subData, function(subValue, subKey) {
|
Ox.forEach(self.subData, function(subValue, subKey) {
|
||||||
self.sort[subKey] = subKey.replace(/(\d+)/g, function(number) {
|
self.sort[subKey] = subKey.replace(/(\d+)/g, function(number) {
|
||||||
return Ox.pad(number, 16);
|
return Ox.pad(parseInt(number), 16);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
self.subKeys = Object.keys(self.subData).sort(function(a, b) {
|
self.subKeys = Object.keys(self.subData).sort(function(a, b) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ Ox.MapImage = function(options, self) {
|
||||||
|
|
||||||
function formatColor(color) {
|
function formatColor(color) {
|
||||||
return color.map(function(c) {
|
return color.map(function(c) {
|
||||||
return Ox.pad(c.toString(16), 2);
|
return Ox.pad(c.toString(16), 'left', 2, '0');
|
||||||
}).join('')
|
}).join('')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -570,7 +570,7 @@ Ox.range = function() {
|
||||||
sort[value] = mappedValue.toLowerCase()
|
sort[value] = mappedValue.toLowerCase()
|
||||||
.replace(/^\W+/, '')
|
.replace(/^\W+/, '')
|
||||||
.replace(/\d+/g, function(match) {
|
.replace(/\d+/g, function(match) {
|
||||||
return Ox.pad(match, length);
|
return Ox.pad(parseInt(match), length);
|
||||||
});
|
});
|
||||||
Ox.forEach(['a', 'an', 'the'], function(article) {
|
Ox.forEach(['a', 'an', 'the'], function(article) {
|
||||||
var length;
|
var length;
|
||||||
|
|
|
@ -108,7 +108,7 @@ Ox.toHex <f> Format RGB array as hex value
|
||||||
@*/
|
@*/
|
||||||
Ox.toHex = function(rgb) {
|
Ox.toHex = function(rgb) {
|
||||||
return rgb.map(function(value) {
|
return rgb.map(function(value) {
|
||||||
return Ox.pad(value.toString(16).toUpperCase(), 2);
|
return Ox.pad(value.toString(16).toUpperCase(), 'left', 2, '0');
|
||||||
}).join('');
|
}).join('');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -553,7 +553,7 @@ Ox.formatDuration = function(seconds/*, decimals, format*/) {
|
||||||
return Ox.filter(Ox.map(values, function(value, index) {
|
return Ox.filter(Ox.map(values, function(value, index) {
|
||||||
var ret;
|
var ret;
|
||||||
if (format == 'none') {
|
if (format == 'none') {
|
||||||
ret = Ox.pad(value, pad[index]);
|
ret = Ox.pad(value, 'left', pad[index], '0');
|
||||||
} else if (Ox.isNumber(value) ? value : parseFloat(value)) {
|
} else if (Ox.isNumber(value) ? value : parseFloat(value)) {
|
||||||
ret = value + (format == 'long' ? ' ' : '') + string[index]
|
ret = value + (format == 'long' ? ' ' : '') + string[index]
|
||||||
+ (format == 'long' && value != 1 ? 's' : '');
|
+ (format == 'long' && value != 1 ? 's' : '');
|
||||||
|
|
|
@ -189,7 +189,9 @@
|
||||||
if (code < 128) {
|
if (code < 128) {
|
||||||
char = char in htmlEntities ? htmlEntities[char] : char;
|
char = char in htmlEntities ? htmlEntities[char] : char;
|
||||||
} else if (encodeAll) {
|
} else if (encodeAll) {
|
||||||
char = '&#x' + Ox.pad(code.toString(16).toUpperCase(), 4) + ';';
|
char = '&#x'
|
||||||
|
+ Ox.pad(code.toString(16).toUpperCase(), 'left', 4, '0')
|
||||||
|
+ ';';
|
||||||
}
|
}
|
||||||
return char;
|
return char;
|
||||||
});
|
});
|
||||||
|
|
|
@ -60,10 +60,10 @@ Ox.oshash = function(file, callback) {
|
||||||
|
|
||||||
function hex(h) {
|
function hex(h) {
|
||||||
return (
|
return (
|
||||||
Ox.pad(h[0].toString(16), 4)
|
Ox.pad(h[0].toString(16), 'left', 4, '0')
|
||||||
+ Ox.pad(h[1].toString(16), 4)
|
+ Ox.pad(h[1].toString(16), 'left', 4, '0')
|
||||||
+ Ox.pad(h[2].toString(16), 4)
|
+ Ox.pad(h[2].toString(16), 'left', 4, '0')
|
||||||
+ Ox.pad(h[3].toString(16), 4)
|
+ Ox.pad(h[3].toString(16), 'left', 4, '0')
|
||||||
).toLowerCase();
|
).toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,24 +68,51 @@ Ox.isValidEmail = function(string) {
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
Ox.pad <f> Pad a string to a given length
|
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)
|
> Ox.pad(1, 2)
|
||||||
"01"
|
'01'
|
||||||
> Ox.pad("abc", -6, ".")
|
> Ox.pad(1, 2, ' ')
|
||||||
"abc..."
|
' 1'
|
||||||
> Ox.pad("foobar", -3, ".")
|
> Ox.pad(1, 'right', 2)
|
||||||
"foo"
|
'1 '
|
||||||
> Ox.pad("abc", -6, "123456")
|
> Ox.pad(1, 'right', 2, '_')
|
||||||
"abc123"
|
'1_'
|
||||||
> Ox.pad("abc", 6, "123456")
|
> Ox.pad('foo', 6, '123456')
|
||||||
"456abc"
|
'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) {
|
Ox.pad = function(string, position, length, padding) {
|
||||||
// fixme: slighly obscure signature
|
|
||||||
// fixme: weird for negative numbers
|
// fixme: weird for negative numbers
|
||||||
var pos = length / (length = Math.abs(length));
|
var hasPosition = Ox.isString(arguments[1]),
|
||||||
string = string.toString().slice(0, length);
|
isNumber = Ox.isNumber(arguments[0]),
|
||||||
padding = Ox.repeat(padding || '0', length - string.length);
|
last = Ox.last(arguments);
|
||||||
return pos == 1
|
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)
|
? (padding + string).slice(-length)
|
||||||
: (string + padding).slice(0, length);
|
: (string + padding).slice(0, length);
|
||||||
};
|
};
|
||||||
|
@ -129,7 +156,7 @@ Ox.parsePath = function(string) {
|
||||||
filename: matches[2] || '',
|
filename: matches[2] || '',
|
||||||
extension: matches[3] ? matches[3].slice(1) : ''
|
extension: matches[3] ? matches[3].slice(1) : ''
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
Ox.parseSRT <f> Parses an srt subtitle file
|
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
|
Ox.truncate <f> Truncate a string to a given length
|
||||||
(string[, position], length[, padding]) -> Truncated string
|
(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)
|
> Ox.truncate('anticonstitutionellement', 16)
|
||||||
'anticonstitutio…'
|
'anticonstitutio…'
|
||||||
> Ox.truncate('anticonstitutionellement', 'left', 16)
|
> Ox.truncate('anticonstitutionellement', 'left', 16)
|
||||||
|
|
Loading…
Reference in a new issue