Remove overloaded options param support for _.trunc.

This commit is contained in:
John-David Dalton
2015-07-29 10:57:30 -07:00
parent dfa4cd921e
commit ccb90f46e6
2 changed files with 12 additions and 25 deletions

View File

@@ -10409,20 +10409,16 @@
* @memberOf _
* @category String
* @param {string} [string=''] The string to truncate.
* @param {Object|number} [options] The options object or maximum string length.
* @param {Object} [options] The options object.
* @param {number} [options.length=30] The maximum string length.
* @param {string} [options.omission='...'] The string to indicate text is omitted.
* @param {RegExp|string} [options.separator] The separator pattern to truncate to.
* @param- {Object} [guard] Enables use as an iteratee for functions like `_.map`.
* @returns {string} Returns the truncated string.
* @example
*
* _.trunc('hi-diddly-ho there, neighborino');
* // => 'hi-diddly-ho there, neighbo...'
*
* _.trunc('hi-diddly-ho there, neighborino', 24);
* // => 'hi-diddly-ho there, n...'
*
* _.trunc('hi-diddly-ho there, neighborino', {
* 'length': 24,
* 'separator': ' '
@@ -10441,20 +10437,13 @@
* // => 'hi-diddly-ho there, neig [...]'
*/
function trunc(string, options, guard) {
if (guard && isIterateeCall(string, options, guard)) {
options = undefined;
}
var length = DEFAULT_TRUNC_LENGTH,
omission = DEFAULT_TRUNC_OMISSION;
if (options != null) {
if (isObject(options)) {
var separator = 'separator' in options ? options.separator : separator;
length = 'length' in options ? (+options.length || 0) : length;
omission = 'omission' in options ? baseToString(options.omission) : omission;
} else {
length = +options || 0;
}
if (isObject(options)) {
var separator = 'separator' in options ? options.separator : separator;
length = 'length' in options ? (+options.length || 0) : length;
omission = 'omission' in options ? baseToString(options.omission) : omission;
}
string = baseToString(string);
if (length >= string.length) {

View File

@@ -14821,12 +14821,12 @@
});
test('should not truncate if `string` is <= `length`', 2, function() {
strictEqual(_.trunc(string, string.length), string);
strictEqual(_.trunc(string, string.length + 2), string);
strictEqual(_.trunc(string, { 'length': string.length }), string);
strictEqual(_.trunc(string, { 'length': string.length + 2 }), string);
});
test('should truncate string the given length', 1, function() {
strictEqual(_.trunc(string, 24), 'hi-diddly-ho there, n...');
strictEqual(_.trunc(string, { 'length': 24 }), 'hi-diddly-ho there, n...');
});
test('should support a `omission` option', 1, function() {
@@ -14842,24 +14842,22 @@
strictEqual(_.trunc(string, { 'length': 24, 'separator': /,? +/ }), 'hi-diddly-ho there...');
});
test('should treat negative `length` as `0`', 4, function() {
test('should treat negative `length` as `0`', 2, function() {
_.each([0, -2], function(length) {
strictEqual(_.trunc(string, length), '...');
strictEqual(_.trunc(string, { 'length': length }), '...');
});
});
test('should coerce `length` to an integer', 8, function() {
test('should coerce `length` to an integer', 4, function() {
_.each(['', NaN, 4.5, '4'], function(length, index) {
var actual = index > 1 ? 'h...' : '...';
strictEqual(_.trunc(string, length), actual);
strictEqual(_.trunc(string, { 'length': { 'valueOf': _.constant(length) } }), actual);
});
});
test('should coerce `string` to a string', 2, function() {
strictEqual(_.trunc(Object(string), 4), 'h...');
strictEqual(_.trunc({ 'toString': _.constant(string) }, 5), 'hi...');
strictEqual(_.trunc(Object(string), { 'length': 4 }), 'h...');
strictEqual(_.trunc({ 'toString': _.constant(string) }, { 'length': 5 }), 'hi...');
});
test('should work as an iteratee for methods like `_.map`', 1, function() {