before(function(done){

    	//do this up front yo
    	backbone = new winback();


    	var exampleJSON = 
		{
            "win-data" : "win-data",
			"win-phylogeny" : winphylogeny,
			"test" : emptyModule
		};

		var configurations = 
		{
			"global" : {
                "server" : "http://localhost",
                "port" : "3000"
			},
            "win-data" : {
                logLevel : backbone.testing
            },
			"win-phylogeny" : {
				logLevel : backbone.testing
			}
		};

    	backbone.logLevel = backbone.testing;

    	backEmit = backbone.getEmitter(emptyModule);
    	backLog = backbone.getLogger({winFunction:"mocha"});
    	backLog.logLevel = backbone.testing;

    	//loading modules is synchronous
    	backbone.loadModules(exampleJSON, configurations);

    	var registeredEvents = backbone.registeredEvents();
    	var requiredEvents = backbone.moduleRequirements();
    		
    	backLog('Backbone Events registered: ', registeredEvents);
    	backLog('Required: ', requiredEvents);

    	backbone.initializeModules(function()
    	{
    		backLog("Finished Module Init");
 			done();
    	});

    });
function winsetup(requiredEvents, moduleJSON, moduleConfigs, finished)
{ 
    var winback = require('win-backbone');

    var Q = require('q');

    var backbone, generator, backEmit, backLog;

    var emptyModule = 
    {
        winFunction : "experiment",
        eventCallbacks : function(){ return {}; },
        requiredEvents : function() {
            return requiredEvents;
        }
    };

    //add our own empty module onto this object
    moduleJSON["setupExperiment"] = emptyModule;
    
    var qBackboneResponse = function()
    {
        var defer = Q.defer();
        // self.log('qBBRes: Original: ', arguments);

        //first add our own function type
        var augmentArgs = arguments;
        // [].splice.call(augmentArgs, 0, 0, self.winFunction);
        //make some assumptions about the returning call
        var callback = function(err)
        {
            if(err)
            {
              backLog("QCall fail: ", err);
                defer.reject(err);
            }
            else
            {
                //remove the error object, send the info onwards
                [].shift.call(arguments);
                if(arguments.length > 1)
                    defer.resolve(arguments);
                else
                    defer.resolve.apply(defer, arguments);
            }
        };

        //then we add our callback to the end of our function -- which will get resolved here with whatever arguments are passed back
        [].push.call(augmentArgs, callback);

        // self.log('qBBRes: Augmented: ', augmentArgs);
        //make the call, we'll catch it inside the callback!
        backEmit.apply(backEmit, augmentArgs);

        return defer.promise;
    }

    //do this up front yo
    backbone = new winback();

    backbone.logLevel = backbone.testing;

    backEmit = backbone.getEmitter(emptyModule);
    backLog = backbone.getLogger({winFunction:"experiment"});
    backLog.logLevel = backbone.testing;

    //loading modules is synchronous
    backbone.loadModules(moduleJSON, moduleConfigs);

    var registeredEvents = backbone.registeredEvents();
    var requiredEvents = backbone.moduleRequirements();
      
    backLog('Backbone Events registered: ', registeredEvents);
    backLog('Required: ', requiredEvents);

    backbone.initializeModules(function(err)
    {
      backLog("Finished Module Init");
      finished(err, {logger: backLog, emitter: backEmit, backbone: backbone, qCall: qBackboneResponse});
    });
}
Example #3
0
    before(function(done){

    	//do this up front yo
    	backbone = new winback();


    	var sampleJSON = 
		{
			"win-neat" : winneat,
			"win-gen" : "win-gen",
			"win-schema" : "win-schema",
			"test" : emptyModule
		};
		var configurations = 
		{
			"global" : {
			},
			"win-neat" : {
                neatParameters : np,
				options : {
					initialMutationCount : 0, 
					postMutationCount : 0
				}
				,logLevel : backbone.testing
			},
			"win-gen" : {
				"encodings" : [
					"NEATGenotype"
				]
				,validateParents : true
				,validateOffspring : true
				// ,logLevel : backbone.testing
			},
			"win-schema" : {
				multipleErrors : true
				// ,logLevel : backbone.testing
			}
		};

    	backbone.logLevel = backbone.testing;

    	backEmit = backbone.getEmitter(emptyModule);
    	backLog = backbone.getLogger({winFunction:"mocha"});
    	backLog.logLevel = backbone.testing;

    	//loading modules is synchronous
    	backbone.loadModules(sampleJSON, configurations);

    	var registeredEvents = backbone.registeredEvents();
    	var requiredEvents = backbone.moduleRequirements();
    		
    	backLog('Backbone Events registered: ', registeredEvents);
    	backLog('Required: ', requiredEvents);

    	backbone.initializeModules(function()
    	{
    		backLog("Finished Module Init");
 			done();
    	});

    });