.queue(function (assetGraph) {
                expect(assetGraph, 'to contain assets', 'Png', 3);

                expect(_.pluck(assetGraph.findAssets({isImage: true}), 'url').sort(), 'to equal', [
                    assetGraph.root + 'purplealpha24bit.pngquant=256.png',
                    assetGraph.root + 'redalpha24bit.png?irrelevant',
                    assetGraph.root + 'redalpha24bit.pngquant=128.png'
                ]);
                // The first two CssImage relations should be in the same cssRule
                var cssBackgroundImages = assetGraph.findRelations({type: 'CssImage'});
                expect(cssBackgroundImages[0].cssRule, 'to equal', cssBackgroundImages[1].cssRule);

                var rawSrcs = assetGraph.findRelations({type: 'CssImage'}).map(function (cssImageRelation) {
                    return cssImageRelation.to.rawSrc;
                });

                // Should look like PNGs:
                expect(_.toArray(rawSrcs[0].slice(0, 4)), 'to equal', [0x89, 0x50, 0x4e, 0x47]);
                expect(_.toArray(rawSrcs[1].slice(0, 4)), 'to equal', [0x89, 0x50, 0x4e, 0x47]);
                expect(rawSrcs[1].length, 'to be less than', rawSrcs[0].length);

                var cssBackgroundImages = assetGraph.findRelations({type: 'CssImage'});
                expect(cssBackgroundImages[0].cssRule, 'to equal', cssBackgroundImages[1].cssRule);
            })
  execute: function(input) {
    var validationRules = {
      reference: {length: {min: 1,max: 20}},
      date: {length: {min: 8,max: 8}},
      amount: {length: {min: 1,max: 15}}
    };
    if (!cieUtils.validateInput(input,validationRules )) {
      throw new Error('Longitud invalida');
    }
    var condensedInput = parseInput(input);
    var acc = cieUtils.weightedReduce(_.toArray(condensedInput.reference).reverse(),[11,13,17,19,23]);
    var acc_2 = ((acc % 97)+1)%10;

    return condensedInput.reference + acc_2;
  }
Exemple #3
0
	server.secure = function(router /*, and token1, token2, ...*/){
		
		apiTokenMap[router.meta.entity] = apiTokenMap[router.meta.entity] || {};
		var atm = apiTokenMap[router.meta.entity];

		var tokens = _.toArray(arguments).slice(1).concat(['create', 'list', 'read', 'modify']);
		_.each(tokens, function(t){
			atm[t] = false;
		});

		//give router a token checker to be used when defining the routes (apis)
		//e.g router.get('url..', router.token(...), function(req, res, next){...});
		router.token = function(/*token1, token2, ...*/){
			if(!profile.auth || !profile.auth.enabled) return function(req, res, next){next();};

			var tokens = _.toArray(arguments);
			return function(req, res, next){
				if(req.session && req.session.username){
					if(req.session.userspace === 'superadmin') return next();
					//within the user & admin space, check api-access-token first
					var pass = true;
					var map = req.session['api-token-map'] && req.session['api-token-map'][router.meta.entity];
					if(map){
						for(var t in tokens){
							if(!map[tokens[t]]) {
								pass = false;
								break;
							}
						}
				    }else
				    	pass = false;
					if(pass) {
						if(req.session.userspace === 'user') req.mutex = true;
						return next();
					/////////////////////////////////////////////////////////////////////
					//Don't forget to apply the space, mutex rule(s) in the guarded api//
					/////////////////////////////////////////////////////////////////////
					}
					return res.status(403).json({error: 'Authorization'}); 
				}else {
					return res.status(401).json({error: 'Authentication'});
				}
			};
		};

		return router;

	};
module.exports = function (/*[match...], [done]*/) {
    var matchStrings = _.toArray(arguments);
    var done = _.identity;
    if (_.isFunction(_.last(matchStrings))) done = matchStrings.pop();

    filteredBuckets(matchStrings, function (err, buckets) {
        if (err) return done(err);

        if (isConsole) {
            console.log('Buckets:'.bold);
            console.log(buckets.sort().join('\n'));
        }

        done(null, buckets);
    });
};
Exemple #5
0
  compile: function(dsl) {
    if (arguments.length > 1)
      dsl = u_.toArray(arguments);

    var root = treeFromDsl(dsl);
    transform(this.options_, root);
    var v0 = graphFromTree(root);

    checkUniqueNumericalIds(v0);
    if (this.options_.requireUniqueNames)
      checkUniquenessOfNames(v0);

    preOrder(v0, normalize);

    return flow.create(root, v0, sortVertices(v0), this.options_);
  }
PulsarApi.prototype.jobs = function(callback) {
  var clientList = _.toArray(this._clientMap);
  clientList.unshift(this._clientDefault);

  var getClientJobs = function(client, callback) {
    return client.jobs(callback);
  };

  return async.map(clientList, getClientJobs, function(results) {
    var concatenator = function(all, items) {
      return all.concat(items);
    };
    var jobs = _.reduce(results, concatenator, []);
    return callback(jobs);
  });
};
Exemple #7
0
/**
 * Extract stylesheets' hrefs from dom
 * @param  {Array}  dom     List of DOMs loaded by cheerio
 * @param  {Object} options Options, as passed to UnCSS
 * @return {Array}          Array of hrefs
 */
function extractStylesheets(dom, options) {
    var media = _.union(['screen', 'all'], options.media),
        stylesheets;

    /* Match only specified media attributes, plus defaults */
    media = 'link[rel="stylesheet"]:not(media),' + media.map(function (selector) {
        return 'link[rel="stylesheet"]' + '[media="' + selector + '"]';
    }).join(', ');

    stylesheets = dom(media);

    /* Stylesheets is not an array, but an object whose elements are indexes */
    return _.toArray(stylesheets).map(function (x) {
        return x.attribs.href;
    });
}
Exemple #8
0
function asyncSocketEvent(socket, event) {
	var args = _.toArray(arguments).slice(1);
	
	return new Promise(function(resolve, reject) {
		args.push(function(err) {
			if (err != null) return reject(err);
			
			var args = _.toArray(arguments).slice(1),
				len = args.length;

			resolve(!len ? void 0 : len === 1 ? args[0] : args);
		});

		socket.emit.apply(socket, args);
	});
}
Exemple #9
0
function dispatch (/* arguments */) {
  var funs = _.toArray(arguments);
  var size = funs.length;

  return function(target /*, args */) {
    var ret = undefined;
    var args = _.rest(arguments);
    for (var funIndex = 0; funIndex < size; funIndex++) {
      var fun = funs[funIndex];
      ret = fun.apply(fun, construct(target, args));
      if (existy(ret)) return ret;
    }

    return ret;
  };
}
Exemple #10
0
		var definitionFn = function(done) {
			console.log('Called keyword ' + name + ' definition with args', JSON.stringify(arguments));
			console.log('Calling following keys ', JSON.stringify(keys));

			// Save original args
			var args = _.toArray(arguments)
			var vars = _.last(args);
			args = _.initial(args);
			var keywordInfo = _.last(args);
			args = _.initial(args);
			keys.push({arguments: args});

			debugger;

			key.apply(null, keys).then(done);
		}
Exemple #11
0
  AV.Query.or = function() {
    var queries = _.toArray(arguments);
    var className = null;
    AV._arrayEach(queries, function(q) {
      if (_.isNull(className)) {
        className = q.className;
      }

      if (className !== q.className) {
        throw "All queries must be for the same class";
      }
    });
    var query = new AV.Query(className);
    query._orQuery(queries);
    return query;
  };
Exemple #12
0
 (exports.rpush = function(){
 	var self = this;
 	var args = _.toArray(arguments);
 	var cb = args.pop();
 	var key = args.shift();
 	if (!this.data[key]) {
 		this.data[key] = {val: [], type: 'list'};
 	} else if (this.data[key].type != 'list') {
 		cb(new Error('wrong type'));
 		return;
 	} 
	_.each(args,function(arg) {
		self.data[key].val.push(arg);
	})
	cb(null);
}).mutates = true;
Exemple #13
0
    q.on('connection', function(socket) {

        var sockets = _und.toArray( io.nsps['/questions'].connected );
        console.log(sockets.length);

        socket.emit('questions', questions);
        socket.emit('show', show);

        socket.on('showscore', function (data) {

            if ( data ) {
                show = true;
            } else {
                show = false;
            }

            socket.broadcast.emit('show', data);

        })

        socket.on('loggedin', function (obj) {
            socket.type = obj.type;
            socket.sqiffer_id = obj.id;

            db.getStreamScore( function (row) {

                if (socket.type === 'user') {
                    try {
                        var score = _und.findWhere(row.new_val.score, {group: socket.sqiffer_id});
                        socket.emit('scores', score);
                    } catch (err) {}
                } else {
                    socket.emit('scores', row);
                }

            });

        })

        socket.on('disconnect', function () {
            var sockets = _und.toArray( io.nsps['/questions'].connected );
            console.log(sockets.length);
        })

        return q;

    });
Exemple #14
0
	g_participants: function(){
		var users = _.reduce(_.toArray(arguments).join(':').split(';'), function(users, args){
			args = args.split(':');
			if(args[3] === "None") args[3] = "";
			if(args[4] === "None") args[4] = "";
			var user = makeUser(args[3], args[4], args[2], "", "");
			user.sess = args[0];
			user.time = parseFloat(args[1]);
			if(!user.name && !user.alias) user.name = utils.getAnonName(user.id, user.time);
			if(user.alias) user.alias = '#'+user.alias;
			users[user.sess] = user;
			return users;
		},{});
		return {
			type: "g_participants",
			users: users};
	},
	'keys must be unique even with different sources':function (){
	    var n1=orgParser.parseBigString(
		"* Key test\nData Line1\nData Line2\n* Header 2\nData Line of header2\n* Header 3");
	    var n2=orgParser.parseBigString(
		"* Key test\nData Line1\nData Line2\n* Header 2\nData Line of header2\n* Header 3");
	    keyCollection={};
	    //console.dir(n1);
	    //console.dir(n2);
	    _.each(n1,function(elem){
		    keyCollection[elem.key]=true;
	    });
	    _.each(n2,function(elem){
		    keyCollection[elem.key]=true;
	    });
	    assert.equal(_.toArray(keyCollection).length,(n1.length+n2.length));
	    
	},
Exemple #16
0
exports.compile = function(){
  var args = _.toArray(arguments),
    source = args.shift(),
    callback = args.pop(),
    extname = path.extname(source).substring(1);

  switch (args.length){
    case 2:
      var locals = args[1],
        ext = args[0];
      break;

    case 1:
      if (_.isObject(args[0])){
        var locals = args[0],
          ext = extname;
      } else {
        var ext = args[0];
      }
      break;

    default:
      var ext = extname;
      break;
  }

  file.read(source, function(err, result){
    if (err) throw err;

    if (result){
      if (render.hasOwnProperty(ext)){
        var newCallback = output(render[ext].output, callback);

        if (locals){
          render[ext](source, result, locals, newCallback);
        } else {
          render[ext](source, result, newCallback);
        }
      } else {
        callback(null, result);
      }
    } else {
      callback(null);
    }
  });
};
Exemple #17
0
	/// #### functional.dispatch(*functions)
	/// Returns a function taking one argument that will successively invokes
	/// the given functions on the given argument until one returns a value.
	///
	/// __Parameters:__
	/// - `functions`, functions.
	///
	/// __Return:__
	/// - `Function`.
	function dispatch() {
		var funs = _.toArray(arguments);
		var size = funs.length;

		return function(target) {
			var args = _.rest(arguments);

			for (var index = 0; index < size; index++) {
				var fun = funs[index];
				var ret = fun.apply(this, construct(target, args));

				if (!_.isUndefined(ret)) {
					return ret;
				}
			}
		};
	}
	    'random test 3':function(){
		// Given 1000 values the probability two launch give the same value is
		// 1/10000  i.e.  0,01%
		rList=[];
		_.each(_.range(10000), function (fakeNumber){
			rList.push(
				new orgParser.Orgnode("*", "Test "+fakeNumber, 
				"", undefined, undefined,undefined));
		});
		var ofd=new orgParser.OrgQuery( rList );
		var collector={};
		_.each(_.range(2),function(){
		    var r=ofd.random();
		    collector[r.key]=r;
		});
		assert.equal(_.toArray(collector).length,2);
	    }	
Exemple #19
0
function orify (/* preds */) {
  var preds = _.toArray(arguments);

  return function(/* args */) {
    var args = _.toArray(arguments);

    var something = function(ps, truth) {
      if (_.isEmpty(ps))
        return truth;
      else
        return _.some(args, _.first(ps)) 
          || something(_.rest(ps), truth)
    }

    return something(preds, false);
  };
}
Exemple #20
0
module.exports.rewriteDestinationPathForEngine = function rewriteDestinationPathForEngine(/* path parts */) {
    var config = CurrentConfig.get();
    var destpath = _.toArray(arguments).join(path.sep);
    var fileType = this.engineAndTypeFromFilepath(destpath).type;

    // get the engine from config for the given type
    var engine = config.engines[fileType];

    // replace everything after the file type with the new
    // engine extensions
    var replaceTypeWithEngineRe = new RegExp(fileType + '\\S*$');

    if (!fileType || !engine)
        return destpath;
    else
        return destpath.replace(replaceTypeWithEngineRe, engine);
};
Exemple #21
0
 return function(event) {
     var args = _.toArray(arguments);
     switch (event) {
     case 'changing':
         this.trigger.apply(this, args);
         break;
     case 'saverequired':
         this.needsSaved = true;
         this.trigger.apply(this, args);
         break;
     case 'add':
     case 'remove':
         // annotate add and remove events with the field in which they occured
         args[0] = event + ':' + field.name.toLowerCase();
         this.trigger.apply(this, args);
         break;
     }};
Exemple #22
0
function printChildren(data, label) {
  var nodes, s;
  data = _.toArray(data);

  // map workspace.name => nodes.label for
  // archy support.
  nodes = _.map(data, function(d) {
    return {'label': d['name']}
  });

  s = archy({
    label: label.green,
    nodes: nodes
  }, "    ");

  print(s);
}
Exemple #23
0
 getPictures: function(albumId, isShallow) {
   if (!this.pictures.hasOwnProperty(albumId)) {
     throw new Error("No such album!");
   }
   
   var modifiedPictures = {};
   _.each(this.pictures[albumId], function(picture, pictureId) {
     modifiedPictures[pictureId] = {};
     _.each(picture, function(value, key) {
       if (key !== "data" || !isShallow) {
         modifiedPictures[pictureId][key] = value;
       }
     });
   });
   
   return _.toArray(modifiedPictures);
 },
Exemple #24
0
logWithSpinner: function logWithSpinner(/* args */) {
    var self = this;
    var spinner = ['-', '\\', '|', '/'];
    var message = _.toArray(arguments).join(' ');
    var i = 0;
    var timer = setInterval(function () {
      self.singleLineLog(message + '... ' + spinner[i]);
      (i === 3) ? i = 0 : i++;
    }, 200);

    return {
      stop: function() {
        clearInterval(timer);
        console.log();
      }
    };
  }
Exemple #25
0
	function addJoin () {
		var args = _.toArray(arguments);

		var type = args[0];
		var table = args[1];
		var conditions = args.slice(2).reduce(function (soFar, c) {
			if (c) {
				soFar.push(c.toString());
			}
			return soFar;
		}, []);

		conditions = _.map(conditions, function (c) {
			return c.toString();
		});
		joins.push([type, table, 'ON'].concat(conditions.join(' AND ')).join(' '));
	}
Exemple #26
0
function oxfordJoin(array) {
  if (array instanceof Array) {

  } else {
    array = _.toArray(array).map(function(item) {
      return item.name;
    });
  }

  var string = '';
  if (array.length <= 1) {
    string = array.join();
  } else {
    string = array.slice(0, -1).join(", ") + ", and " + array[array.length-1];
  }
  return string;
}
Exemple #27
0
, getExternalsSource: function() {
    var args = _.toArray(arguments)
      , externalType = args.shift()
      , externalsArray = _(args).filter(function(externals) {
          return !!externals
        })

    if (!externalsArray.length) { return '' }

    return _.chain(externalsArray)
      .map(function(externals) { return externals.split(';') })
      .reduce(function(memo, externals) { return memo.concat(externals) })
      .map(function(external) {
        return this.makeExternal(external, externalType)
      }, this)
      .value().join('')
  }
Exemple #28
0
  var cleanExtend = function(dest, src) {
    if (arguments[2] !== undefined) { // support multiple src args
      return _.reduce(_.toArray(arguments), function(a, b) {
        return cleanExtend(a, b); // can't use directly because there's a 3rd arg
      }, dest);
    }

    for (var key in src) (function(key, value) {
      if (isPrivate(key)) return;
      if (value instanceof Function) return;
      if (value instanceof ComponentBase) return;
      if (value instanceof ModelBase) return;

      dest[key] = value;
    })(key, src[key]);

    return dest;
  };
 assetGraph.eachAssetPostOrder(htmlAsset, function (relation) {
     if (relation.type === 'HtmlStyle' || relation.type === 'CssImport') {
         var relationMedia = ['all'];
         if (relation.type === 'HtmlStyle') {
             relationMedia = (relation.node.getAttribute('media') || 'all').split(',');
         } else if (relation.type === 'CssImport' && relation.cssRule.media.length > 0) {
             relationMedia = _.toArray(relation.cssRule.media);
         }
         if (includeMedia(relationMedia)) {
             return true;
         } else {
             if (assetGraph.findRelations({to: relation.to}).length === 1) {
                 assetGraph.removeAsset(relation.to, true);
             }
         }
     }
     return false;
 }, function (cssAsset, incomingRelation) {
Exemple #30
0
		(next = function() {
			var args = _.toArray(arguments);

			if (args.length || !methods.length) {
				if (args[0] instanceof Error) {
					if (_.isString(args[0].message)) args[0] = args[0].message;
					else args[0] = args[0].toString();
				}

				return done.apply(self, args);
			}

			try {
				methods.shift().call(self, payload, next);
			} catch(e) {
				next(e);
			}
		})();