Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

added jscoverage support

  • Loading branch information...
commit f3cf374350939bad1bc801539a8082e8994a1dd4 1 parent b0003fe
Stephen Murphy authored November 02, 2012
4  .gitignore
... ...
@@ -1,2 +1,4 @@
1 1
 node_modules
2  
-testing
  2
+testing
  3
+coverage.html
  4
+lib-cov
8  Makefile
@@ -6,4 +6,10 @@ bootstrap:
6 6
 test:
7 7
 	npm test
8 8
 
9  
-.PHONY: test
  9
+test-cov: lib-cov
  10
+	@GEAR_COV=1 mocha --require should --reporter html-cov > coverage.html
  11
+
  12
+lib-cov:
  13
+	@jscoverage lib lib-cov
  14
+
  15
+.PHONY: test
62  build/gear.js
@@ -2131,7 +2131,7 @@ define('async', ['require', 'exports', 'module'], function(require, exports, mod
2131 2131
                 else {
2132 2132
                     completed += 1;
2133 2133
                     if (completed === arr.length) {
2134  
-                        callback();
  2134
+                        callback(null);
2135 2135
                     }
2136 2136
                 }
2137 2137
             });
@@ -2153,7 +2153,7 @@ define('async', ['require', 'exports', 'module'], function(require, exports, mod
2153 2153
                 else {
2154 2154
                     completed += 1;
2155 2155
                     if (completed === arr.length) {
2156  
-                        callback();
  2156
+                        callback(null);
2157 2157
                     }
2158 2158
                     else {
2159 2159
                         iterate();
@@ -2163,41 +2163,41 @@ define('async', ['require', 'exports', 'module'], function(require, exports, mod
2163 2163
         };
2164 2164
         iterate();
2165 2165
     };
2166  
-    
  2166
+
2167 2167
     async.forEachLimit = function (arr, limit, iterator, callback) {
2168 2168
         callback = callback || function () {};
2169 2169
         if (!arr.length || limit <= 0) {
2170  
-            return callback(); 
  2170
+            return callback();
2171 2171
         }
2172 2172
         var completed = 0;
2173 2173
         var started = 0;
2174 2174
         var running = 0;
2175  
-        
  2175
+
2176 2176
         (function replenish () {
2177  
-          if (completed === arr.length) {
2178  
-              return callback();
2179  
-          }
2180  
-          
2181  
-          while (running < limit && started < arr.length) {
2182  
-            iterator(arr[started], function (err) {
2183  
-              if (err) {
2184  
-                  callback(err);
2185  
-                  callback = function () {};
2186  
-              }
2187  
-              else {
2188  
-                  completed += 1;
2189  
-                  running -= 1;
2190  
-                  if (completed === arr.length) {
2191  
-                      callback();
2192  
-                  }
2193  
-                  else {
2194  
-                      replenish();
2195  
-                  }
2196  
-              }
2197  
-            });
2198  
-            started += 1;
2199  
-            running += 1;
2200  
-          }
  2177
+            if (completed === arr.length) {
  2178
+                return callback();
  2179
+            }
  2180
+
  2181
+            while (running < limit && started < arr.length) {
  2182
+                started += 1;
  2183
+                running += 1;
  2184
+                iterator(arr[started - 1], function (err) {
  2185
+                    if (err) {
  2186
+                        callback(err);
  2187
+                        callback = function () {};
  2188
+                    }
  2189
+                    else {
  2190
+                        completed += 1;
  2191
+                        running -= 1;
  2192
+                        if (completed === arr.length) {
  2193
+                            callback();
  2194
+                        }
  2195
+                        else {
  2196
+                            replenish();
  2197
+                        }
  2198
+                    }
  2199
+                });
  2200
+            }
2201 2201
         })();
2202 2202
     };
2203 2203
 
@@ -2440,7 +2440,7 @@ define('async', ['require', 'exports', 'module'], function(require, exports, mod
2440 2440
             var ready = function () {
2441 2441
                 return _reduce(requires, function (a, x) {
2442 2442
                     return (a && results.hasOwnProperty(x));
2443  
-                }, true);
  2443
+                }, true) && !results.hasOwnProperty(k);
2444 2444
             };
2445 2445
             if (ready()) {
2446 2446
                 task[task.length - 1](taskCallback, results);
@@ -2726,7 +2726,7 @@ define('async', ['require', 'exports', 'module'], function(require, exports, mod
2726 2726
     async.unmemoize = function (fn) {
2727 2727
       return function () {
2728 2728
         return (fn.unmemoized || fn).apply(null, arguments);
2729  
-      }
  2729
+      };
2730 2730
     };
2731 2731
 
2732 2732
 }());
2  build/gear.min.js
... ...
@@ -1 +1 @@
1  
-var requirejs,require,define;(function(global){"use strict";var version="2.0.2",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,cjsRequireRegExp=/require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,ostring=Object.prototype.toString,ap=Array.prototype,aps=ap.slice,apsp=ap.splice,isBrowser=!!(typeof window!=="undefined"&&navigator&&document),isWebWorker=!isBrowser&&typeof importScripts!=="undefined",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=false,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath;function isFunction(it){return ostring.call(it)==="[object Function]"}function isArray(it){return ostring.call(it)==="[object Array]"}function each(ary,func){if(ary){var i;for(i=0;i<ary.length;i+=1){if(ary[i]&&func(ary[i],i,ary)){break}}}}function eachReverse(ary,func){if(ary){var i;for(i=ary.length-1;i>-1;i-=1){if(ary[i]&&func(ary[i],i,ary)){break}}}}function hasProp(obj,prop){return obj.hasOwnProperty(prop)}function eachProp(obj,func){var prop;for(prop in obj){if(obj.hasOwnProperty(prop)){if(func(obj[prop],prop)){break}}}}function mixin(target,source,force,deepStringMixin){if(source){eachProp(source,function(value,prop){if(force||!hasProp(target,prop)){if(deepStringMixin&&typeof value!=="string"){if(!target[prop]){target[prop]={}}mixin(target[prop],value,force,deepStringMixin)}else{target[prop]=value}}})}return target}function bind(obj,fn){return function(){return fn.apply(obj,arguments)}}function scripts(){return document.getElementsByTagName("script")}function getGlobal(value){if(!value){return value}var g=global;each(value.split("."),function(part){g=g[part]});return g}function makeContextModuleFunc(func,relMap,enableBuildCallback){return function(){var args=aps.call(arguments,0),lastArg;if(enableBuildCallback&&isFunction(lastArg=args[args.length-1])){lastArg.__requireJsBuild=true}args.push(relMap);return func.apply(null,args)}}function addRequireMethods(req,context,relMap){each([["toUrl"],["undef"],["defined","requireDefined"],["specified","requireSpecified"]],function(item){var prop=item[1]||item[0];req[item[0]]=context?makeContextModuleFunc(context[prop],relMap):function(){var ctx=contexts[defContextName];return ctx[prop].apply(ctx,arguments)}})}function makeError(id,msg,err,requireModules){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);e.requireType=id;e.requireModules=requireModules;if(err){e.originalError=err}return e}if(typeof define!=="undefined"){return}if(typeof requirejs!=="undefined"){if(isFunction(requirejs)){return}cfg=requirejs;requirejs=undefined}if(typeof require!=="undefined"&&!isFunction(require)){cfg=require;require=undefined}function newContext(contextName){var config={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{}},registry={},undefEvents={},defQueue=[],defined={},urlFetched={},requireCounter=1,unnormalizedCounter=1,waitAry=[],inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId;function trimDots(ary){var i,part;for(i=0;ary[i];i+=1){part=ary[i];if(part==="."){ary.splice(i,1);i-=1}else if(part===".."){if(i===1&&(ary[2]===".."||ary[0]==="..")){break}else if(i>0){ary.splice(i-1,2);i-=2}}}}function normalize(name,baseName,applyMap){var baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"],pkgName,pkgConfig,mapValue,nameParts,i,j,nameSegment,foundMap;if(name&&name.charAt(0)==="."){if(baseName){if(config.pkgs[baseName]){baseParts=[baseName]}else{baseParts=baseParts.slice(0,baseParts.length-1)}name=baseParts.concat(name.split("/"));trimDots(name);pkgConfig=config.pkgs[pkgName=name[0]];name=name.join("/");if(pkgConfig&&name===pkgName+"/"+pkgConfig.main){name=pkgName}}else if(name.indexOf("./")===0){name=name.substring(2)}}if(applyMap&&(baseParts||starMap)&&map){nameParts=name.split("/");for(i=nameParts.length;i>0;i-=1){nameSegment=nameParts.slice(0,i).join("/");if(baseParts){for(j=baseParts.length;j>0;j-=1){mapValue=map[baseParts.slice(0,j).join("/")];if(mapValue){mapValue=mapValue[nameSegment];if(mapValue){foundMap=mapValue;break}}}}if(!foundMap&&starMap&&starMap[nameSegment]){foundMap=starMap[nameSegment]}if(foundMap){nameParts.splice(0,i,foundMap);name=nameParts.join("/");break}}}return name}function removeScript(name){if(isBrowser){each(scripts(),function(scriptNode){if(scriptNode.getAttribute("data-requiremodule")===name&&scriptNode.getAttribute("data-requirecontext")===context.contextName){scriptNode.parentNode.removeChild(scriptNode);return true}})}}function hasPathFallback(id){var pathConfig=config.paths[id];if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1){removeScript(id);pathConfig.shift();context.undef(id);context.require([id]);return true}}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var index=name?name.indexOf("!"):-1,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=true,normalizedName="",url,pluginModule,suffix;if(!name){isDefine=false;name="_@r"+(requireCounter+=1)}if(index!==-1){prefix=name.substring(0,index);name=name.substring(index+1,name.length)}if(prefix){prefix=normalize(prefix,parentName,applyMap);pluginModule=defined[prefix]}if(name){if(prefix){if(pluginModule&&pluginModule.normalize){normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)})}else{normalizedName=normalize(name,parentName,applyMap)}}else{normalizedName=normalize(name,parentName,applyMap);url=context.nameToUrl(name,null,parentModuleMap)}}suffix=prefix&&!pluginModule&&!isNormalized?"_unnormalized"+(unnormalizedCounter+=1):"";return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=registry[id];if(!mod){mod=registry[id]=new context.Module(depMap)}return mod}function on(depMap,name,fn){var id=depMap.id,mod=registry[id];if(hasProp(defined,id)&&(!mod||mod.defineEmitComplete)){if(name==="defined"){fn(defined[id])}}else{getModule(depMap).on(name,fn)}}function onError(err,errback){var ids=err.requireModules,notified=false;if(errback){errback(err)}else{each(ids,function(id){var mod=registry[id];if(mod){mod.error=err;if(mod.events.error){notified=true;mod.emit("error",err)}}});if(!notified){req.onError(err)}}}function takeGlobalQueue(){if(globalDefQueue.length){apsp.apply(defQueue,[defQueue.length-1,0].concat(globalDefQueue));globalDefQueue=[]}}function makeRequire(mod,enableBuildCallback,altRequire){var relMap=mod&&mod.map,modRequire=makeContextModuleFunc(altRequire||context.require,relMap,enableBuildCallback);addRequireMethods(modRequire,context,relMap);modRequire.isBrowser=isBrowser;return modRequire}handlers={require:function(mod){return makeRequire(mod)},exports:function(mod){mod.usingExports=true;if(mod.map.isDefine){return mod.exports=defined[mod.map.id]={}}},module:function(mod){return mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return config.config&&config.config[mod.map.id]||{}},exports:defined[mod.map.id]}}};function removeWaiting(id){delete registry[id];each(waitAry,function(mod,i){if(mod.map.id===id){waitAry.splice(i,1);if(!mod.defined){context.waitCount-=1}return true}})}function findCycle(mod,traced){var id=mod.map.id,depArray=mod.depMaps,foundModule;if(!mod.inited){return}if(traced[id]){return mod}traced[id]=true;each(depArray,function(depMap){var depId=depMap.id,depMod=registry[depId];if(!depMod){return}if(!depMod.inited||!depMod.enabled){foundModule=null;delete traced[id];return true}return foundModule=findCycle(depMod,mixin({},traced))});return foundModule}function forceExec(mod,traced,uninited){var id=mod.map.id,depArray=mod.depMaps;if(!mod.inited||!mod.map.isDefine){return}if(traced[id]){return defined[id]}traced[id]=mod;each(depArray,function(depMap){var depId=depMap.id,depMod=registry[depId],value;if(handlers[depId]){return}if(depMod){if(!depMod.inited||!depMod.enabled){uninited[id]=true;return}value=forceExec(depMod,traced,uninited);if(!uninited[depId]){mod.defineDepById(depId,value)}}});mod.check(true);return defined[id]}function modCheck(mod){mod.check()}function checkLoaded(){var waitInterval=config.waitSeconds*1e3,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],stillLoading=false,needCycleCheck=true,map,modId,err,usingPathFallback;if(inCheckLoaded){return}inCheckLoaded=true;eachProp(registry,function(mod){map=mod.map;modId=map.id;if(!mod.enabled){return}if(!mod.error){if(!mod.inited&&expired){if(hasPathFallback(modId)){usingPathFallback=true;stillLoading=true}else{noLoads.push(modId);removeScript(modId)}}else if(!mod.inited&&mod.fetched&&map.isDefine){stillLoading=true;if(!map.prefix){return needCycleCheck=false}}}});if(expired&&noLoads.length){err=makeError("timeout","Load timeout for modules: "+noLoads,null,noLoads);err.contextName=context.contextName;return onError(err)}if(needCycleCheck){each(waitAry,function(mod){if(mod.defined){return}var cycleMod=findCycle(mod,{}),traced={};if(cycleMod){forceExec(cycleMod,traced,{});eachProp(traced,modCheck)}});eachProp(registry,modCheck)}if((!expired||usingPathFallback)&&stillLoading){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId){checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded()},50)}}inCheckLoaded=false}Module=function(map){this.events=undefEvents[map.id]||{};this.map=map;this.shim=config.shim[map.id];this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Module.prototype={init:function(depMaps,factory,errback,options){options=options||{};if(this.inited){return}this.factory=factory;if(errback){this.on("error",errback)}else if(this.events.error){errback=bind(this,function(err){this.emit("error",err)})}this.depMaps=depMaps&&depMaps.slice(0);this.depMaps.rjsSkipMap=depMaps.rjsSkipMap;this.errback=errback;this.inited=true;this.ignore=options.ignore;if(options.enabled||this.enabled){this.enable()}else{this.check()}},defineDepById:function(id,depExports){var i;each(this.depMaps,function(map,index){if(map.id===id){i=index;return true}});return this.defineDep(i,depExports)},defineDep:function(i,depExports){if(!this.depMatched[i]){this.depMatched[i]=true;this.depCount-=1;this.depExports[i]=depExports}},fetch:function(){if(this.fetched){return}this.fetched=true;context.startTime=(new Date).getTime();var map=this.map;if(this.shim){makeRequire(this,true)(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load()}))}else{return map.prefix?this.callPlugin():this.load()}},load:function(){var url=this.map.url;if(!urlFetched[url]){urlFetched[url]=true;context.load(this.map.id,url)}},check:function(silent){if(!this.enabled||this.enabling){return}var id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory,err,cjsModule;if(!this.inited){this.fetch()}else if(this.error){this.emit("error",this.error)}else if(!this.defining){this.defining=true;if(this.depCount<1&&!this.defined){if(isFunction(factory)){if(this.events.error){try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}}else{exports=context.execCb(id,factory,depExports,exports)}if(this.map.isDefine){cjsModule=this.module;if(cjsModule&&cjsModule.exports!==undefined&&cjsModule.exports!==this.exports){exports=cjsModule.exports}else if(exports===undefined&&this.usingExports){exports=this.exports}}if(err){err.requireMap=this.map;err.requireModules=[this.map.id];err.requireType="define";return onError(this.error=err)}}else{exports=factory}this.exports=exports;if(this.map.isDefine&&!this.ignore){defined[id]=exports;if(req.onResourceLoad){req.onResourceLoad(context,this.map,this.depMaps)}}delete registry[id];this.defined=true;context.waitCount-=1;if(context.waitCount===0){waitAry=[]}}this.defining=false;if(!silent){if(this.defined&&!this.defineEmitted){this.defineEmitted=true;this.emit("defined",this.exports);this.defineEmitComplete=true}}}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix,null,false,true);on(pluginMap,"defined",bind(this,function(plugin){var name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,load,normalizedMap,normalizedMod;if(this.map.unnormalized){if(plugin.normalize){name=plugin.normalize(name,function(name){return normalize(name,parentName,true)})||""}normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap,false,true);on(normalizedMap,"defined",bind(this,function(value){this.init([],function(){return value},null,{enabled:true,ignore:true})}));normalizedMod=registry[normalizedMap.id];if(normalizedMod){if(this.events.error){normalizedMod.on("error",bind(this,function(err){this.emit("error",err)}))}normalizedMod.enable()}return}load=bind(this,function(value){this.init([],function(){return value},null,{enabled:true})});load.error=bind(this,function(err){this.inited=true;this.error=err;err.requireModules=[id];eachProp(registry,function(mod){if(mod.map.id.indexOf(id+"_unnormalized")===0){removeWaiting(mod.map.id)}});onError(err)});load.fromText=function(moduleName,text){var hasInteractive=useInteractive;if(hasInteractive){useInteractive=false}getModule(makeModuleMap(moduleName));req.exec(text);if(hasInteractive){useInteractive=true}context.completeLoad(moduleName)};plugin.load(map.name,makeRequire(map.parentMap,true,function(deps,cb){deps.rjsSkipMap=true;return context.require(deps,cb)}),load,config)}));context.enable(pluginMap,this);this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){this.enabled=true;if(!this.waitPushed){waitAry.push(this);context.waitCount+=1;this.waitPushed=true}this.enabling=true;each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if(typeof depMap==="string"){depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,false,!this.depMaps.rjsSkipMap);this.depMaps[i]=depMap;handler=handlers[depMap.id];if(handler){this.depExports[i]=handler(this);return}this.depCount+=1;on(depMap,"defined",bind(this,function(depExports){this.defineDep(i,depExports);this.check()}));if(this.errback){on(depMap,"error",this.errback)}}id=depMap.id;mod=registry[id];if(!handlers[id]&&mod&&!mod.enabled){context.enable(depMap,this)}}));eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=registry[pluginMap.id];if(mod&&!mod.enabled){context.enable(pluginMap,this)}}));this.enabling=false;this.check()},on:function(name,cb){var cbs=this.events[name];if(!cbs){cbs=this.events[name]=[]}cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)});if(name==="error"){delete this.events[name]}}};function callGetModule(args){getModule(makeModuleMap(args[0],null,true)).init(args[1],args[2])}function removeListener(node,func,name,ieName){if(node.detachEvent&&!isOpera){if(ieName){node.detachEvent(ieName,func)}}else{node.removeEventListener(name,func,false)}}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;removeListener(node,context.onScriptLoad,"load","onreadystatechange");removeListener(node,context.onScriptError,"error");return{node:node,id:node&&node.getAttribute("data-requiremodule")}}return context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,waitCount:0,defQueue:defQueue,Module:Module,makeModuleMap:makeModuleMap,configure:function(cfg){if(cfg.baseUrl){if(cfg.baseUrl.charAt(cfg.baseUrl.length-1)!=="/"){cfg.baseUrl+="/"}}var pkgs=config.pkgs,shim=config.shim,paths=config.paths,map=config.map;mixin(config,cfg,true);config.paths=mixin(paths,cfg.paths,true);if(cfg.map){config.map=mixin(map||{},cfg.map,true,true)}if(cfg.shim){eachProp(cfg.shim,function(value,id){if(isArray(value)){value={deps:value}}if(value.exports&&!value.exports.__buildReady){value.exports=context.makeShimExports(value.exports)}shim[id]=value});config.shim=shim}if(cfg.packages){each(cfg.packages,function(pkgObj){var location;pkgObj=typeof pkgObj==="string"?{name:pkgObj}:pkgObj;location=pkgObj.location;pkgs[pkgObj.name]={name:pkgObj.name,location:location||pkgObj.name,main:(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}});config.pkgs=pkgs}eachProp(registry,function(mod,id){mod.map=makeModuleMap(id)});if(cfg.deps||cfg.callback){context.require(cfg.deps||[],cfg.callback)}},makeShimExports:function(exports){var func;if(typeof exports==="string"){func=function(){return getGlobal(exports)};func.exports=exports;return func}else{return function(){return exports.apply(global,arguments)}}},requireDefined:function(id,relMap){return hasProp(defined,makeModuleMap(id,relMap,false,true).id)},requireSpecified:function(id,relMap){id=makeModuleMap(id,relMap,false,true).id;return hasProp(defined,id)||hasProp(registry,id)},require:function(deps,callback,errback,relMap){var moduleName,id,map,requireMod,args;if(typeof deps==="string"){if(isFunction(callback)){return onError(makeError("requireargs","Invalid require call"),errback)}if(req.get){return req.get(context,deps,callback)}moduleName=deps;relMap=callback;map=makeModuleMap(moduleName,relMap,false,true);id=map.id;if(!hasProp(defined,id)){return onError(makeError("notloaded",'Module name "'+id+'" has not been loaded yet for context: '+contextName))}return defined[id]}if(errback&&!isFunction(errback)){relMap=errback;errback=undefined}if(callback&&!isFunction(callback)){relMap=callback;callback=undefined}takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){return onError(makeError("mismatch","Mismatched anonymous define() module: "+args[args.length-1]))}else{callGetModule(args)}}requireMod=getModule(makeModuleMap(null,relMap));requireMod.init(deps,callback,errback,{enabled:true});checkLoaded();return context.require},undef:function(id){var map=makeModuleMap(id,null,true),mod=registry[id];delete defined[id];delete urlFetched[map.url];delete undefEvents[id];if(mod){if(mod.events.defined){undefEvents[id]=mod.events}removeWaiting(id)}},enable:function(depMap,parent){var mod=registry[depMap.id];if(mod){getModule(depMap).enable()}},completeLoad:function(moduleName){var shim=config.shim[moduleName]||{},shExports=shim.exports&&shim.exports.exports,found,args,mod;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){args[0]=moduleName;if(found){break}found=true}else if(args[0]===moduleName){found=true}callGetModule(args)}mod=registry[moduleName];if(!found&&!defined[moduleName]&&mod&&!mod.inited){if(config.enforceDefine&&(!shExports||!getGlobal(shExports))){if(hasPathFallback(moduleName)){return}else{return onError(makeError("nodefine","No define call for "+moduleName,null,[moduleName]))}}else{callGetModule([moduleName,shim.deps||[],shim.exports])}}checkLoaded()},toUrl:function(moduleNamePlusExt,relModuleMap){var index=moduleNamePlusExt.lastIndexOf("."),ext=null;if(index!==-1){ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length);moduleNamePlusExt=moduleNamePlusExt.substring(0,index)}return context.nameToUrl(moduleNamePlusExt,ext,relModuleMap)},nameToUrl:function(moduleName,ext,relModuleMap){var paths,pkgs,pkg,pkgPath,syms,i,parentModule,url,parentPath;moduleName=normalize(moduleName,relModuleMap&&relModuleMap.id,true);if(req.jsExtRegExp.test(moduleName)){url=moduleName+(ext||"")}else{paths=config.paths;pkgs=config.pkgs;syms=moduleName.split("/");for(i=syms.length;i>0;i-=1){parentModule=syms.slice(0,i).join("/");pkg=pkgs[parentModule];parentPath=paths[parentModule];if(parentPath){if(isArray(parentPath)){parentPath=parentPath[0]}syms.splice(0,i,parentPath);break}else if(pkg){if(moduleName===pkg.name){pkgPath=pkg.location+"/"+pkg.main}else{pkgPath=pkg.location}syms.splice(0,i,pkgPath);break}}url=syms.join("/")+(ext||".js");url=(url.charAt(0)==="/"||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((url.indexOf("?")===-1?"?":"&")+config.urlArgs):url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if(evt.type==="load"||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){return onError(makeError("scripterror","Script error",evt,[data.id]))}}}}req=requirejs=function(deps,callback,errback,optional){var contextName=defContextName,context,config;if(!isArray(deps)&&typeof deps!=="string"){config=deps;if(isArray(callback)){deps=callback;callback=errback;errback=optional}else{deps=[]}}if(config&&config.context){contextName=config.context}context=contexts[contextName];if(!context){context=contexts[contextName]=req.s.newContext(contextName)}if(config){context.configure(config)}return context.require(deps,callback,errback)};req.config=function(config){return req(config)};if(!require){require=req}req.version=version;req.jsExtRegExp=/^\/|:|\?|\.js$/;req.isBrowser=isBrowser;s=req.s={contexts:contexts,newContext:newContext};req({});addRequireMethods(req);if(isBrowser){head=s.head=document.getElementsByTagName("head")[0];baseElement=document.getElementsByTagName("base")[0];if(baseElement){head=s.head=baseElement.parentNode}}req.onError=function(err){throw err};req.load=function(context,moduleName,url){var config=context&&context.config||{},node;if(isBrowser){node=config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");node.type=config.scriptType||"text/javascript";node.charset="utf-8";node.setAttribute("data-requirecontext",context.contextName);node.setAttribute("data-requiremodule",moduleName);if(node.attachEvent&&!(node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0)&&!isOpera){useInteractive=true;node.attachEvent("onreadystatechange",context.onScriptLoad)}else{node.addEventListener("load",context.onScriptLoad,false);node.addEventListener("error",context.onScriptError,false)}node.src=url;currentlyAddingScript=node;if(baseElement){head.insertBefore(node,baseElement)}else{head.appendChild(node)}currentlyAddingScript=null;return node}else if(isWebWorker){importScripts(url);context.completeLoad(moduleName)}};function getInteractiveScript(){if(interactiveScript&&interactiveScript.readyState==="interactive"){return interactiveScript}eachReverse(scripts(),function(script){if(script.readyState==="interactive"){return interactiveScript=script}});return interactiveScript}if(isBrowser){eachReverse(scripts(),function(script){if(!head){head=script.parentNode}dataMain=script.getAttribute("data-main");if(dataMain){src=dataMain.split("/");mainScript=src.pop();subPath=src.length?src.join("/")+"/":"./";if(!cfg.baseUrl){cfg.baseUrl=subPath}dataMain=mainScript.replace(jsSuffixRegExp,"");cfg.deps=cfg.deps?cfg.deps.concat(dataMain):[dataMain];return true}})}define=function(name,deps,callback){var node,context;if(typeof name!=="string"){callback=deps;deps=name;name=null}if(!isArray(deps)){callback=deps;deps=[]}if(!deps.length&&isFunction(callback)){if(callback.length){callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)});deps=(callback.length===1?["require"]:["require","exports","module"]).concat(deps)}}if(useInteractive){node=currentlyAddingScript||getInteractiveScript();if(node){if(!name){name=node.getAttribute("data-requiremodule")}context=contexts[node.getAttribute("data-requirecontext")]}}(context?context.defQueue:globalDefQueue).push([name,deps,callback])};define.amd={jQuery:true};req.exec=function(text){return eval(text)};req(cfg)})(this);define("async",["require","exports","module"],function(require,exports,module){(function(){var async={};var root=this,previous_async=root.async;if(typeof module!=="undefined"&&module.exports){module.exports=async}else{root.async=async}async.noConflict=function(){root.async=previous_async;return async};var _forEach=function(arr,iterator){if(arr.forEach){return arr.forEach(iterator)}for(var i=0;i<arr.length;i+=1){iterator(arr[i],i,arr)}};var _map=function(arr,iterator){if(arr.map){return arr.map(iterator)}var results=[];_forEach(arr,function(x,i,a){results.push(iterator(x,i,a))});return results};var _reduce=function(arr,iterator,memo){if(arr.reduce){return arr.reduce(iterator,memo)}_forEach(arr,function(x,i,a){memo=iterator(memo,x,i,a)});return memo};var _keys=function(obj){if(Object.keys){return Object.keys(obj)}var keys=[];for(var k in obj){if(obj.hasOwnProperty(k)){keys.push(k)}}return keys};if(typeof process==="undefined"||!process.nextTick){async.nextTick=function(fn){setTimeout(fn,0)}}else{async.nextTick=process.nextTick}async.forEach=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;_forEach(arr,function(x){iterator(x,function(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed===arr.length){callback()}}})})};async.forEachSeries=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;var iterate=function(){iterator(arr[completed],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed===arr.length){callback()}else{iterate()}}})};iterate()};async.forEachLimit=function(arr,limit,iterator,callback){callback=callback||function(){};if(!arr.length||limit<=0){return callback()}var completed=0;var started=0;var running=0;(function replenish(){if(completed===arr.length){return callback()}while(running<limit&&started<arr.length){iterator(arr[started],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;running-=1;if(completed===arr.length){callback()}else{replenish()}}});started+=1;running+=1}})()};var doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.forEach].concat(args))}};var doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.forEachSeries].concat(args))}};var _asyncMap=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v;callback(err)})},function(err){callback(err,results)})};async.map=doParallel(_asyncMap);async.mapSeries=doSeries(_asyncMap);async.reduce=function(arr,memo,iterator,callback){async.forEachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v;callback(err)})},function(err){callback(err,memo)})};async.inject=async.reduce;async.foldl=async.reduce;async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)};async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter);async.filterSeries=doSeries(_filter);async.select=async.filter;async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(!v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject);async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){if(result){main_callback(x);main_callback=function(){}}else{callback()}})},function(err){main_callback()})};async.detect=doParallel(_detect);async.detectSeries=doSeries(_detect);async.some=function(arr,iterator,main_callback){async.forEach(arr,function(x,callback){iterator(x,function(v){if(v){main_callback(true);main_callback=function(){}}callback()})},function(err){main_callback(false)})};async.any=async.some;async.every=function(arr,iterator,main_callback){async.forEach(arr,function(x,callback){iterator(x,function(v){if(!v){main_callback(false);main_callback=function(){}}callback()})},function(err){main_callback(true)})};async.all=async.every;async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){if(err){callback(err)}else{callback(null,{value:x,criteria:criteria})}})},function(err,results){if(err){return callback(err)}else{var fn=function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))}})};async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks);if(!keys.length){return callback(null)}var results={};var listeners=[];var addListener=function(fn){listeners.unshift(fn)};var removeListener=function(fn){for(var i=0;i<listeners.length;i+=1){if(listeners[i]===fn){listeners.splice(i,1);return}}};var taskComplete=function(){_forEach(listeners.slice(0),function(fn){fn()})};addListener(function(){if(_keys(results).length===keys.length){callback(null,results);callback=function(){}}});_forEach(keys,function(k){var task=tasks[k]instanceof Function?[tasks[k]]:tasks[k];var taskCallback=function(err){if(err){callback(err);callback=function(){}}else{var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;taskComplete()}};var requires=task.slice(0,Math.abs(task.length-1))||[];var ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},true)};if(ready()){task[task.length-1](taskCallback,results)}else{var listener=function(){if(ready()){removeListener(listener);task[task.length-1](taskCallback,results)}};addListener(listener)}})};async.waterfall=function(tasks,callback){callback=callback||function(){};if(!tasks.length){return callback()}var wrapIterator=function(iterator){return function(err){if(err){callback(err);callback=function(){}}else{var args=Array.prototype.slice.call(arguments,1);var next=iterator.next();if(next){args.push(wrapIterator(next))}else{args.push(callback)}async.nextTick(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};async.parallel=function(tasks,callback){callback=callback||function(){};if(tasks.constructor===Array){async.map(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};async.forEach(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.series=function(tasks,callback){callback=callback||function(){};if(tasks.constructor===Array){async.mapSeries(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};async.forEachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){if(tasks.length){tasks[index].apply(null,arguments)}return fn.next()};fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null};return fn};return makeCallback(0)};async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]);cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat);async.concatSeries=doSeries(_concat);async.whilst=function(test,iterator,callback){if(test()){iterator(function(err){if(err){return callback(err)}async.whilst(test,iterator,callback)})}else{callback()}};async.until=function(test,iterator,callback){if(!test()){iterator(function(err){if(err){return callback(err)}async.until(test,iterator,callback)})}else{callback()}};async.queue=function(worker,concurrency){var workers=0;var q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,push:function(data,callback){if(data.constructor!==Array){data=[data]}_forEach(data,function(task){q.tasks.push({data:task,callback:typeof callback==="function"?callback:null});if(q.saturated&&q.tasks.length==concurrency){q.saturated()}async.nextTick(q.process)})},process:function(){if(workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();if(q.empty&&q.tasks.length==0)q.empty();workers+=1;worker(task.data,function(){workers-=1;if(task.callback){task.callback.apply(task,arguments)}if(q.drain&&q.tasks.length+workers==0)q.drain();q.process()})}},length:function(){return q.tasks.length},running:function(){return workers}};return q};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);if(typeof console!=="undefined"){if(err){if(console.error){console.error(err)}}else if(console[name]){_forEach(args,function(x){console[name](x)})}}}]))}};async.log=_console_fn("log");async.dir=_console_fn("dir");async.memoize=function(fn,hasher){var memo={};var queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments);var callback=args.pop();var key=hasher.apply(null,args);if(key in memo){callback.apply(null,memo[key])}else if(key in queues){queues[key].push(callback)}else{queues[key]=[callback];fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++){q[i].apply(null,arguments)}}]))}};memoized.unmemoized=fn;return memoized};async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}}})()});define("./blob",["require","exports"],function(require,exports){var Blob=exports.Blob=function Blob(parts,properties){parts=typeof parts==="undefined"?[]:Array.prototype.concat(parts);properties=properties||{};function mergeProps(object,props){Object.keys(props).forEach(function(prop){object[prop]=props[prop]})}var result=parts.length?parts.shift():"",props={},self=this;if(result instanceof Blob){mergeProps(props,result);result=result.result}parts.forEach(function(part){if(part instanceof Blob){mergeProps(props,part);result+=part.result}else{result+=part}});mergeProps(props,properties);Object.keys(props).forEach(function(prop){if(prop!=="result"){Object.defineProperty(self,prop,{enumerable:true,value:props[prop]})}});Object.defineProperty(this,"result",{value:result})};Blob.prototype.toString=function(){return this.result};var readFile={server:function(name,encoding,callback,sync){var fs=require("fs");if(sync){readFile.serverSync(name,encoding,callback)}else{fs.readFile(name,encoding==="bin"?undefined:encoding,function(err,data){if(err){callback(err)}else{callback(null,new Blob(data,{name:name}))}})}},serverSync:function(name,encoding,callback){var fs=require("fs"),data;try{data=fs.readFileSync(name,encoding==="bin"?undefined:encoding);callback(null,new Blob(data,{name:name}))}catch(e){callback(e)}},client:function(name,encoding,callback){if(name in localStorage){callback(null,new Blob(localStorage[name],{name:name}))}else{callback("localStorage has no item "+name)}}};Blob.readFile=Blob.prototype.readFile=typeof module==="undefined"?readFile.client:readFile.server;var writeFile={server:function(name,blob,encoding,callback){var fs=require("fs"),path=require("path"),nodeExists=fs.exists||path.exists,mkdirp=require("mkdirp").mkdirp,Crypto=require("crypto");function writeFile(filename,b){fs.writeFile(filename,b.result,encoding==="bin"?undefined:encoding,function(err){callback(err,new Blob(b,{name:filename}))})}var dirname=path.resolve(path.dirname(name)),checksum;if(name.indexOf("{checksum}")>-1){checksum=Crypto.createHash("md5");checksum.update(blob.result);name=name.replace("{checksum}",checksum.digest("hex"))}nodeExists(dirname,function(exists){if(!exists){mkdirp(dirname,"0755",function(err){if(err){callback(err)}else{writeFile(name,blob)}})}else{writeFile(name,blob)}})},client:function(name,blob,encoding,callback){localStorage[name]=blob.result;callback(null,new blob.constructor(blob,{name:name}))}};Blob.writeFile=Blob.prototype.writeFile=typeof module==="undefined"?writeFile.client:writeFile.server});define("./tasks/concat",["require","exports"],function(require,exports){exports.concat=function(options,prev,blob,done){options=options||{};done(null,new blob.constructor([prev,options.callback?options.callback(blob):blob]))}});define("./tasks/core",["require","exports","../blob"],function(require,exports){var Blob=require("../blob").Blob;exports.load=function(string,done){done(null,new Blob(string))};var test=exports.test=function(options,blob,done){options=options||{};done(options.callback?options.callback(blob):null)};test.type="each";var get=exports.get=function get(index,blobs,done){done(null,blobs.slice(index,index+1))};get.type="collect";var log=exports.log=function log(string,blobs,done){this._log(string);done(null,blobs)};log.type="collect";var inspect=exports.inspect=function inspect(options,blobs,done){var self=this;blobs.forEach(function(blob,index){var obj={result:blob.result};Object.keys(blob).forEach(function(attr){obj[attr]=blob[attr]});self._log("blob "+(index+1)+": "+JSON.stringify(obj,null," "))});done(null,blobs)};inspect.type="collect";exports.noop=function(dummy,blob,done){done(null,blob)}});define("./tasks/read",["require","exports","../blob"],function(require,exports){var Blob=require("../blob").Blob;exports.read=function(options,done){options=typeof options==="string"?{name:options}:options;var encoding=options.encoding||"utf8";Blob.readFile(options.name,encoding,done,options.sync)}});define("./tasks/write",["require","exports"],function(require,exports){var write=exports.write=function write(options,blob,done){options=typeof options==="string"?{name:options}:options;var encoding=options.encoding||"utf8";blob.writeFile(options.name,blob,encoding,done)};write.type="slice"});define("./tasks/tasks",["require","exports","async"],function(require,exports){var async=require("async");var tasks=exports.tasks=function tasks(workflow,blobs,done){var item,task,name,requires,fn,auto={},self=this;function runTask(name,options,requires){return function(callback,result){var new_blobs=requires.length?[]:blobs;result=result||[];requires.forEach(function(item){new_blobs=new_blobs.concat(result[item])});self._dispatch(name,options,new_blobs,callback)}}for(item in workflow){task=workflow[item].task;if(task===undefined){task=["noop"]}else{if(!Array.isArray(task)){task=[task]}}requires=workflow[item].requires;if(requires===undefined){requires=[]}else{if(!Array.isArray(requires)){requires=[requires]}}fn=runTask(task[0],task[1],requires);auto[item]=requires?requires.concat(fn):fn}async.auto(auto,function(err,results){if(err){done(err);return}done(err,results.join?results.join:[])})};tasks.type="collect"});define("./registry",["require","exports","./tasks/concat","./default_tasks"],function(require,exports){if(typeof module!=="undefined"){var fs=require("fs"),path=require("path"),existsSync=fs.existsSync||path.existsSync}else{var default_tasks=require("./default_tasks")}var Registry=exports.Registry=function Registry(options){var self=this;this._tasks={};if(typeof __dirname!=="undefined"){this.load({dirname:__dirname+"/tasks"})}else if(typeof default_tasks!=="undefined"){this.load({tasks:default_tasks})}if(options){this.load(options)}Object.defineProperty(this,"tasks",{get:function(){return Object.keys(self._tasks)}})};Registry.prototype={load:function(options){options=options||{};if(options.module){this._loadModule(options.module)}if(options.dirname){this._loadDir(options.dirname)}if(options.filename){this._loadFile(options.filename)}if(options.tasks){this._loadTasks(options.tasks)}},_loadModule:function(name){this._loadDir(path.resolve("node_modules",name,"lib"))},_loadDir:function(dirname){if(!existsSync(dirname)){throw new Error("Directory "+dirname+" doesn't exist")}var fs=require("fs"),files=fs.readdirSync(dirname),self=this;files.forEach(function(filename){self._loadFile(path.join(dirname,filename))})},_loadFile:function(filename){if(path.extname(filename)!==".js"){return}if(!existsSync(filename)){throw new Error("File "+filename+" doesn't exist")}this._loadTasks(require(filename))},_loadTasks:function(tasks){var name;for(name in tasks){this._tasks[name]=tasks[name]}},task:function(name){if(!(name in this._tasks)){throw new Error("Task "+name+" doesn't exist")}return this._tasks[name]}}});define("./queue",["require","exports","async","./registry","./blob"],function(require,exports){var async=require("async"),Registry=require("./registry").Registry,Blob=require("./blob").Blob;function zip(arr1,arr2){var zipped=[];for(var i=0;i<Math.min(arr1.length,arr2.length);i++){zipped.push([arr1[i],arr2[i]])}return zipped}function arrayize(arr){return typeof arr==="undefined"?[]:Array.prototype.concat(arr)}var Queue=exports.Queue=function Queue(options){var self=this;options=options||{};this._logger=options.logger||console;this._registry=options.registry||new Registry;this._clear();this._registry.tasks.forEach(function(name){self[name]=self.task.bind(self,name)})};Queue.prototype._clear=function(){this._queue=[function(callback){callback(null,[])}]};Queue.prototype._log=function(message){this._logger.log(message)};Queue.prototype._dispatch=function(name,options,blobs,done){var task=this._registry.task(name),types={2:"append",3:"map",4:"reduce"},type=task.type?task.type:types[task.length];function doneWrap(err,res){if(err){err={task:name,error:err}}done(err,res)}switch(type){case"append":async.map(arrayize(options),task.bind(this),function(err,results){doneWrap(err,blobs.concat(results))});break;case"collect":task.call(this,options,blobs,doneWrap);break;case"slice":async.map(zip(arrayize(options),blobs),function(arr,cb){task.call(this,arr[0],arr[1],cb)}.bind(this),doneWrap);break;case"each":async.forEach(blobs,task.bind(this,options),function(err){doneWrap(err,blobs)});break;case"map":async.map(blobs,task.bind(this,options),doneWrap);break;case"reduce":async.reduce(blobs,new Blob,task.bind(this,options),function(err,results){doneWrap(err,[results])});break;default:throw new Error('Task "'+name+'" has unknown type. Add a type property to the task function.')}};Queue.prototype.task=function(name,options){this._queue.push(this._dispatch.bind(this,name,options));return this};Queue.prototype.run=function(callback){async.waterfall(this._queue,callback)}});define("../blob",["require","exports","blob"],function(require,exports,blob){exports.Blob=blob.Blob});define("./default_tasks",["require","exports","./tasks/concat","./tasks/core","./tasks/read","./tasks/write","./tasks/tasks"],function(require,exports){var tasks=[];tasks.push(require("./tasks/concat"));tasks.push(require("./tasks/core"));tasks.push(require("./tasks/read"));tasks.push(require("./tasks/write"));tasks.push(require("./tasks/tasks"));tasks.forEach(function(mod){for(var task in mod){exports[task]=mod[task]}})});define("gear",["require","exports","blob","registry","queue"],function(require,exports,blob,registry,queue){exports.Blob=blob.Blob;exports.Registry=registry.Registry;exports.Queue=queue.Queue})
  1
+var requirejs,require,define;(function(global){"use strict";var version="2.0.2",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,cjsRequireRegExp=/require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,ostring=Object.prototype.toString,ap=Array.prototype,aps=ap.slice,apsp=ap.splice,isBrowser=!!(typeof window!=="undefined"&&navigator&&document),isWebWorker=!isBrowser&&typeof importScripts!=="undefined",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=false,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath;function isFunction(it){return ostring.call(it)==="[object Function]"}function isArray(it){return ostring.call(it)==="[object Array]"}function each(ary,func){if(ary){var i;for(i=0;i<ary.length;i+=1){if(ary[i]&&func(ary[i],i,ary)){break}}}}function eachReverse(ary,func){if(ary){var i;for(i=ary.length-1;i>-1;i-=1){if(ary[i]&&func(ary[i],i,ary)){break}}}}function hasProp(obj,prop){return obj.hasOwnProperty(prop)}function eachProp(obj,func){var prop;for(prop in obj){if(obj.hasOwnProperty(prop)){if(func(obj[prop],prop)){break}}}}function mixin(target,source,force,deepStringMixin){if(source){eachProp(source,function(value,prop){if(force||!hasProp(target,prop)){if(deepStringMixin&&typeof value!=="string"){if(!target[prop]){target[prop]={}}mixin(target[prop],value,force,deepStringMixin)}else{target[prop]=value}}})}return target}function bind(obj,fn){return function(){return fn.apply(obj,arguments)}}function scripts(){return document.getElementsByTagName("script")}function getGlobal(value){if(!value){return value}var g=global;each(value.split("."),function(part){g=g[part]});return g}function makeContextModuleFunc(func,relMap,enableBuildCallback){return function(){var args=aps.call(arguments,0),lastArg;if(enableBuildCallback&&isFunction(lastArg=args[args.length-1])){lastArg.__requireJsBuild=true}args.push(relMap);return func.apply(null,args)}}function addRequireMethods(req,context,relMap){each([["toUrl"],["undef"],["defined","requireDefined"],["specified","requireSpecified"]],function(item){var prop=item[1]||item[0];req[item[0]]=context?makeContextModuleFunc(context[prop],relMap):function(){var ctx=contexts[defContextName];return ctx[prop].apply(ctx,arguments)}})}function makeError(id,msg,err,requireModules){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);e.requireType=id;e.requireModules=requireModules;if(err){e.originalError=err}return e}if(typeof define!=="undefined"){return}if(typeof requirejs!=="undefined"){if(isFunction(requirejs)){return}cfg=requirejs;requirejs=undefined}if(typeof require!=="undefined"&&!isFunction(require)){cfg=require;require=undefined}function newContext(contextName){var config={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},shim:{}},registry={},undefEvents={},defQueue=[],defined={},urlFetched={},requireCounter=1,unnormalizedCounter=1,waitAry=[],inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId;function trimDots(ary){var i,part;for(i=0;ary[i];i+=1){part=ary[i];if(part==="."){ary.splice(i,1);i-=1}else if(part===".."){if(i===1&&(ary[2]===".."||ary[0]==="..")){break}else if(i>0){ary.splice(i-1,2);i-=2}}}}function normalize(name,baseName,applyMap){var baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"],pkgName,pkgConfig,mapValue,nameParts,i,j,nameSegment,foundMap;if(name&&name.charAt(0)==="."){if(baseName){if(config.pkgs[baseName]){baseParts=[baseName]}else{baseParts=baseParts.slice(0,baseParts.length-1)}name=baseParts.concat(name.split("/"));trimDots(name);pkgConfig=config.pkgs[pkgName=name[0]];name=name.join("/");if(pkgConfig&&name===pkgName+"/"+pkgConfig.main){name=pkgName}}else if(name.indexOf("./")===0){name=name.substring(2)}}if(applyMap&&(baseParts||starMap)&&map){nameParts=name.split("/");for(i=nameParts.length;i>0;i-=1){nameSegment=nameParts.slice(0,i).join("/");if(baseParts){for(j=baseParts.length;j>0;j-=1){mapValue=map[baseParts.slice(0,j).join("/")];if(mapValue){mapValue=mapValue[nameSegment];if(mapValue){foundMap=mapValue;break}}}}if(!foundMap&&starMap&&starMap[nameSegment]){foundMap=starMap[nameSegment]}if(foundMap){nameParts.splice(0,i,foundMap);name=nameParts.join("/");break}}}return name}function removeScript(name){if(isBrowser){each(scripts(),function(scriptNode){if(scriptNode.getAttribute("data-requiremodule")===name&&scriptNode.getAttribute("data-requirecontext")===context.contextName){scriptNode.parentNode.removeChild(scriptNode);return true}})}}function hasPathFallback(id){var pathConfig=config.paths[id];if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1){removeScript(id);pathConfig.shift();context.undef(id);context.require([id]);return true}}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var index=name?name.indexOf("!"):-1,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=true,normalizedName="",url,pluginModule,suffix;if(!name){isDefine=false;name="_@r"+(requireCounter+=1)}if(index!==-1){prefix=name.substring(0,index);name=name.substring(index+1,name.length)}if(prefix){prefix=normalize(prefix,parentName,applyMap);pluginModule=defined[prefix]}if(name){if(prefix){if(pluginModule&&pluginModule.normalize){normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)})}else{normalizedName=normalize(name,parentName,applyMap)}}else{normalizedName=normalize(name,parentName,applyMap);url=context.nameToUrl(name,null,parentModuleMap)}}suffix=prefix&&!pluginModule&&!isNormalized?"_unnormalized"+(unnormalizedCounter+=1):"";return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=registry[id];if(!mod){mod=registry[id]=new context.Module(depMap)}return mod}function on(depMap,name,fn){var id=depMap.id,mod=registry[id];if(hasProp(defined,id)&&(!mod||mod.defineEmitComplete)){if(name==="defined"){fn(defined[id])}}else{getModule(depMap).on(name,fn)}}function onError(err,errback){var ids=err.requireModules,notified=false;if(errback){errback(err)}else{each(ids,function(id){var mod=registry[id];if(mod){mod.error=err;if(mod.events.error){notified=true;mod.emit("error",err)}}});if(!notified){req.onError(err)}}}function takeGlobalQueue(){if(globalDefQueue.length){apsp.apply(defQueue,[defQueue.length-1,0].concat(globalDefQueue));globalDefQueue=[]}}function makeRequire(mod,enableBuildCallback,altRequire){var relMap=mod&&mod.map,modRequire=makeContextModuleFunc(altRequire||context.require,relMap,enableBuildCallback);addRequireMethods(modRequire,context,relMap);modRequire.isBrowser=isBrowser;return modRequire}handlers={require:function(mod){return makeRequire(mod)},exports:function(mod){mod.usingExports=true;if(mod.map.isDefine){return mod.exports=defined[mod.map.id]={}}},module:function(mod){return mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return config.config&&config.config[mod.map.id]||{}},exports:defined[mod.map.id]}}};function removeWaiting(id){delete registry[id];each(waitAry,function(mod,i){if(mod.map.id===id){waitAry.splice(i,1);if(!mod.defined){context.waitCount-=1}return true}})}function findCycle(mod,traced){var id=mod.map.id,depArray=mod.depMaps,foundModule;if(!mod.inited){return}if(traced[id]){return mod}traced[id]=true;each(depArray,function(depMap){var depId=depMap.id,depMod=registry[depId];if(!depMod){return}if(!depMod.inited||!depMod.enabled){foundModule=null;delete traced[id];return true}return foundModule=findCycle(depMod,mixin({},traced))});return foundModule}function forceExec(mod,traced,uninited){var id=mod.map.id,depArray=mod.depMaps;if(!mod.inited||!mod.map.isDefine){return}if(traced[id]){return defined[id]}traced[id]=mod;each(depArray,function(depMap){var depId=depMap.id,depMod=registry[depId],value;if(handlers[depId]){return}if(depMod){if(!depMod.inited||!depMod.enabled){uninited[id]=true;return}value=forceExec(depMod,traced,uninited);if(!uninited[depId]){mod.defineDepById(depId,value)}}});mod.check(true);return defined[id]}function modCheck(mod){mod.check()}function checkLoaded(){var waitInterval=config.waitSeconds*1e3,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],stillLoading=false,needCycleCheck=true,map,modId,err,usingPathFallback;if(inCheckLoaded){return}inCheckLoaded=true;eachProp(registry,function(mod){map=mod.map;modId=map.id;if(!mod.enabled){return}if(!mod.error){if(!mod.inited&&expired){if(hasPathFallback(modId)){usingPathFallback=true;stillLoading=true}else{noLoads.push(modId);removeScript(modId)}}else if(!mod.inited&&mod.fetched&&map.isDefine){stillLoading=true;if(!map.prefix){return needCycleCheck=false}}}});if(expired&&noLoads.length){err=makeError("timeout","Load timeout for modules: "+noLoads,null,noLoads);err.contextName=context.contextName;return onError(err)}if(needCycleCheck){each(waitAry,function(mod){if(mod.defined){return}var cycleMod=findCycle(mod,{}),traced={};if(cycleMod){forceExec(cycleMod,traced,{});eachProp(traced,modCheck)}});eachProp(registry,modCheck)}if((!expired||usingPathFallback)&&stillLoading){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId){checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded()},50)}}inCheckLoaded=false}Module=function(map){this.events=undefEvents[map.id]||{};this.map=map;this.shim=config.shim[map.id];this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Module.prototype={init:function(depMaps,factory,errback,options){options=options||{};if(this.inited){return}this.factory=factory;if(errback){this.on("error",errback)}else if(this.events.error){errback=bind(this,function(err){this.emit("error",err)})}this.depMaps=depMaps&&depMaps.slice(0);this.depMaps.rjsSkipMap=depMaps.rjsSkipMap;this.errback=errback;this.inited=true;this.ignore=options.ignore;if(options.enabled||this.enabled){this.enable()}else{this.check()}},defineDepById:function(id,depExports){var i;each(this.depMaps,function(map,index){if(map.id===id){i=index;return true}});return this.defineDep(i,depExports)},defineDep:function(i,depExports){if(!this.depMatched[i]){this.depMatched[i]=true;this.depCount-=1;this.depExports[i]=depExports}},fetch:function(){if(this.fetched){return}this.fetched=true;context.startTime=(new Date).getTime();var map=this.map;if(this.shim){makeRequire(this,true)(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load()}))}else{return map.prefix?this.callPlugin():this.load()}},load:function(){var url=this.map.url;if(!urlFetched[url]){urlFetched[url]=true;context.load(this.map.id,url)}},check:function(silent){if(!this.enabled||this.enabling){return}var id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory,err,cjsModule;if(!this.inited){this.fetch()}else if(this.error){this.emit("error",this.error)}else if(!this.defining){this.defining=true;if(this.depCount<1&&!this.defined){if(isFunction(factory)){if(this.events.error){try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}}else{exports=context.execCb(id,factory,depExports,exports)}if(this.map.isDefine){cjsModule=this.module;if(cjsModule&&cjsModule.exports!==undefined&&cjsModule.exports!==this.exports){exports=cjsModule.exports}else if(exports===undefined&&this.usingExports){exports=this.exports}}if(err){err.requireMap=this.map;err.requireModules=[this.map.id];err.requireType="define";return onError(this.error=err)}}else{exports=factory}this.exports=exports;if(this.map.isDefine&&!this.ignore){defined[id]=exports;if(req.onResourceLoad){req.onResourceLoad(context,this.map,this.depMaps)}}delete registry[id];this.defined=true;context.waitCount-=1;if(context.waitCount===0){waitAry=[]}}this.defining=false;if(!silent){if(this.defined&&!this.defineEmitted){this.defineEmitted=true;this.emit("defined",this.exports);this.defineEmitComplete=true}}}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix,null,false,true);on(pluginMap,"defined",bind(this,function(plugin){var name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,load,normalizedMap,normalizedMod;if(this.map.unnormalized){if(plugin.normalize){name=plugin.normalize(name,function(name){return normalize(name,parentName,true)})||""}normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap,false,true);on(normalizedMap,"defined",bind(this,function(value){this.init([],function(){return value},null,{enabled:true,ignore:true})}));normalizedMod=registry[normalizedMap.id];if(normalizedMod){if(this.events.error){normalizedMod.on("error",bind(this,function(err){this.emit("error",err)}))}normalizedMod.enable()}return}load=bind(this,function(value){this.init([],function(){return value},null,{enabled:true})});load.error=bind(this,function(err){this.inited=true;this.error=err;err.requireModules=[id];eachProp(registry,function(mod){if(mod.map.id.indexOf(id+"_unnormalized")===0){removeWaiting(mod.map.id)}});onError(err)});load.fromText=function(moduleName,text){var hasInteractive=useInteractive;if(hasInteractive){useInteractive=false}getModule(makeModuleMap(moduleName));req.exec(text);if(hasInteractive){useInteractive=true}context.completeLoad(moduleName)};plugin.load(map.name,makeRequire(map.parentMap,true,function(deps,cb){deps.rjsSkipMap=true;return context.require(deps,cb)}),load,config)}));context.enable(pluginMap,this);this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){this.enabled=true;if(!this.waitPushed){waitAry.push(this);context.waitCount+=1;this.waitPushed=true}this.enabling=true;each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if(typeof depMap==="string"){depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,false,!this.depMaps.rjsSkipMap);this.depMaps[i]=depMap;handler=handlers[depMap.id];if(handler){this.depExports[i]=handler(this);return}this.depCount+=1;on(depMap,"defined",bind(this,function(depExports){this.defineDep(i,depExports);this.check()}));if(this.errback){on(depMap,"error",this.errback)}}id=depMap.id;mod=registry[id];if(!handlers[id]&&mod&&!mod.enabled){context.enable(depMap,this)}}));eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=registry[pluginMap.id];if(mod&&!mod.enabled){context.enable(pluginMap,this)}}));this.enabling=false;this.check()},on:function(name,cb){var cbs=this.events[name];if(!cbs){cbs=this.events[name]=[]}cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)});if(name==="error"){delete this.events[name]}}};function callGetModule(args){getModule(makeModuleMap(args[0],null,true)).init(args[1],args[2])}function removeListener(node,func,name,ieName){if(node.detachEvent&&!isOpera){if(ieName){node.detachEvent(ieName,func)}}else{node.removeEventListener(name,func,false)}}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;removeListener(node,context.onScriptLoad,"load","onreadystatechange");removeListener(node,context.onScriptError,"error");return{node:node,id:node&&node.getAttribute("data-requiremodule")}}return context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,waitCount:0,defQueue:defQueue,Module:Module,makeModuleMap:makeModuleMap,configure:function(cfg){if(cfg.baseUrl){if(cfg.baseUrl.charAt(cfg.baseUrl.length-1)!=="/"){cfg.baseUrl+="/"}}var pkgs=config.pkgs,shim=config.shim,paths=config.paths,map=config.map;mixin(config,cfg,true);config.paths=mixin(paths,cfg.paths,true);if(cfg.map){config.map=mixin(map||{},cfg.map,true,true)}if(cfg.shim){eachProp(cfg.shim,function(value,id){if(isArray(value)){value={deps:value}}if(value.exports&&!value.exports.__buildReady){value.exports=context.makeShimExports(value.exports)}shim[id]=value});config.shim=shim}if(cfg.packages){each(cfg.packages,function(pkgObj){var location;pkgObj=typeof pkgObj==="string"?{name:pkgObj}:pkgObj;location=pkgObj.location;pkgs[pkgObj.name]={name:pkgObj.name,location:location||pkgObj.name,main:(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}});config.pkgs=pkgs}eachProp(registry,function(mod,id){mod.map=makeModuleMap(id)});if(cfg.deps||cfg.callback){context.require(cfg.deps||[],cfg.callback)}},makeShimExports:function(exports){var func;if(typeof exports==="string"){func=function(){return getGlobal(exports)};func.exports=exports;return func}else{return function(){return exports.apply(global,arguments)}}},requireDefined:function(id,relMap){return hasProp(defined,makeModuleMap(id,relMap,false,true).id)},requireSpecified:function(id,relMap){id=makeModuleMap(id,relMap,false,true).id;return hasProp(defined,id)||hasProp(registry,id)},require:function(deps,callback,errback,relMap){var moduleName,id,map,requireMod,args;if(typeof deps==="string"){if(isFunction(callback)){return onError(makeError("requireargs","Invalid require call"),errback)}if(req.get){return req.get(context,deps,callback)}moduleName=deps;relMap=callback;map=makeModuleMap(moduleName,relMap,false,true);id=map.id;if(!hasProp(defined,id)){return onError(makeError("notloaded",'Module name "'+id+'" has not been loaded yet for context: '+contextName))}return defined[id]}if(errback&&!isFunction(errback)){relMap=errback;errback=undefined}if(callback&&!isFunction(callback)){relMap=callback;callback=undefined}takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){return onError(makeError("mismatch","Mismatched anonymous define() module: "+args[args.length-1]))}else{callGetModule(args)}}requireMod=getModule(makeModuleMap(null,relMap));requireMod.init(deps,callback,errback,{enabled:true});checkLoaded();return context.require},undef:function(id){var map=makeModuleMap(id,null,true),mod=registry[id];delete defined[id];delete urlFetched[map.url];delete undefEvents[id];if(mod){if(mod.events.defined){undefEvents[id]=mod.events}removeWaiting(id)}},enable:function(depMap,parent){var mod=registry[depMap.id];if(mod){getModule(depMap).enable()}},completeLoad:function(moduleName){var shim=config.shim[moduleName]||{},shExports=shim.exports&&shim.exports.exports,found,args,mod;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){args[0]=moduleName;if(found){break}found=true}else if(args[0]===moduleName){found=true}callGetModule(args)}mod=registry[moduleName];if(!found&&!defined[moduleName]&&mod&&!mod.inited){if(config.enforceDefine&&(!shExports||!getGlobal(shExports))){if(hasPathFallback(moduleName)){return}else{return onError(makeError("nodefine","No define call for "+moduleName,null,[moduleName]))}}else{callGetModule([moduleName,shim.deps||[],shim.exports])}}checkLoaded()},toUrl:function(moduleNamePlusExt,relModuleMap){var index=moduleNamePlusExt.lastIndexOf("."),ext=null;if(index!==-1){ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length);moduleNamePlusExt=moduleNamePlusExt.substring(0,index)}return context.nameToUrl(moduleNamePlusExt,ext,relModuleMap)},nameToUrl:function(moduleName,ext,relModuleMap){var paths,pkgs,pkg,pkgPath,syms,i,parentModule,url,parentPath;moduleName=normalize(moduleName,relModuleMap&&relModuleMap.id,true);if(req.jsExtRegExp.test(moduleName)){url=moduleName+(ext||"")}else{paths=config.paths;pkgs=config.pkgs;syms=moduleName.split("/");for(i=syms.length;i>0;i-=1){parentModule=syms.slice(0,i).join("/");pkg=pkgs[parentModule];parentPath=paths[parentModule];if(parentPath){if(isArray(parentPath)){parentPath=parentPath[0]}syms.splice(0,i,parentPath);break}else if(pkg){if(moduleName===pkg.name){pkgPath=pkg.location+"/"+pkg.main}else{pkgPath=pkg.location}syms.splice(0,i,pkgPath);break}}url=syms.join("/")+(ext||".js");url=(url.charAt(0)==="/"||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((url.indexOf("?")===-1?"?":"&")+config.urlArgs):url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if(evt.type==="load"||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){return onError(makeError("scripterror","Script error",evt,[data.id]))}}}}req=requirejs=function(deps,callback,errback,optional){var contextName=defContextName,context,config;if(!isArray(deps)&&typeof deps!=="string"){config=deps;if(isArray(callback)){deps=callback;callback=errback;errback=optional}else{deps=[]}}if(config&&config.context){contextName=config.context}context=contexts[contextName];if(!context){context=contexts[contextName]=req.s.newContext(contextName)}if(config){context.configure(config)}return context.require(deps,callback,errback)};req.config=function(config){return req(config)};if(!require){require=req}req.version=version;req.jsExtRegExp=/^\/|:|\?|\.js$/;req.isBrowser=isBrowser;s=req.s={contexts:contexts,newContext:newContext};req({});addRequireMethods(req);if(isBrowser){head=s.head=document.getElementsByTagName("head")[0];baseElement=document.getElementsByTagName("base")[0];if(baseElement){head=s.head=baseElement.parentNode}}req.onError=function(err){throw err};req.load=function(context,moduleName,url){var config=context&&context.config||{},node;if(isBrowser){node=config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");node.type=config.scriptType||"text/javascript";node.charset="utf-8";node.setAttribute("data-requirecontext",context.contextName);node.setAttribute("data-requiremodule",moduleName);if(node.attachEvent&&!(node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0)&&!isOpera){useInteractive=true;node.attachEvent("onreadystatechange",context.onScriptLoad)}else{node.addEventListener("load",context.onScriptLoad,false);node.addEventListener("error",context.onScriptError,false)}node.src=url;currentlyAddingScript=node;if(baseElement){head.insertBefore(node,baseElement)}else{head.appendChild(node)}currentlyAddingScript=null;return node}else if(isWebWorker){importScripts(url);context.completeLoad(moduleName)}};function getInteractiveScript(){if(interactiveScript&&interactiveScript.readyState==="interactive"){return interactiveScript}eachReverse(scripts(),function(script){if(script.readyState==="interactive"){return interactiveScript=script}});return interactiveScript}if(isBrowser){eachReverse(scripts(),function(script){if(!head){head=script.parentNode}dataMain=script.getAttribute("data-main");if(dataMain){src=dataMain.split("/");mainScript=src.pop();subPath=src.length?src.join("/")+"/":"./";if(!cfg.baseUrl){cfg.baseUrl=subPath}dataMain=mainScript.replace(jsSuffixRegExp,"");cfg.deps=cfg.deps?cfg.deps.concat(dataMain):[dataMain];return true}})}define=function(name,deps,callback){var node,context;if(typeof name!=="string"){callback=deps;deps=name;name=null}if(!isArray(deps)){callback=deps;deps=[]}if(!deps.length&&isFunction(callback)){if(callback.length){callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)});deps=(callback.length===1?["require"]:["require","exports","module"]).concat(deps)}}if(useInteractive){node=currentlyAddingScript||getInteractiveScript();if(node){if(!name){name=node.getAttribute("data-requiremodule")}context=contexts[node.getAttribute("data-requirecontext")]}}(context?context.defQueue:globalDefQueue).push([name,deps,callback])};define.amd={jQuery:true};req.exec=function(text){return eval(text)};req(cfg)})(this);define("async",["require","exports","module"],function(require,exports,module){(function(){var async={};var root=this,previous_async=root.async;if(typeof module!=="undefined"&&module.exports){module.exports=async}else{root.async=async}async.noConflict=function(){root.async=previous_async;return async};var _forEach=function(arr,iterator){if(arr.forEach){return arr.forEach(iterator)}for(var i=0;i<arr.length;i+=1){iterator(arr[i],i,arr)}};var _map=function(arr,iterator){if(arr.map){return arr.map(iterator)}var results=[];_forEach(arr,function(x,i,a){results.push(iterator(x,i,a))});return results};var _reduce=function(arr,iterator,memo){if(arr.reduce){return arr.reduce(iterator,memo)}_forEach(arr,function(x,i,a){memo=iterator(memo,x,i,a)});return memo};var _keys=function(obj){if(Object.keys){return Object.keys(obj)}var keys=[];for(var k in obj){if(obj.hasOwnProperty(k)){keys.push(k)}}return keys};if(typeof process==="undefined"||!process.nextTick){async.nextTick=function(fn){setTimeout(fn,0)}}else{async.nextTick=process.nextTick}async.forEach=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;_forEach(arr,function(x){iterator(x,function(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed===arr.length){callback(null)}}})})};async.forEachSeries=function(arr,iterator,callback){callback=callback||function(){};if(!arr.length){return callback()}var completed=0;var iterate=function(){iterator(arr[completed],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;if(completed===arr.length){callback(null)}else{iterate()}}})};iterate()};async.forEachLimit=function(arr,limit,iterator,callback){callback=callback||function(){};if(!arr.length||limit<=0){return callback()}var completed=0;var started=0;var running=0;(function replenish(){if(completed===arr.length){return callback()}while(running<limit&&started<arr.length){started+=1;running+=1;iterator(arr[started-1],function(err){if(err){callback(err);callback=function(){}}else{completed+=1;running-=1;if(completed===arr.length){callback()}else{replenish()}}})}})()};var doParallel=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.forEach].concat(args))}};var doSeries=function(fn){return function(){var args=Array.prototype.slice.call(arguments);return fn.apply(null,[async.forEachSeries].concat(args))}};var _asyncMap=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(err,v){results[x.index]=v;callback(err)})},function(err){callback(err,results)})};async.map=doParallel(_asyncMap);async.mapSeries=doSeries(_asyncMap);async.reduce=function(arr,memo,iterator,callback){async.forEachSeries(arr,function(x,callback){iterator(memo,x,function(err,v){memo=v;callback(err)})},function(err){callback(err,memo)})};async.inject=async.reduce;async.foldl=async.reduce;async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,function(x){return x}).reverse();async.reduce(reversed,memo,iterator,callback)};async.foldr=async.reduceRight;var _filter=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.filter=doParallel(_filter);async.filterSeries=doSeries(_filter);async.select=async.filter;async.selectSeries=async.filterSeries;var _reject=function(eachfn,arr,iterator,callback){var results=[];arr=_map(arr,function(x,i){return{index:i,value:x}});eachfn(arr,function(x,callback){iterator(x.value,function(v){if(!v){results.push(x)}callback()})},function(err){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})};async.reject=doParallel(_reject);async.rejectSeries=doSeries(_reject);var _detect=function(eachfn,arr,iterator,main_callback){eachfn(arr,function(x,callback){iterator(x,function(result){if(result){main_callback(x);main_callback=function(){}}else{callback()}})},function(err){main_callback()})};async.detect=doParallel(_detect);async.detectSeries=doSeries(_detect);async.some=function(arr,iterator,main_callback){async.forEach(arr,function(x,callback){iterator(x,function(v){if(v){main_callback(true);main_callback=function(){}}callback()})},function(err){main_callback(false)})};async.any=async.some;async.every=function(arr,iterator,main_callback){async.forEach(arr,function(x,callback){iterator(x,function(v){if(!v){main_callback(false);main_callback=function(){}}callback()})},function(err){main_callback(true)})};async.all=async.every;async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){if(err){callback(err)}else{callback(null,{value:x,criteria:criteria})}})},function(err,results){if(err){return callback(err)}else{var fn=function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0};callback(null,_map(results.sort(fn),function(x){return x.value}))}})};async.auto=function(tasks,callback){callback=callback||function(){};var keys=_keys(tasks);if(!keys.length){return callback(null)}var results={};var listeners=[];var addListener=function(fn){listeners.unshift(fn)};var removeListener=function(fn){for(var i=0;i<listeners.length;i+=1){if(listeners[i]===fn){listeners.splice(i,1);return}}};var taskComplete=function(){_forEach(listeners.slice(0),function(fn){fn()})};addListener(function(){if(_keys(results).length===keys.length){callback(null,results);callback=function(){}}});_forEach(keys,function(k){var task=tasks[k]instanceof Function?[tasks[k]]:tasks[k];var taskCallback=function(err){if(err){callback(err);callback=function(){}}else{var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;taskComplete()}};var requires=task.slice(0,Math.abs(task.length-1))||[];var ready=function(){return _reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},true)&&!results.hasOwnProperty(k)};if(ready()){task[task.length-1](taskCallback,results)}else{var listener=function(){if(ready()){removeListener(listener);task[task.length-1](taskCallback,results)}};addListener(listener)}})};async.waterfall=function(tasks,callback){callback=callback||function(){};if(!tasks.length){return callback()}var wrapIterator=function(iterator){return function(err){if(err){callback(err);callback=function(){}}else{var args=Array.prototype.slice.call(arguments,1);var next=iterator.next();if(next){args.push(wrapIterator(next))}else{args.push(callback)}async.nextTick(function(){iterator.apply(null,args)})}}};wrapIterator(async.iterator(tasks))()};async.parallel=function(tasks,callback){callback=callback||function(){};if(tasks.constructor===Array){async.map(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};async.forEach(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.series=function(tasks,callback){callback=callback||function(){};if(tasks.constructor===Array){async.mapSeries(tasks,function(fn,callback){if(fn){fn(function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}callback.call(null,err,args)})}},callback)}else{var results={};async.forEachSeries(_keys(tasks),function(k,callback){tasks[k](function(err){var args=Array.prototype.slice.call(arguments,1);if(args.length<=1){args=args[0]}results[k]=args;callback(err)})},function(err){callback(err,results)})}};async.iterator=function(tasks){var makeCallback=function(index){var fn=function(){if(tasks.length){tasks[index].apply(null,arguments)}return fn.next()};fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null};return fn};return makeCallback(0)};async.apply=function(fn){var args=Array.prototype.slice.call(arguments,1);return function(){return fn.apply(null,args.concat(Array.prototype.slice.call(arguments)))}};var _concat=function(eachfn,arr,fn,callback){var r=[];eachfn(arr,function(x,cb){fn(x,function(err,y){r=r.concat(y||[]);cb(err)})},function(err){callback(err,r)})};async.concat=doParallel(_concat);async.concatSeries=doSeries(_concat);async.whilst=function(test,iterator,callback){if(test()){iterator(function(err){if(err){return callback(err)}async.whilst(test,iterator,callback)})}else{callback()}};async.until=function(test,iterator,callback){if(!test()){iterator(function(err){if(err){return callback(err)}async.until(test,iterator,callback)})}else{callback()}};async.queue=function(worker,concurrency){var workers=0;var q={tasks:[],concurrency:concurrency,saturated:null,empty:null,drain:null,push:function(data,callback){if(data.constructor!==Array){data=[data]}_forEach(data,function(task){q.tasks.push({data:task,callback:typeof callback==="function"?callback:null});if(q.saturated&&q.tasks.length==concurrency){q.saturated()}async.nextTick(q.process)})},process:function(){if(workers<q.concurrency&&q.tasks.length){var task=q.tasks.shift();if(q.empty&&q.tasks.length==0)q.empty();workers+=1;worker(task.data,function(){workers-=1;if(task.callback){task.callback.apply(task,arguments)}if(q.drain&&q.tasks.length+workers==0)q.drain();q.process()})}},length:function(){return q.tasks.length},running:function(){return workers}};return q};var _console_fn=function(name){return function(fn){var args=Array.prototype.slice.call(arguments,1);fn.apply(null,args.concat([function(err){var args=Array.prototype.slice.call(arguments,1);if(typeof console!=="undefined"){if(err){if(console.error){console.error(err)}}else if(console[name]){_forEach(args,function(x){console[name](x)})}}}]))}};async.log=_console_fn("log");async.dir=_console_fn("dir");async.memoize=function(fn,hasher){var memo={};var queues={};hasher=hasher||function(x){return x};var memoized=function(){var args=Array.prototype.slice.call(arguments);var callback=args.pop();var key=hasher.apply(null,args);if(key in memo){callback.apply(null,memo[key])}else if(key in queues){queues[key].push(callback)}else{queues[key]=[callback];fn.apply(null,args.concat([function(){memo[key]=arguments;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++){q[i].apply(null,arguments)}}]))}};memoized.unmemoized=fn;return memoized};async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}}})()});define("./blob",["require","exports"],function(require,exports){var Blob=exports.Blob=function Blob(parts,properties){parts=typeof parts==="undefined"?[]:Array.prototype.concat(parts);properties=properties||{};function mergeProps(object,props){Object.keys(props).forEach(function(prop){object[prop]=props[prop]})}var result=parts.length?parts.shift():"",props={},self=this;if(result instanceof Blob){mergeProps(props,result);result=result.result}parts.forEach(function(part){if(part instanceof Blob){mergeProps(props,part);result+=part.result}else{result+=part}});mergeProps(props,properties);Object.keys(props).forEach(function(prop){if(prop!=="result"){Object.defineProperty(self,prop,{enumerable:true,value:props[prop]})}});Object.defineProperty(this,"result",{value:result})};Blob.prototype.toString=function(){return this.result};var readFile={server:function(name,encoding,callback,sync){var fs=require("fs");if(sync){readFile.serverSync(name,encoding,callback)}else{fs.readFile(name,encoding==="bin"?undefined:encoding,function(err,data){if(err){callback(err)}else{callback(null,new Blob(data,{name:name}))}})}},serverSync:function(name,encoding,callback){var fs=require("fs"),data;try{data=fs.readFileSync(name,encoding==="bin"?undefined:encoding);callback(null,new Blob(data,{name:name}))}catch(e){callback(e)}},client:function(name,encoding,callback){if(name in localStorage){callback(null,new Blob(localStorage[name],{name:name}))}else{callback("localStorage has no item "+name)}}};Blob.readFile=Blob.prototype.readFile=typeof module==="undefined"?readFile.client:readFile.server;var writeFile={server:function(name,blob,encoding,callback){var fs=require("fs"),path=require("path"),nodeExists=fs.exists||path.exists,mkdirp=require("mkdirp").mkdirp,Crypto=require("crypto");function writeFile(filename,b){fs.writeFile(filename,b.result,encoding==="bin"?undefined:encoding,function(err){callback(err,new Blob(b,{name:filename}))})}var dirname=path.resolve(path.dirname(name)),checksum;if(name.indexOf("{checksum}")>-1){checksum=Crypto.createHash("md5");checksum.update(blob.result);name=name.replace("{checksum}",checksum.digest("hex"))}nodeExists(dirname,function(exists){if(!exists){mkdirp(dirname,"0755",function(err){if(err){callback(err)}else{writeFile(name,blob)}})}else{writeFile(name,blob)}})},client:function(name,blob,encoding,callback){localStorage[name]=blob.result;callback(null,new blob.constructor(blob,{name:name}))}};Blob.writeFile=Blob.prototype.writeFile=typeof module==="undefined"?writeFile.client:writeFile.server});define("./tasks/concat",["require","exports"],function(require,exports){exports.concat=function(options,prev,blob,done){options=options||{};done(null,new blob.constructor([prev,options.callback?options.callback(blob):blob]))}});define("./tasks/core",["require","exports","../blob"],function(require,exports){var Blob=require("../blob").Blob;exports.load=function(string,done){done(null,new Blob(string))};var test=exports.test=function(options,blob,done){options=options||{};done(options.callback?options.callback(blob):null)};test.type="each";var get=exports.get=function get(index,blobs,done){done(null,blobs.slice(index,index+1))};get.type="collect";var log=exports.log=function log(string,blobs,done){this._log(string);done(null,blobs)};log.type="collect";var inspect=exports.inspect=function inspect(options,blobs,done){var self=this;blobs.forEach(function(blob,index){var obj={result:blob.result};Object.keys(blob).forEach(function(attr){obj[attr]=blob[attr]});self._log("blob "+(index+1)+": "+JSON.stringify(obj,null," "))});done(null,blobs)};inspect.type="collect";exports.noop=function(dummy,blob,done){done(null,blob)}});define("./tasks/read",["require","exports","../blob"],function(require,exports){var Blob=require("../blob").Blob;exports.read=function(options,done){options=typeof options==="string"?{name:options}:options;var encoding=options.encoding||"utf8";Blob.readFile(options.name,encoding,done,options.sync)}});define("./tasks/write",["require","exports"],function(require,exports){var write=exports.write=function write(options,blob,done){options=typeof options==="string"?{name:options}:options;var encoding=options.encoding||"utf8";blob.writeFile(options.name,blob,encoding,done)};write.type="slice"});define("./tasks/tasks",["require","exports","async"],function(require,exports){var async=require("async");var tasks=exports.tasks=function tasks(workflow,blobs,done){var item,task,name,requires,fn,auto={},self=this;function runTask(name,options,requires){return function(callback,result){var new_blobs=requires.length?[]:blobs;result=result||[];requires.forEach(function(item){new_blobs=new_blobs.concat(result[item])});self._dispatch(name,options,new_blobs,callback)}}for(item in workflow){task=workflow[item].task;if(task===undefined){task=["noop"]}else{if(!Array.isArray(task)){task=[task]}}requires=workflow[item].requires;if(requires===undefined){requires=[]}else{if(!Array.isArray(requires)){requires=[requires]}}fn=runTask(task[0],task[1],requires);auto[item]=requires?requires.concat(fn):fn}async.auto(auto,function(err,results){if(err){done(err);return}done(err,results.join?results.join:[])})};tasks.type="collect"});define("./registry",["require","exports","./tasks/concat","./default_tasks"],function(require,exports){if(typeof module!=="undefined"){var fs=require("fs"),path=require("path"),existsSync=fs.existsSync||path.existsSync}else{var default_tasks=require("./default_tasks")}var Registry=exports.Registry=function Registry(options){var self=this;this._tasks={};if(typeof __dirname!=="undefined"){this.load({dirname:__dirname+"/tasks"})}else if(typeof default_tasks!=="undefined"){this.load({tasks:default_tasks})}if(options){this.load(options)}Object.defineProperty(this,"tasks",{get:function(){return Object.keys(self._tasks)}})};Registry.prototype={load:function(options){options=options||{};if(options.module){this._loadModule(options.module)}if(options.dirname){this._loadDir(options.dirname)}if(options.filename){this._loadFile(options.filename)}if(options.tasks){this._loadTasks(options.tasks)}},_loadModule:function(name){this._loadDir(path.resolve("node_modules",name,"lib"))},_loadDir:function(dirname){if(!existsSync(dirname)){throw new Error("Directory "+dirname+" doesn't exist")}var fs=require("fs"),files=fs.readdirSync(dirname),self=this;files.forEach(function(filename){self._loadFile(path.join(dirname,filename))})},_loadFile:function(filename){if(path.extname(filename)!==".js"){return}if(!existsSync(filename)){throw new Error("File "+filename+" doesn't exist")}this._loadTasks(require(filename))},_loadTasks:function(tasks){var name;for(name in tasks){this._tasks[name]=tasks[name]}},task:function(name){if(!(name in this._tasks)){throw new Error("Task "+name+" doesn't exist")}return this._tasks[name]}}});define("./queue",["require","exports","async","./registry","./blob"],function(require,exports){var async=require("async"),Registry=require("./registry").Registry,Blob=require("./blob").Blob;function zip(arr1,arr2){var zipped=[];for(var i=0;i<Math.min(arr1.length,arr2.length);i++){zipped.push([arr1[i],arr2[i]])}return zipped}function arrayize(arr){return typeof arr==="undefined"?[]:Array.prototype.concat(arr)}var Queue=exports.Queue=function Queue(options){var self=this;options=options||{};this._logger=options.logger||console;this._registry=options.registry||new Registry;this._clear();this._registry.tasks.forEach(function(name){self[name]=self.task.bind(self,name)})};Queue.prototype._clear=function(){this._queue=[function(callback){callback(null,[])}]};Queue.prototype._log=function(message){this._logger.log(message)};Queue.prototype._dispatch=function(name,options,blobs,done){var task=this._registry.task(name),types={2:"append",3:"map",4:"reduce"},type=task.type?task.type:types[task.length];function doneWrap(err,res){if(err){err={task:name,error:err}}done(err,res)}switch(type){case"append":async.map(arrayize(options),task.bind(this),function(err,results){doneWrap(err,blobs.concat(results))});break;case"collect":task.call(this,options,blobs,doneWrap);break;case"slice":async.map(zip(arrayize(options),blobs),function(arr,cb){task.call(this,arr[0],arr[1],cb)}.bind(this),doneWrap);break;case"each":async.forEach(blobs,task.bind(this,options),function(err){doneWrap(err,blobs)});break;case"map":async.map(blobs,task.bind(this,options),doneWrap);break;case"reduce":async.reduce(blobs,new Blob,task.bind(this,options),function(err,results){doneWrap(err,[results])});break;default:throw new Error('Task "'+name+'" has unknown type. Add a type property to the task function.')}};Queue.prototype.task=function(name,options){this._queue.push(this._dispatch.bind(this,name,options));return this};Queue.prototype.run=function(callback){async.waterfall(this._queue,callback)}});define("../blob",["require","exports","blob"],function(require,exports,blob){exports.Blob=blob.Blob});define("./default_tasks",["require","exports","./tasks/concat","./tasks/core","./tasks/read","./tasks/write","./tasks/tasks"],function(require,exports){var tasks=[];tasks.push(require("./tasks/concat"));tasks.push(require("./tasks/core"));tasks.push(require("./tasks/read"));tasks.push(require("./tasks/write"));tasks.push(require("./tasks/tasks"));tasks.forEach(function(mod){for(var task in mod){exports[task]=mod[task]}})});define("gear",["require","exports","blob","registry","queue"],function(require,exports,blob,registry,queue){exports.Blob=blob.Blob;exports.Registry=registry.Registry;exports.Queue=queue.Queue});
13  index.js
@@ -3,6 +3,13 @@
3 3
  * Copyrights licensed under the New BSD License.
4 4
  * See the accompanying LICENSE file for terms.
5 5
  */
6  
-exports.Registry = require('./lib/registry').Registry;
7  
-exports.Queue = require('./lib/queue').Queue;
8  
-exports.Blob = require('./lib/blob').Blob;
  6
+
  7
+if (process.env.GEAR_COV) {
  8
+    exports.Registry = require('./lib-cov/registry').Registry;
  9
+    exports.Queue = require('./lib-cov/queue').Queue;
  10
+    exports.Blob = require('./lib-cov/blob').Blob;
  11
+} else {
  12
+    exports.Registry = require('./lib/registry').Registry;
  13
+    exports.Queue = require('./lib/queue').Queue;
  14
+    exports.Blob = require('./lib/blob').Blob;
  15
+}
8  test/tasks.js
@@ -13,10 +13,8 @@ describe('Queue()', function() {
13 13
         new gear.Queue().tasks({
14 14
             read_files:       {task: ['read', fixtures.files]},
15 15
             concat_files:     {requires: 'read_files', task: 'concat'},
16  
-            inspect_results:  {requires: 'concat_files', task: 'inspect'},
17 16
             read_files2:      {task: ['read', fixtures.parallel_files]},
18  
-            inspect_results2: {requires: 'read_files2', task: 'inspect'},
19  
-            inspect_1_and_2:  {requires: ['inspect_results2', 'inspect_results'], task: ['log', 'Done']}
  17
+            done:  {requires: ['read_files2', 'concat_files']}
20 18
         }).run();
21 19
     });
22 20
 });
@@ -39,10 +37,8 @@ describe('tasks()', function() {
39 37
         tasks.call(queue, {
40 38
             read_files:       {task: ['read', fixtures.files]},
41 39
             concat_files:     {requires: 'read_files', task: 'concat'},
42  
-            inspect_results:  {requires: 'concat_files', task: 'inspect'},
43 40
             read_files2:      {task: ['read', fixtures.parallel_files]},
44  
-            inspect_results2: {requires: 'read_files2', task: 'inspect'},
45  
-            inspect_1_and_2:  {requires: ['inspect_results', 'inspect_results2'], task: ['log', 'Done']}
  41
+            inspect_1_and_2:  {requires: ['concat_files', 'read_files2']}
46 42
         }, [], function(err, results) {
47 43
             done(err);
48 44
         });

0 notes on commit f3cf374

Please sign in to comment.
Something went wrong with that request. Please try again.