From 4767ed790cbe86a08009c69aa5259dde1e37ddb5 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Tue, 28 May 2013 15:48:14 -0500 Subject: [PATCH] Add `_.findWhere` alias. Former-commit-id: 2c70e59b71c22d902e499747444a196a85691554 --- build.js | 88 +++++++++++++++++------------------ dist/lodash.compat.js | 5 +- dist/lodash.compat.min.js | 22 ++++----- dist/lodash.js | 5 +- dist/lodash.min.js | 70 ++++++++++++++-------------- dist/lodash.underscore.js | 9 ++-- dist/lodash.underscore.min.js | 8 ++-- lodash.js | 5 +- test/test-build.js | 36 ++------------ 9 files changed, 111 insertions(+), 137 deletions(-) diff --git a/build.js b/build.js index b4ed5969f..0c489374f 100755 --- a/build.js +++ b/build.js @@ -44,6 +44,7 @@ 'drop': 'rest', 'each': 'forEach', 'extend': 'assign', + 'findWhere': 'find', 'foldl': 'reduce', 'foldr': 'reduceRight', 'head': 'first', @@ -63,7 +64,7 @@ 'contains': ['include'], 'every': ['all'], 'filter': ['select'], - 'find': ['detect'], + 'find': ['detect', 'findWhere'], 'first': ['head', 'take'], 'forEach': ['each'], 'functions': ['methods'], @@ -230,7 +231,7 @@ var allMethods = _.keys(dependencyMap); /** List of Lo-Dash methods */ - var lodashMethods = _.without(allMethods, 'findWhere'); + var lodashMethods = allMethods.slice(); /** List of Backbone's Lo-Dash dependencies */ var backboneDependencies = [ @@ -2364,6 +2365,47 @@ '}' ].join('\n')); } + // add Underscore's `_.findWhere` + if (!useLodashMethod('findWhere') && !useLodashMethod('where')) { + source = source.replace(matchFunction(source, 'find'), function(match) { + var indent = getIndent(match); + return match && (match + [ + '', + '/**', + ' * Examines each element in a `collection`, returning the first that', + ' * has the given `properties`. When checking `properties`, this method', + ' * performs a deep comparison between values to determine if they are', + ' * equivalent to each other.', + ' *', + ' * @static', + ' * @memberOf _', + ' * @category Collections', + ' * @param {Array|Object|String} collection The collection to iterate over.', + ' * @param {Object} properties The object of property values to filter by.', + ' * @returns {Mixed} Returns the found element, else `undefined`.', + ' * @example', + ' *', + ' * var food = [', + " * { 'name': 'apple', 'organic': false, 'type': 'fruit' },", + " * { 'name': 'banana', 'organic': true, 'type': 'fruit' },", + " * { 'name': 'beet', 'organic': false, 'type': 'vegetable' }", + ' * ];', + ' *', + " * _.findWhere(food, { 'type': 'vegetable' });", + " * // => { 'name': 'beet', 'organic': false, 'type': 'vegetable' }", + ' */', + 'function findWhere(object, properties) {', + ' return where(object, properties, true);', + '}', + '' + ].join('\n' + indent)); + }); + + // replace alias assignment + source = source.replace(getMethodAssignments(source), function(match) { + return match.replace(/^( *lodash.findWhere *= *).+/m, '$1findWhere;'); + }); + } // replace `_.flatten` if (!useLodashMethod('flatten')) { source = replaceFunction(source, 'flatten', [ @@ -2846,48 +2888,6 @@ }); } } - // add Underscore's `_.findWhere` - if (_.contains(buildMethods, 'findWhere')) { - if (isUnderscore) { - source = source.replace(matchFunction(source, 'find'), function(match) { - var indent = getIndent(match); - return match && (match + [ - '', - '/**', - ' * Examines each element in a `collection`, returning the first that', - ' * has the given `properties`. When checking `properties`, this method', - ' * performs a deep comparison between values to determine if they are', - ' * equivalent to each other.', - ' *', - ' * @static', - ' * @memberOf _', - ' * @category Collections', - ' * @param {Array|Object|String} collection The collection to iterate over.', - ' * @param {Object} properties The object of property values to filter by.', - ' * @returns {Mixed} Returns the found element, else `undefined`.', - ' * @example', - ' *', - ' * var food = [', - " * { 'name': 'apple', 'organic': false, 'type': 'fruit' },", - " * { 'name': 'banana', 'organic': true, 'type': 'fruit' },", - " * { 'name': 'beet', 'organic': false, 'type': 'vegetable' }", - ' * ];', - ' *', - " * _.findWhere(food, { 'type': 'vegetable' });", - " * // => { 'name': 'beet', 'organic': false, 'type': 'vegetable' }", - ' */', - 'function findWhere(object, properties) {', - ' return where(object, properties, true);', - '}', - '' - ].join('\n' + indent)); - }); - } - source = source.replace(getMethodAssignments(source), function(match) { - var methodName = isUnderscore ? 'findWhere' : 'find'; - return match.replace(/^( *)lodash.find *=.+/m, '$&\n$1lodash.findWhere = ' + methodName + ';'); - }); - } // add Underscore's chaining methods if (isUnderscore ? !_.contains(plusMethods, 'chain') : _.contains(plusMethods, 'chain')) { source = addChainMethods(source); diff --git a/dist/lodash.compat.js b/dist/lodash.compat.js index ec49eb880..81ff0df51 100644 --- a/dist/lodash.compat.js +++ b/dist/lodash.compat.js @@ -2737,7 +2737,7 @@ * * @static * @memberOf _ - * @alias detect + * @alias detect, findWhere * @category Collections * @param {Array|Object|String} collection The collection to iterate over. * @param {Function|Object|String} [callback=identity] The function called per @@ -5533,7 +5533,7 @@ // add functions to `lodash.prototype` mixin(lodash); - // add Underscore `_.chain` compat + // add Underscore compat lodash.chain = lodash; lodash.prototype.chain = function() { return this; }; @@ -5588,6 +5588,7 @@ lodash.all = every; lodash.any = some; lodash.detect = find; + lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.compat.min.js b/dist/lodash.compat.min.js index 16ece43dc..2248ebd73 100644 --- a/dist/lodash.compat.min.js +++ b/dist/lodash.compat.min.js @@ -5,34 +5,34 @@ * Underscore.js 1.4.4 underscorejs.org/LICENSE */ ;!function(n){function t(e){function a(n){return n&&typeof n=="object"&&!Ar(n)&&ur.call(n,"__wrapped__")?n:new X(n)}function T(n,t,r){r=(r||0)-1;for(var e=n.length;++rt||typeof n=="undefined")return 1;if(n=l&&a.indexOf!=f,g={},v={"false":!1,"function":!1,"null":!1,number:{},object:g,string:{},"true":!1,undefined:!1}; +}var a=ct(n),o=!r,i=t;if(o){var c=e;r=t}else if(!a){if(!e)throw new Kt;t=n}return u}function J(n){function t(t){return-1=l&&a.indexOf!=f,g={},v={"false":!1,"function":!1,"null":!1,number:{},object:g,string:{},"true":!1,undefined:!1}; if(s){for(;++ik;k++)e+="m='"+t.g[k]+"';if((!(p&&v[m])&&l.call(r,m))",t.i||(e+="||(!v[m]&&r[m]!==y[m])"),e+="){"+t.f+"}"; -e+="}"}return(t.b||xr.nonEnumArgs)&&(e+="}"),e+=t.c+";return C",n("i,j,l,n,o,q,t,u,y,z,w,G,H,J",r+e+"}")(I,Ut,ur,et,Ar,pt,Br,a,Vt,q,kr,F,Qt,lr)}function M(n){return lt(n)?pr(n):{}}function U(n){return Pr[n]}function V(n){return"\\"+D[n]}function Q(){var n=(n=a.indexOf)==Ot?T:n;return n}function W(n){return typeof n.toString!="function"&&typeof(n+"")=="string"}function X(n){this.__wrapped__=n}function Y(){}function Z(n){return function(t,e,u,o){return typeof e!="boolean"&&null!=e&&(o=u,u=o&&o[e]===t?r:e,e=!1),null!=u&&(u=a.createCallback(u,o)),n(t,e,u,o) -}}function nt(n){var t,e;return!n||lr.call(n)!=P||(t=n.constructor,ct(t)&&!(t instanceof t))||!xr.argsClass&&et(n)||!xr.nodeClass&&W(n)?!1:xr.ownLast?(qr(n,function(n,t,r){return e=ur.call(r,t),!1}),false!==e):(qr(n,function(n,t){e=t}),e===r||ur.call(n,e))}function tt(n,t,r){t||(t=0),typeof r=="undefined"&&(r=n?n.length:0);var e=-1;r=r-t||0;for(var u=$t(0>r?0:r);++er?0:r);++er?yr(0,a+r):r)||0,a&&typeof a=="number"?o=-1<(pt(n)?n.indexOf(t,r):u(n,t,r)):Nr(n,function(n){return++er?yr(0,a+r):r)||0,a&&typeof a=="number"?o=-1<(pt(n)?n.indexOf(t,r):u(n,t,r)):Nr(n,function(n){return++eu&&(u=i)}}else t=!t&&pt(n)?L:a.createCallback(t,r),Nr(n,function(n,r,a){r=t(n,r,a),r>e&&(e=r,u=n)});return u}function Ct(n,t,r,e){var u=3>arguments.length;if(t=a.createCallback(t,e,4),Ar(n)){var o=-1,i=n.length;for(u&&(r=n[++o]);++oarguments.length;if(typeof o!="number")var c=Br(n),o=c.length;else xr.unindexedChars&&pt(n)&&(u=n.split(""));return t=a.createCallback(t,e,4),dt(n,function(n,e,a){e=c?c[--o]:--o,r=i?(i=!1,u[e]):t(r,u[e],e,a)}),r}function wt(n,t,r){var e;if(t=a.createCallback(t,r),Ar(n)){r=-1;for(var u=n.length;++rr?yr(0,e+r):r||0}else if(r)return r=St(n,t),n[r]===t?r:-1;return n?T(n,t,r):-1}function Et(n,t,r){if(typeof t!="number"&&null!=t){var e=0,u=-1,o=n?n.length:0;for(t=a.createCallback(t,r);++u>>1,r(n[e])r?0:r);++t/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:y,variable:"",imports:{_:a}};var Or={a:"x,F,k",h:"var a=arguments,b=0,c=typeof k=='number'?2:a.length;while(++b":">",'"':""","'":"'"},zr=ot(Pr),Fr=K(Or,{h:Or.h.replace(";",";if(c>3&&typeof a[c-2]=='function'){var d=u.createCallback(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){d=a[--c]}"),f:"C[m]=d?d(C[m],r[m]):r[m]"}),$r=K(Or),qr=K(Er,Sr,{i:!1}),Dr=K(Er,Sr); -ct(/x/)&&(ct=function(n){return typeof n=="function"&&lr.call(n)==B});var Rr=er?function(n){if(!n||lr.call(n)!=P||!xr.argsClass&&et(n))return!1;var t=n.valueOf,r=typeof t=="function"&&(r=er(t))&&er(r);return r?n==r||er(n)==r:nt(n)}:nt,Tr=bt,Lr=Z(function Jr(n,t,r){for(var e=-1,u=n?n.length:0,a=[];++e=l,i=[],c=o?J():r?[]:i;++e=l,i=[],c=o?J():r?[]:i;++en?t():function(){return 1>--n?t.apply(this,arguments):void 0}},a.assign=Fr,a.at=function(n){var t=-1,r=nr.apply(Mt,_r.call(arguments,1)),e=r.length,u=$t(e);for(xr.unindexedChars&&pt(n)&&(n=n.split(""));++t++i&&(a=n.apply(o,u)),c=cr(e,t),a}},a.defaults=$r,a.defer=Nt,a.delay=function(n,t){var e=_r.call(arguments,2);return cr(function(){n.apply(r,e)},t)},a.difference=kt,a.filter=yt,a.flatten=Lr,a.forEach=dt,a.forIn=qr,a.forOwn=Dr,a.functions=at,a.groupBy=function(n,t,r){var e={};return t=a.createCallback(t,r),dt(n,function(n,r,u){r=Jt(t(n,r,u)),(ur.call(e,r)?e[r]:e[r]=[]).push(n) }),e},a.initial=function(n,t,r){if(!n)return[];var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else e=null==t||r?1:t||e;return tt(n,0,mr(yr(0,u-e),u))},a.intersection=function(n){var t=arguments,r=t.length,e=J(),u={},a=-1,o=n?n.length:0,i=[];n:for(;++ae(i,r))&&(o[r]=n)}),o},a.once=function(n){var t,r;return function(){return t?r:(t=!0,r=n.apply(this,arguments),n=null,r)}},a.pairs=function(n){for(var t=-1,r=Br(n),e=r.length,u=$t(e);++tr?yr(0,e+r):mr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},a.mixin=zt,a.noConflict=function(){return e._=Wt,this},a.parseInt=Hr,a.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=br();return n%1||t%1?n+mr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+tr(r*(t-n+1))},a.reduce=Ct,a.reduceRight=jt,a.result=function(n,t){var e=n?n[t]:r;return ct(e)?n[t]():e},a.runInContext=t,a.size=function(n){var t=n?n.length:0; +},a.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?yr(0,e+r):mr(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},a.mixin=zt,a.noConflict=function(){return e._=Qt,this},a.parseInt=Hr,a.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=br();return n%1||t%1?n+mr(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+tr(r*(t-n+1))},a.reduce=Ct,a.reduceRight=jt,a.result=function(n,t){var e=n?n[t]:r;return ct(e)?n[t]():e},a.runInContext=t,a.size=function(n){var t=n?n.length:0; return typeof t=="number"?t:Br(n).length},a.some=wt,a.sortedIndex=St,a.template=function(n,t,e){var u=a.templateSettings;n||(n=""),e=$r({},e,u);var o,i=$r({},e.imports,u.imports),u=Br(i),i=gt(i),c=0,l=e.interpolate||_,g="__p+='",l=Ht((e.escape||_).source+"|"+l.source+"|"+(l===y?v:_).source+"|"+(e.evaluate||_).source+"|$","g");n.replace(l,function(t,r,e,u,a,i){return e||(e=u),g+=n.slice(c,i).replace(j,V),r&&(g+="'+__e("+r+")+'"),a&&(o=!0,g+="';"+a+";__p+='"),e&&(g+="'+((__t=("+e+"))==null?'':__t)+'"),c=i+t.length,t }),g+="';\n",l=e=e.variable,l||(e="obj",g="with("+e+"){"+g+"}"),g=(o?g.replace(f,""):g).replace(p,"$1").replace(s,"$1;"),g="function("+e+"){"+(l?"":e+"||("+e+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+g+"return __p}";try{var h=Rt(u,"return "+g).apply(r,i)}catch(m){throw m.source=g,m}return t?h(t):(h.source=g,h)},a.unescape=function(n){return null==n?"":Jt(n).replace(g,rt)},a.uniqueId=function(n){var t=++o;return Jt(null==n?"":n)+t -},a.all=ht,a.any=wt,a.detect=mt,a.foldl=Ct,a.foldr=jt,a.include=vt,a.inject=Ct,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(){var t=[this.__wrapped__];return ar.apply(t,arguments),n.apply(a,t)})}),a.first=xt,a.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return tt(n,yr(0,u-e))}},a.take=xt,a.head=xt,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r); +},a.all=ht,a.any=wt,a.detect=mt,a.findWhere=mt,a.foldl=Ct,a.foldr=jt,a.include=vt,a.inject=Ct,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(){var t=[this.__wrapped__];return ar.apply(t,arguments),n.apply(a,t)})}),a.first=xt,a.last=function(n,t,r){if(n){var e=0,u=n.length;if(typeof t!="number"&&null!=t){var o=u;for(t=a.createCallback(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return tt(n,yr(0,u-e))}},a.take=xt,a.head=xt,Dr(a,function(n,t){a.prototype[t]||(a.prototype[t]=function(t,r){var e=n(this.__wrapped__,t,r); return null==t||r&&typeof t!="function"?e:new X(e)})}),a.VERSION="1.2.1",a.prototype.toString=function(){return Jt(this.__wrapped__)},a.prototype.value=Ft,a.prototype.valueOf=Ft,Nr(["join","pop","shift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments)}}),Nr(["push","reverse","sort","unshift"],function(n){var t=Mt[n];a.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),Nr(["concat","slice","splice"],function(n){var t=Mt[n];a.prototype[n]=function(){return new X(t.apply(this.__wrapped__,arguments)) }}),xr.spliceObjects||Nr(["pop","shift","splice"],function(n){var t=Mt[n],r="splice"==n;a.prototype[n]=function(){var n=this.__wrapped__,e=t.apply(n,arguments);return 0===n.length&&delete n[0],r?new X(e):e}}),a}var r,e=typeof exports=="object"&&exports,u=typeof module=="object"&&module&&module.exports==e&&module,a=typeof global=="object"&&global;(a.global===a||a.window===a)&&(n=a);var o=0,i={},c=+new Date+"",l=75,f=/\b__p\+='';/g,p=/\b(__p\+=)''\+/g,s=/(__e\(.*?\)|\b__t\))\+'';/g,g=/&(?:amp|lt|gt|quot|#39);/g,v=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,h=/\w*$/,y=/<%=([\s\S]+?)%>/g,m=(m=/\bthis\b/)&&m.test(t)&&m,d=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",b=RegExp("^["+d+"]*0+(?=.$)"),_=/($^)/,C=/[&<>"']/g,j=/['\n\r\t\u2028\u2029\\]/g,w="Array Boolean Date Error Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),x="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),O="[object Arguments]",E="[object Array]",S="[object Boolean]",A="[object Date]",I="[object Error]",B="[object Function]",N="[object Number]",P="[object Object]",z="[object RegExp]",F="[object String]",$={}; $[B]=!1,$[O]=$[E]=$[S]=$[A]=$[N]=$[P]=$[z]=$[F]=!0;var q={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},D={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},R=t();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=R, define(function(){return R})):e&&!e.nodeType?u?(u.exports=R)._=R:e._=R:n._=R}(this); \ No newline at end of file diff --git a/dist/lodash.js b/dist/lodash.js index 2cf66ece0..4f55498e8 100644 --- a/dist/lodash.js +++ b/dist/lodash.js @@ -2401,7 +2401,7 @@ * * @static * @memberOf _ - * @alias detect + * @alias detect, findWhere * @category Collections * @param {Array|Object|String} collection The collection to iterate over. * @param {Function|Object|String} [callback=identity] The function called per @@ -5207,7 +5207,7 @@ // add functions to `lodash.prototype` mixin(lodash); - // add Underscore `_.chain` compat + // add Underscore compat lodash.chain = lodash; lodash.prototype.chain = function() { return this; }; @@ -5262,6 +5262,7 @@ lodash.all = every; lodash.any = some; lodash.detect = find; + lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.min.js b/dist/lodash.min.js index f4ff99db4..234b9a84a 100644 --- a/dist/lodash.min.js +++ b/dist/lodash.min.js @@ -4,41 +4,41 @@ * Build: `lodash modern -o ./dist/lodash.js` * Underscore.js 1.4.4 underscorejs.org/LICENSE */ -;!function(n){function t(o){function f(n){if(!n||fe.call(n)!=B)return a;var t=n.valueOf,e=typeof t=="function"&&(e=re(t))&&re(e);return e?n==e||re(n)==e:et(n)}function P(n,t,e){if(!n||!q[typeof n])return n;t=t&&typeof e=="undefined"?t:G.createCallback(t,e);for(var r=-1,u=q[typeof n]?xe(n):[],a=u.length;++rt||typeof n=="undefined")return 1;if(n=s&&G.indexOf!=l,y={},h={"false":a,"function":a,"null":a,number:{},object:y,string:{},"true":a,undefined:a};if(g){for(;++ce?0:e);++rt||typeof n=="undefined")return 1;if(n=s&&W.indexOf!=l,y={},h={"false":a,"function":a,"null":a,number:{},object:y,string:{},"true":a,undefined:a};if(g){for(;++ce?0:e);++re?ye(0,o+e):e)||0,o&&typeof o=="number"?i=-1<(st(n)?n.indexOf(t,e):u(n,t,e)):P(n,function(n){return++ru&&(u=o)}}else t=!t&&st(n)?J:G.createCallback(t,e),dt(n,function(n,e,a){e=t(n,e,a),e>r&&(r=e,u=n)});return u}function jt(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number")for(var u=Dt(r);++earguments.length;t=G.createCallback(t,r,4);var o=-1,i=n.length;if(typeof i=="number")for(u&&(e=n[++o]);++oarguments.length;if(typeof u!="number")var i=xe(n),u=i.length;return t=G.createCallback(t,r,4),dt(n,function(r,f,c){f=i?i[--u]:--u,e=o?(o=a,n[f]):t(e,n[f],f,c)}),e}function xt(n,t,e){var r;t=G.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++ee?ye(0,r+e):e||0}else if(e)return e=Nt(n,t),n[e]===t?e:-1;return n?H(n,t,e):-1}function It(n,t,e){if(typeof t!="number"&&t!=u){var r=0,a=-1,o=n?n.length:0;for(t=G.createCallback(t,e);++a>>1,e(n[r])e?0:e);++t/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:d,variable:"",imports:{_:G}},nt.prototype=G.prototype;var Ce=pe,xe=ge?function(n){return lt(n)?ge(n):[]}:V,Oe={"&":"&","<":"<",">":">",'"':""","'":"'"},Ee=it(Oe),Se=tt(function Ae(n,t,e){for(var r=-1,u=n?n.length:0,a=[];++r=s,i=[],f=o?W():e?[]:i;++rn?t():function(){return 1>--n?t.apply(this,arguments):void 0}},G.assign=U,G.at=function(n){for(var t=-1,e=ne.apply(Lt,de.call(arguments,1)),r=e.length,u=Dt(r);++t++l&&(f=n.apply(c,i)),p=ie(o,t),f}},G.defaults=M,G.defer=Ft,G.delay=function(n,t){var r=de.call(arguments,2);return ie(function(){n.apply(e,r)},t)},G.difference=Ot,G.filter=bt,G.flatten=Se,G.forEach=dt,G.forIn=K,G.forOwn=P,G.functions=ot,G.groupBy=function(n,t,e){var r={};return t=G.createCallback(t,e),dt(n,function(n,e,u){e=Ht(t(n,e,u)),(ue.call(r,e)?r[e]:r[e]=[]).push(n) -}),r},G.initial=function(n,t,e){if(!n)return[];var r=0,a=n.length;if(typeof t!="number"&&t!=u){var o=a;for(t=G.createCallback(t,e);o--&&t(n[o],o,n);)r++}else r=t==u||e?1:t||r;return rt(n,0,he(ye(0,a-r),a))},G.intersection=function(n){var t=arguments,e=t.length,r=W(),u={},a=-1,o=n?n.length:0,i=[];n:for(;++ar(o,e))&&(a[e]=n)}),a},G.once=function(n){var t,e;return function(){return t?e:(t=r,e=n.apply(this,arguments),n=u,e)}},G.pairs=function(n){for(var t=-1,e=xe(n),r=e.length,u=Dt(r);++te?ye(0,r+e):he(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},G.mixin=Tt,G.noConflict=function(){return o._=Wt,this},G.parseInt=Ne,G.random=function(n,t){n==u&&t==u&&(t=1),n=+n||0,t==u?(t=n,n=0):t=+t||0;var e=me();return n%1||t%1?n+he(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+te(e*(t-n+1))},G.reduce=wt,G.reduceRight=Ct,G.result=function(n,t){var r=n?n[t]:e;return ct(r)?n[t]():r},G.runInContext=t,G.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:xe(n).length -},G.some=xt,G.sortedIndex=Nt,G.template=function(n,t,u){var a=G.templateSettings;n||(n=""),u=M({},u,a);var o,i=M({},u.imports,a.imports),a=xe(i),i=gt(i),f=0,c=u.interpolate||w,l="__p+='",c=Gt((u.escape||w).source+"|"+c.source+"|"+(c===d?b:w).source+"|"+(u.evaluate||w).source+"|$","g");n.replace(c,function(t,e,u,a,i,c){return u||(u=a),l+=n.slice(f,c).replace(x,Y),e&&(l+="'+__e("+e+")+'"),i&&(o=r,l+="';"+i+";__p+='"),u&&(l+="'+((__t=("+u+"))==null?'':__t)+'"),f=c+t.length,t}),l+="';\n",c=u=u.variable,c||(u="obj",l="with("+u+"){"+l+"}"),l=(o?l.replace(v,""):l).replace(g,"$1").replace(y,"$1;"),l="function("+u+"){"+(c?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}"; -try{var p=Kt(a,"return "+l).apply(e,i)}catch(s){throw s.source=l,s}return t?p(t):(p.source=l,p)},G.unescape=function(n){return n==u?"":Ht(n).replace(h,ut)},G.uniqueId=function(n){var t=++c;return Ht(n==u?"":n)+t},G.all=ht,G.any=xt,G.detect=mt,G.foldl=wt,G.foldr=Ct,G.include=yt,G.inject=wt,P(G,function(n,t){G.prototype[t]||(G.prototype[t]=function(){var t=[this.__wrapped__];return ae.apply(t,arguments),n.apply(G,t)})}),G.first=Et,G.last=function(n,t,e){if(n){var r=0,a=n.length;if(typeof t!="number"&&t!=u){var o=a; -for(t=G.createCallback(t,e);o--&&t(n[o],o,n);)r++}else if(r=t,r==u||e)return n[a-1];return rt(n,ye(0,a-r))}},G.take=Et,G.head=Et,P(G,function(n,t){G.prototype[t]||(G.prototype[t]=function(t,e){var r=n(this.__wrapped__,t,e);return t==u||e&&typeof t!="function"?r:new nt(r)})}),G.VERSION="1.2.1",G.prototype.toString=function(){return Ht(this.__wrapped__)},G.prototype.value=qt,G.prototype.valueOf=qt,dt(["join","pop","shift"],function(n){var t=Lt[n];G.prototype[n]=function(){return t.apply(this.__wrapped__,arguments) -}}),dt(["push","reverse","sort","unshift"],function(n){var t=Lt[n];G.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),dt(["concat","slice","splice"],function(n){var t=Lt[n];G.prototype[n]=function(){return new nt(t.apply(this.__wrapped__,arguments))}}),G}var e,r=!0,u=null,a=!1,o=typeof exports=="object"&&exports,i=typeof module=="object"&&module&&module.exports==o&&module,f=typeof global=="object"&&global;(f.global===f||f.window===f)&&(n=f);var c=0,l={},p=+new Date+"",s=75,v=/\b__p\+='';/g,g=/\b(__p\+=)''\+/g,y=/(__e\(.*?\)|\b__t\))\+'';/g,h=/&(?:amp|lt|gt|quot|#39);/g,b=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,m=/\w*$/,d=/<%=([\s\S]+?)%>/g,_=(_=/\bthis\b/)&&_.test(t)&&_,k=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",j=RegExp("^["+k+"]*0+(?=.$)"),w=/($^)/,C=/[&<>"']/g,x=/['\n\r\t\u2028\u2029\\]/g,O="Array Boolean Date Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),E="[object Arguments]",S="[object Array]",I="[object Boolean]",N="[object Date]",A="[object Function]",$="[object Number]",B="[object Object]",F="[object RegExp]",R="[object String]",T={}; +return e=(0>e?ye(0,o+e):e)||0,o&&typeof o=="number"?i=-1<(st(n)?n.indexOf(t,e):u(n,t,e)):P(n,function(n){return++ru&&(u=o)}}else t=!t&&st(n)?H:W.createCallback(t,e),dt(n,function(n,e,a){e=t(n,e,a),e>r&&(r=e,u=n)});return u}function jt(n,t){var e=-1,r=n?n.length:0;if(typeof r=="number")for(var u=Dt(r);++earguments.length;t=W.createCallback(t,r,4);var o=-1,i=n.length;if(typeof i=="number")for(u&&(e=n[++o]);++oarguments.length;if(typeof u!="number")var i=xe(n),u=i.length;return t=W.createCallback(t,r,4),dt(n,function(r,f,c){f=i?i[--u]:--u,e=o?(o=a,n[f]):t(e,n[f],f,c)}),e}function xt(n,t,e){var r;t=W.createCallback(t,e),e=-1;var u=n?n.length:0;if(typeof u=="number")for(;++ee?ye(0,r+e):e||0}else if(e)return e=Nt(n,t),n[e]===t?e:-1;return n?G(n,t,e):-1}function It(n,t,e){if(typeof t!="number"&&t!=u){var r=0,a=-1,o=n?n.length:0;for(t=W.createCallback(t,e);++a>>1,e(n[r])e?0:e);++t/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:d,variable:"",imports:{_:W}},nt.prototype=W.prototype;var Ce=pe,xe=ge?function(n){return lt(n)?ge(n):[]}:V,Oe={"&":"&","<":"<",">":">",'"':""","'":"'"},Ee=it(Oe),Se=tt(function Ae(n,t,e){for(var r=-1,u=n?n.length:0,a=[];++r=s,i=[],f=o?Q():e?[]:i;++rn?t():function(){return 1>--n?t.apply(this,arguments):void 0}},W.assign=U,W.at=function(n){for(var t=-1,e=ne.apply(Jt,de.call(arguments,1)),r=e.length,u=Dt(r);++t++l&&(f=n.apply(c,i)),p=ie(o,t),f}},W.defaults=M,W.defer=Ft,W.delay=function(n,t){var r=de.call(arguments,2);return ie(function(){n.apply(e,r)},t)},W.difference=Ot,W.filter=bt,W.flatten=Se,W.forEach=dt,W.forIn=K,W.forOwn=P,W.functions=ot,W.groupBy=function(n,t,e){var r={};return t=W.createCallback(t,e),dt(n,function(n,e,u){e=Gt(t(n,e,u)),(ue.call(r,e)?r[e]:r[e]=[]).push(n) +}),r},W.initial=function(n,t,e){if(!n)return[];var r=0,a=n.length;if(typeof t!="number"&&t!=u){var o=a;for(t=W.createCallback(t,e);o--&&t(n[o],o,n);)r++}else r=t==u||e?1:t||r;return rt(n,0,he(ye(0,a-r),a))},W.intersection=function(n){var t=arguments,e=t.length,r=Q(),u={},a=-1,o=n?n.length:0,i=[];n:for(;++ar(o,e))&&(a[e]=n)}),a},W.once=function(n){var t,e;return function(){return t?e:(t=r,e=n.apply(this,arguments),n=u,e)}},W.pairs=function(n){for(var t=-1,e=xe(n),r=e.length,u=Dt(r);++te?ye(0,r+e):he(e,r-1))+1);r--;)if(n[r]===t)return r;return-1},W.mixin=Tt,W.noConflict=function(){return o._=Qt,this},W.parseInt=Ne,W.random=function(n,t){n==u&&t==u&&(t=1),n=+n||0,t==u?(t=n,n=0):t=+t||0;var e=me();return n%1||t%1?n+he(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+te(e*(t-n+1))},W.reduce=wt,W.reduceRight=Ct,W.result=function(n,t){var r=n?n[t]:e;return ct(r)?n[t]():r},W.runInContext=t,W.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:xe(n).length +},W.some=xt,W.sortedIndex=Nt,W.template=function(n,t,u){var a=W.templateSettings;n||(n=""),u=M({},u,a);var o,i=M({},u.imports,a.imports),a=xe(i),i=gt(i),f=0,c=u.interpolate||w,l="__p+='",c=Wt((u.escape||w).source+"|"+c.source+"|"+(c===d?b:w).source+"|"+(u.evaluate||w).source+"|$","g");n.replace(c,function(t,e,u,a,i,c){return u||(u=a),l+=n.slice(f,c).replace(x,Y),e&&(l+="'+__e("+e+")+'"),i&&(o=r,l+="';"+i+";__p+='"),u&&(l+="'+((__t=("+u+"))==null?'':__t)+'"),f=c+t.length,t}),l+="';\n",c=u=u.variable,c||(u="obj",l="with("+u+"){"+l+"}"),l=(o?l.replace(v,""):l).replace(g,"$1").replace(y,"$1;"),l="function("+u+"){"+(c?"":u+"||("+u+"={});")+"var __t,__p='',__e=_.escape"+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+l+"return __p}"; +try{var p=Kt(a,"return "+l).apply(e,i)}catch(s){throw s.source=l,s}return t?p(t):(p.source=l,p)},W.unescape=function(n){return n==u?"":Gt(n).replace(h,ut)},W.uniqueId=function(n){var t=++c;return Gt(n==u?"":n)+t},W.all=ht,W.any=xt,W.detect=mt,W.findWhere=mt,W.foldl=wt,W.foldr=Ct,W.include=yt,W.inject=wt,P(W,function(n,t){W.prototype[t]||(W.prototype[t]=function(){var t=[this.__wrapped__];return ae.apply(t,arguments),n.apply(W,t)})}),W.first=Et,W.last=function(n,t,e){if(n){var r=0,a=n.length;if(typeof t!="number"&&t!=u){var o=a; +for(t=W.createCallback(t,e);o--&&t(n[o],o,n);)r++}else if(r=t,r==u||e)return n[a-1];return rt(n,ye(0,a-r))}},W.take=Et,W.head=Et,P(W,function(n,t){W.prototype[t]||(W.prototype[t]=function(t,e){var r=n(this.__wrapped__,t,e);return t==u||e&&typeof t!="function"?r:new nt(r)})}),W.VERSION="1.2.1",W.prototype.toString=function(){return Gt(this.__wrapped__)},W.prototype.value=qt,W.prototype.valueOf=qt,dt(["join","pop","shift"],function(n){var t=Jt[n];W.prototype[n]=function(){return t.apply(this.__wrapped__,arguments) +}}),dt(["push","reverse","sort","unshift"],function(n){var t=Jt[n];W.prototype[n]=function(){return t.apply(this.__wrapped__,arguments),this}}),dt(["concat","slice","splice"],function(n){var t=Jt[n];W.prototype[n]=function(){return new nt(t.apply(this.__wrapped__,arguments))}}),W}var e,r=!0,u=null,a=!1,o=typeof exports=="object"&&exports,i=typeof module=="object"&&module&&module.exports==o&&module,f=typeof global=="object"&&global;(f.global===f||f.window===f)&&(n=f);var c=0,l={},p=+new Date+"",s=75,v=/\b__p\+='';/g,g=/\b(__p\+=)''\+/g,y=/(__e\(.*?\)|\b__t\))\+'';/g,h=/&(?:amp|lt|gt|quot|#39);/g,b=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,m=/\w*$/,d=/<%=([\s\S]+?)%>/g,_=(_=/\bthis\b/)&&_.test(t)&&_,k=" \t\x0B\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000",j=RegExp("^["+k+"]*0+(?=.$)"),w=/($^)/,C=/[&<>"']/g,x=/['\n\r\t\u2028\u2029\\]/g,O="Array Boolean Date Function Math Number Object RegExp String _ attachEvent clearTimeout isFinite isNaN parseInt setImmediate setTimeout".split(" "),E="[object Arguments]",S="[object Array]",I="[object Boolean]",N="[object Date]",A="[object Function]",$="[object Number]",B="[object Object]",F="[object RegExp]",R="[object String]",T={}; T[A]=a,T[E]=T[S]=T[I]=T[N]=T[$]=T[B]=T[F]=T[R]=r;var q={"boolean":a,"function":r,object:r,number:a,string:a,undefined:a},D={"\\":"\\","'":"'","\n":"n","\r":"r","\t":"t","\u2028":"u2028","\u2029":"u2029"},z=t();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=z, define(function(){return z})):o&&!o.nodeType?i?(i.exports=z)._=z:o._=z:n._=z}(this); \ No newline at end of file diff --git a/dist/lodash.underscore.js b/dist/lodash.underscore.js index fb47ab194..e5eb98b7f 100644 --- a/dist/lodash.underscore.js +++ b/dist/lodash.underscore.js @@ -1777,7 +1777,7 @@ * * @static * @memberOf _ - * @alias detect + * @alias detect, findWhere * @category Collections * @param {Array|Object|String} collection The collection to iterate over. * @param {Function|Object|String} [callback=identity] The function called per @@ -4152,8 +4152,9 @@ * '); */ function template(text, data, options) { + var settings = lodash.templateSettings; text || (text = ''); - options = defaults({}, options, lodash.templateSettings); + options = defaults({}, options, settings); var index = 0, source = "__p += '", @@ -4448,7 +4449,7 @@ lodash.tail = rest; lodash.unique = uniq; - // add Underscore `_.chain` compat + // add Underscore compat lodash.chain = chain; /*--------------------------------------------------------------------------*/ @@ -4459,7 +4460,6 @@ lodash.escape = escape; lodash.every = every; lodash.find = find; - lodash.findWhere = findWhere; lodash.has = has; lodash.identity = identity; lodash.indexOf = indexOf; @@ -4497,6 +4497,7 @@ lodash.all = every; lodash.any = some; lodash.detect = find; + lodash.findWhere = findWhere; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/dist/lodash.underscore.min.js b/dist/lodash.underscore.min.js index 92c606f8c..45328b0e5 100644 --- a/dist/lodash.underscore.min.js +++ b/dist/lodash.underscore.min.js @@ -27,9 +27,9 @@ return N(n,function(n){i[++e]=(u?t:n[t]).apply(n,r)}),i},t.keys=$t,t.map=B,t.max return u},t.reject=function(n,t,r){return t=W(t,r),E(n,function(n,r,e){return!t(n,r,e)})},t.rest=C,t.shuffle=function(n){var t=-1,r=n?n.length:0,e=Array(typeof r=="number"?r:0);return N(n,function(n){var r=bt(qt()*(++t+1));e[t]=e[r],e[r]=n}),e},t.sortBy=function(n,t,r){var u=-1,o=n?n.length:0,i=Array(typeof o=="number"?o:0);for(t=W(t,r),N(n,function(n,r,e){i[++u]={a:t(n,r,e),b:u,c:n}}),o=i.length,i.sort(e);o--;)i[o]=i[o].c;return i},t.tap=function(n,t){return t(n),n},t.throttle=function(n,t){function r(){i=new Date,a=null,u=n.apply(o,e) }var e,u,o,i=0,a=null;return function(){var f=new Date,l=t-(f-i);return e=arguments,o=this,0r?0:r);++tr?Ft(0,e+r):kt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},t.mixin=H,t.noConflict=function(){return n._=gt,this},t.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=qt();return n%1||t%1?n+kt(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+bt(r*(t-n+1)) -},t.reduce=q,t.reduceRight=R,t.result=function(n,t){var r=n?n[t]:null;return b(r)?n[t]():r},t.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:$t(n).length},t.some=D,t.sortedIndex=P,t.template=function(n,r,e){n||(n=""),e=g({},e,t.templateSettings);var u=0,o="__p+='",i=e.variable;n.replace(RegExp((e.escape||nt).source+"|"+(e.interpolate||nt).source+"|"+(e.evaluate||nt).source+"|$","g"),function(t,r,e,i,f){return o+=n.slice(u,f).replace(rt,a),r&&(o+="'+_['escape']("+r+")+'"),i&&(o+="';"+i+";__p+='"),e&&(o+="'+((__t=("+e+"))==null?'':__t)+'"),u=f+t.length,t -}),o+="';\n",i||(i="obj",o="with("+i+"||{}){"+o+"}"),o="function("+i+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+o+"return __p}";try{var f=Function("_","return "+o)(t)}catch(l){throw l.source=o,l}return r?f(r):(f.source=o,f)},t.unescape=function(n){return null==n?"":(n+"").replace(Z,p)},t.uniqueId=function(n){var t=++Q+"";return n?n+t:t},t.all=O,t.any=D,t.detect=S,t.foldl=q,t.foldr=R,t.include=x,t.inject=q,t.first=$,t.last=function(n,t,r){if(n){var e=0,u=n.length; +},t.every=O,t.find=S,t.has=function(n,t){return n?dt.call(n,t):!1},t.identity=G,t.indexOf=z,t.isArguments=s,t.isArray=Tt,t.isBoolean=function(n){return true===n||false===n||At.call(n)==ot},t.isDate=function(n){return n?typeof n=="object"&&At.call(n)==it:!1},t.isElement=function(n){return n?1===n.nodeType:!1},t.isEmpty=m,t.isEqual=_,t.isFinite=function(n){return St(n)&&!Nt(parseFloat(n))},t.isFunction=b,t.isNaN=function(n){return j(n)&&n!=+n},t.isNull=function(n){return null===n},t.isNumber=j,t.isObject=d,t.isRegExp=function(n){return!(!n||!pt[typeof n])&&At.call(n)==lt +},t.isString=w,t.isUndefined=function(n){return typeof n=="undefined"},t.lastIndexOf=function(n,t,r){var e=n?n.length:0;for(typeof r=="number"&&(e=(0>r?Ft(0,e+r):kt(r,e-1))+1);e--;)if(n[e]===t)return e;return-1},t.mixin=H,t.noConflict=function(){return n._=gt,this},t.random=function(n,t){null==n&&null==t&&(t=1),n=+n||0,null==t?(t=n,n=0):t=+t||0;var r=qt();return n%1||t%1?n+kt(r*(t-n+parseFloat("1e-"+((r+"").length-1))),t):n+bt(r*(t-n+1))},t.reduce=q,t.reduceRight=R,t.result=function(n,t){var r=n?n[t]:null; +return b(r)?n[t]():r},t.size=function(n){var t=n?n.length:0;return typeof t=="number"?t:$t(n).length},t.some=D,t.sortedIndex=P,t.template=function(n,r,e){var u=t.templateSettings;n||(n=""),e=g({},e,u);var o=0,i="__p+='",u=e.variable;n.replace(RegExp((e.escape||nt).source+"|"+(e.interpolate||nt).source+"|"+(e.evaluate||nt).source+"|$","g"),function(t,r,e,u,f){return i+=n.slice(o,f).replace(rt,a),r&&(i+="'+_['escape']("+r+")+'"),u&&(i+="';"+u+";__p+='"),e&&(i+="'+((__t=("+e+"))==null?'':__t)+'"),o=f+t.length,t +}),i+="';\n",u||(u="obj",i="with("+u+"||{}){"+i+"}"),i="function("+u+"){var __t,__p='',__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+i+"return __p}";try{var f=Function("_","return "+i)(t)}catch(l){throw l.source=i,l}return r?f(r):(f.source=i,f)},t.unescape=function(n){return null==n?"":(n+"").replace(Z,p)},t.uniqueId=function(n){var t=++Q+"";return n?n+t:t},t.all=O,t.any=D,t.detect=S,t.findWhere=function(n,t){return M(n,t,!0)},t.foldl=q,t.foldr=R,t.include=x,t.inject=q,t.first=$,t.last=function(n,t,r){if(n){var e=0,u=n.length; if(typeof t!="number"&&null!=t){var o=u;for(t=W(t,r);o--&&t(n[o],o,n);)e++}else if(e=t,null==e||r)return n[u-1];return Rt.call(n,Ft(0,u-e))}},t.take=$,t.head=$,t.VERSION="1.2.1",H(t),t.prototype.chain=function(){return this.__chain__=!0,this},t.prototype.value=function(){return this.__wrapped__},N("pop push reverse shift sort splice unshift".split(" "),function(n){var r=vt[n];t.prototype[n]=function(){var n=this.__wrapped__;return r.apply(n,arguments),!Mt.spliceObjects&&0===n.length&&delete n[0],this }}),N(["concat","join","slice"],function(n){var r=vt[n];t.prototype[n]=function(){var n=r.apply(this.__wrapped__,arguments);return this.__chain__&&(n=new l(n),n.__chain__=!0),n}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(n._=t, define(function(){return t})):J&&!J.nodeType?K?(K.exports=t)._=t:J._=t:n._=t}(this); \ No newline at end of file diff --git a/lodash.js b/lodash.js index 2360afcb3..c95cf4f19 100644 --- a/lodash.js +++ b/lodash.js @@ -2756,7 +2756,7 @@ * * @static * @memberOf _ - * @alias detect + * @alias detect, findWhere * @category Collections * @param {Array|Object|String} collection The collection to iterate over. * @param {Function|Object|String} [callback=identity] The function called per @@ -5552,7 +5552,7 @@ // add functions to `lodash.prototype` mixin(lodash); - // add Underscore `_.chain` compat + // add Underscore compat lodash.chain = lodash; lodash.prototype.chain = function() { return this; }; @@ -5607,6 +5607,7 @@ lodash.all = every; lodash.any = some; lodash.detect = find; + lodash.findWhere = find; lodash.foldl = reduce; lodash.foldr = reduceRight; lodash.include = contains; diff --git a/test/test-build.js b/test/test-build.js index 37cfdbdd0..3fcd3f452 100644 --- a/test/test-build.js +++ b/test/test-build.js @@ -57,6 +57,7 @@ 'drop': 'rest', 'each': 'forEach', 'extend': 'assign', + 'findWhere': 'find', 'foldl': 'reduce', 'foldr': 'reduceRight', 'head': 'first', @@ -76,7 +77,7 @@ 'contains': ['include'], 'every': ['all'], 'filter': ['select'], - 'find': ['detect'], + 'find': ['detect', 'findWhere'], 'first': ['head', 'take'], 'forEach': ['each'], 'functions': ['methods'], @@ -95,7 +96,7 @@ }); /** List of all methods */ - var allMethods = lodashMethods.concat('findWhere'); + var allMethods = lodashMethods.slice(); /** List of "Arrays" category methods */ var arraysMethods = [ @@ -1341,37 +1342,6 @@ /*--------------------------------------------------------------------------*/ - QUnit.module('commands with findWhere'); - - (function() { - var commands = [ - 'underscore include=findWhere', - 'modern include=findWhere', - 'plus=findWhere' - ]; - - commands.forEach(function(command) { - asyncTest('`lodash ' + command + '`', function() { - var start = _.after(2, _.once(QUnit.start)); - - build(['-s'].concat(command.split(' ')), function(data) { - var basename = path.basename(data.outputPath, '.js'), - context = createContext(); - - vm.runInContext(data.source, context); - var lodash = context._; - - var collection = [{ 'a': 1 }, { 'a': 1 }]; - deepEqual(lodash.findWhere(collection, { 'a': 1 }), collection[0], '_.findWhere: ' + basename); - - start(); - }); - }); - }); - }()); - - /*--------------------------------------------------------------------------*/ - QUnit.module('no-dep option'); (function() {