1 define("dojo/request/registry", [
6 ], function(require, array, fallbackProvider, util){
9 function request(url, options){
10 var matchers = providers.slice(0),
14 while(matcher=matchers[i++]){
15 if(matcher(url, options)){
16 return matcher.request.call(null, url, options);
20 return fallbackProvider.apply(null, arguments);
23 function createMatcher(match, provider){
29 matcher = function(url){
30 return match.test(url);
32 }else if(match.apply && match.call){
34 return match.apply(null, arguments);
37 matcher = function(url){
42 matcher.request = provider;
44 // If only one argument was passed, assume it is a provider function
45 // to apply unconditionally to all URLs
50 matcher.request = match;
56 request.register = function(url, provider, first){
57 var matcher = createMatcher(url, provider);
58 providers[(first ? 'unshift' : 'push')](matcher);
63 if(~(idx = array.indexOf(providers, matcher))){
64 providers.splice(idx, 1);
70 request.load = function(id, parentRequire, loaded, config){
72 // if there's an id, load and set the fallback provider
73 require([id], function(fallback){
74 fallbackProvider = fallback;
82 util.addCommonMethods(request);