From ccb90f46e6da1f1766672d3d5dd8678d847e0510 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Wed, 29 Jul 2015 10:57:30 -0700 Subject: [PATCH] Remove overloaded options param support for `_.trunc`. --- lodash.js | 21 +++++---------------- test/test.js | 16 +++++++--------- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/lodash.js b/lodash.js index 9abde68f8..9b10cf5c8 100644 --- a/lodash.js +++ b/lodash.js @@ -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) { diff --git a/test/test.js b/test/test.js index 0494eecb8..dbe0eb480 100644 --- a/test/test.js +++ b/test/test.js @@ -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() {