return results;
} else if ( typeof selection === 'string' ) {
if ( typeof values[selection] === 'undefined' ) {
- return 'fallback' in options !== 'undefined' ? options.fallback : null;
+ return typeof options === 'object' && 'fallback' in options ?
+ options.fallback : '<' + selection + '>';
} else {
if ( typeof parser === 'function' ) {
return parser( values[selection], options );
* Registers a module, letting the system know about it and it's dependencies. loader.js files contain calls
* to this function.
*/
- this.register = function( module, version, dependencies, status ) {
+ this.register = function( module, version, dependencies, group ) {
// Allow multiple registration
if ( typeof module === 'object' ) {
for ( var m = 0; m < module.length; m++ ) {
if ( typeof module !== 'string' ) {
throw new Error( 'module must be a string, not a ' + typeof module );
}
- if ( typeof registry[module] !== 'undefined' && typeof status === 'undefined' ) {
+ if ( typeof registry[module] !== 'undefined' ) {
throw new Error( 'module already implemeneted: ' + module );
}
// List the module as registered
registry[module] = {
- 'state': typeof status === 'string' ? status : 'registered',
+ 'state': 'registered',
+ 'group': typeof group === 'string' ? group : null,
'dependencies': [],
'version': typeof version !== 'undefined' ? parseInt( version ) : 0
};
}
};
+ /**
+ * Gets the version of a module
+ *
+ * @param string module name of module to get version for
+ */
+ this.version = function( module ) {
+ if ( module in registry && 'version' in registry[module] ) {
+ return formatVersionNumber( registry[module].version );
+ }
+ return null;
+ }
+
/* Cache document ready status */
$(document).ready( function() { ready = true; } );