This repository has been archived by the owner on Jan 19, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
9,683 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
|
@@ -7,4 +7,4 @@ | ||
"jquery": "github:jquery/jquery/1.7.2" | "jquery": "github:jquery/jquery/1.7.2" | ||
} | } | ||
} | } | ||
} | } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,277 @@ | |||
/** | |||
* almond 0.0.3 Copyright (c) 2011, The Dojo Foundation All Rights Reserved. | |||
* Available via the MIT or new BSD license. | |||
* see: http://github.com/jrburke/almond for details | |||
*/ | |||
/*jslint strict: false, plusplus: false */ | |||
/*global setTimeout: false */ | |||
|
|||
var requirejs, require, define; | |||
(function (undef) { | |||
|
|||
var defined = {}, | |||
waiting = {}, | |||
aps = [].slice, | |||
main, req; | |||
|
|||
if (typeof define === "function") { | |||
//If a define is already in play via another AMD loader, | |||
//do not overwrite. | |||
return; | |||
} | |||
|
|||
/** | |||
* Given a relative module name, like ./something, normalize it to | |||
* a real name that can be mapped to a path. | |||
* @param {String} name the relative name | |||
* @param {String} baseName a real name that the name arg is relative | |||
* to. | |||
* @returns {String} normalized name | |||
*/ | |||
function normalize(name, baseName) { | |||
//Adjust any relative paths. | |||
if (name && name.charAt(0) === ".") { | |||
//If have a base name, try to normalize against it, | |||
//otherwise, assume it is a top-level require that will | |||
//be relative to baseUrl in the end. | |||
if (baseName) { | |||
//Convert baseName to array, and lop off the last part, | |||
//so that . matches that "directory" and not name of the baseName's | |||
//module. For instance, baseName of "one/two/three", maps to | |||
//"one/two/three.js", but we want the directory, "one/two" for | |||
//this normalization. | |||
baseName = baseName.split("/"); | |||
baseName = baseName.slice(0, baseName.length - 1); | |||
|
|||
name = baseName.concat(name.split("/")); | |||
|
|||
//start trimDots | |||
var i, part; | |||
for (i = 0; (part = name[i]); i++) { | |||
if (part === ".") { | |||
name.splice(i, 1); | |||
i -= 1; | |||
} else if (part === "..") { | |||
if (i === 1 && (name[2] === '..' || name[0] === '..')) { | |||
//End of the line. Keep at least one non-dot | |||
//path segment at the front so it can be mapped | |||
//correctly to disk. Otherwise, there is likely | |||
//no path mapping for a path starting with '..'. | |||
//This can still fail, but catches the most reasonable | |||
//uses of .. | |||
break; | |||
} else if (i > 0) { | |||
name.splice(i - 1, 2); | |||
i -= 2; | |||
} | |||
} | |||
} | |||
//end trimDots | |||
|
|||
name = name.join("/"); | |||
} | |||
} | |||
return name; | |||
} | |||
|
|||
function makeRequire(relName, forceSync) { | |||
return function () { | |||
//A version of a require function that passes a moduleName | |||
//value for items that may need to | |||
//look up paths relative to the moduleName | |||
return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync])); | |||
}; | |||
} | |||
|
|||
function makeNormalize(relName) { | |||
return function (name) { | |||
return normalize(name, relName); | |||
}; | |||
} | |||
|
|||
function makeLoad(depName) { | |||
return function (value) { | |||
defined[depName] = value; | |||
}; | |||
} | |||
|
|||
function callDep(name) { | |||
if (waiting.hasOwnProperty(name)) { | |||
var args = waiting[name]; | |||
delete waiting[name]; | |||
main.apply(undef, args); | |||
} | |||
return defined[name]; | |||
} | |||
|
|||
/** | |||
* Makes a name map, normalizing the name, and using a plugin | |||
* for normalization if necessary. Grabs a ref to plugin | |||
* too, as an optimization. | |||
*/ | |||
function makeMap(name, relName) { | |||
var prefix, plugin, | |||
index = name.indexOf('!'); | |||
|
|||
if (index !== -1) { | |||
prefix = normalize(name.slice(0, index), relName); | |||
name = name.slice(index + 1); | |||
plugin = callDep(prefix); | |||
|
|||
//Normalize according | |||
if (plugin && plugin.normalize) { | |||
name = plugin.normalize(name, makeNormalize(relName)); | |||
} else { | |||
name = normalize(name, relName); | |||
} | |||
} else { | |||
name = normalize(name, relName); | |||
} | |||
|
|||
//Using ridiculous property names for space reasons | |||
return { | |||
f: prefix ? prefix + '!' + name : name, //fullName | |||
n: name, | |||
p: plugin | |||
}; | |||
} | |||
|
|||
main = function (name, deps, callback, relName) { | |||
var args = [], | |||
usingExports, | |||
cjsModule, depName, i, ret, map; | |||
|
|||
//Use name if no relName | |||
if (!relName) { | |||
relName = name; | |||
} | |||
|
|||
//Call the callback to define the module, if necessary. | |||
if (typeof callback === 'function') { | |||
|
|||
//Default to require, exports, module if no deps if | |||
//the factory arg has any arguments specified. | |||
if (!deps.length && callback.length) { | |||
deps = ['require', 'exports', 'module']; | |||
} | |||
|
|||
//Pull out the defined dependencies and pass the ordered | |||
//values to the callback. | |||
for (i = 0; i < deps.length; i++) { | |||
map = makeMap(deps[i], relName); | |||
depName = map.f; | |||
|
|||
//Fast path CommonJS standard dependencies. | |||
if (depName === "require") { | |||
args[i] = makeRequire(name); | |||
} else if (depName === "exports") { | |||
//CommonJS module spec 1.1 | |||
args[i] = defined[name] = {}; | |||
usingExports = true; | |||
} else if (depName === "module") { | |||
//CommonJS module spec 1.1 | |||
cjsModule = args[i] = { | |||
id: name, | |||
uri: '', | |||
exports: defined[name] | |||
}; | |||
} else if (defined.hasOwnProperty(depName) || waiting.hasOwnProperty(depName)) { | |||
args[i] = callDep(depName); | |||
} else if (map.p) { | |||
map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {}); | |||
args[i] = defined[depName]; | |||
} else { | |||
throw name + ' missing ' + depName; | |||
} | |||
} | |||
|
|||
ret = callback.apply(defined[name], args); | |||
|
|||
if (name) { | |||
//If setting exports via "module" is in play, | |||
//favor that over return value and exports. After that, | |||
//favor a non-undefined return value over exports use. | |||
if (cjsModule && cjsModule.exports !== undef) { | |||
defined[name] = cjsModule.exports; | |||
} else if (!usingExports) { | |||
//Use the return value from the function. | |||
defined[name] = ret; | |||
} | |||
} | |||
} else if (name) { | |||
//May just be an object definition for the module. Only | |||
//worry about defining if have a module name. | |||
defined[name] = callback; | |||
} | |||
}; | |||
|
|||
requirejs = req = function (deps, callback, relName, forceSync) { | |||
if (typeof deps === "string") { | |||
|
|||
//Just return the module wanted. In this scenario, the | |||
//deps arg is the module name, and second arg (if passed) | |||
//is just the relName. | |||
//Normalize module name, if it contains . or .. | |||
return callDep(makeMap(deps, callback).f); | |||
} else if (!deps.splice) { | |||
//deps is a config object, not an array. | |||
//Drop the config stuff on the ground. | |||
if (callback.splice) { | |||
//callback is an array, which means it is a dependency list. | |||
//Adjust args if there are dependencies | |||
deps = callback; | |||
callback = arguments[2]; | |||
} else { | |||
deps = []; | |||
} | |||
} | |||
|
|||
//Simulate async callback; | |||
if (forceSync) { | |||
main(undef, deps, callback, relName); | |||
} else { | |||
setTimeout(function () { | |||
main(undef, deps, callback, relName); | |||
}, 15); | |||
} | |||
|
|||
return req; | |||
}; | |||
|
|||
/** | |||
* Just drops the config on the floor, but returns req in case | |||
* the config return value is used. | |||
*/ | |||
req.config = function () { | |||
return req; | |||
}; | |||
|
|||
/** | |||
* Export require as a global, but only if it does not already exist. | |||
*/ | |||
if (!require) { | |||
require = req; | |||
} | |||
|
|||
define = function (name, deps, callback) { | |||
|
|||
//This module may not have dependencies | |||
if (!deps.splice) { | |||
//deps is not an array, so probably means | |||
//an object literal or factory function for | |||
//the value. Adjust args. | |||
callback = deps; | |||
deps = []; | |||
} | |||
|
|||
if (define.unordered) { | |||
waiting[name] = [name, deps, callback]; | |||
} else { | |||
main(name, deps, callback); | |||
} | |||
}; | |||
|
|||
define.amd = { | |||
jQuery: true | |||
}; | |||
}()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
Oops, something went wrong.