atom.js
function (key, func) {
				if (needs[key]) {
					provide(nucleus, key, func);
				} else if (!providers[key]) {
					providers[key] = func;
				}
				return me;
			}
function (key, func) {
				if (needs[key]) {
					provide(nucleus, key, func);
				} else if (!providers[key]) {
					providers[key] = func;
				}
				return me;
			}
function ( key , func ) { if ( needs [ key ] ) { provide ( nucleus , key , func ) ; } else if ( ! providers [ key ] ) { providers [ key ] = func ; } return me ; }
Register a provider for a particular key.  The provider `func` is a function that will be called if there is a need to create the key. It must call its first arg as a callback, with the value.  Provider functions will be called at most once.
Register a provider for a particular key . The provider func is a function that will be called if there is a need to create the key . It must call its first arg as a callback with the value . Provider functions will be called at most once .