aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2011-01-04 10:40:34 -0800
committerIgor Minar2011-01-04 18:03:55 -0800
commit1430c6d6b1f4edf11b1bd877e8907ac8ab0be923 (patch)
treee91e2a87a3f2b9eeca3bbd0165318a00f3e3e6dd
parent3ea5941f0e51c57f55071a85f2033c23c99847c0 (diff)
downloadangular.js-1430c6d6b1f4edf11b1bd877e8907ac8ab0be923.tar.bz2
renaming service property $creation to $eager
see changelog diff for more info
-rw-r--r--CHANGELOG.md5
-rw-r--r--src/Injector.js13
-rw-r--r--src/services.js4
-rw-r--r--test/InjectorSpec.js2
4 files changed, 13 insertions, 11 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ed9d4fb5..12a37c63 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,7 @@
not needed.
### Breaking changes
- - Support for 'eager-published' services was removed. This change was done to make explicit
+ - Support for `eager-published` services was removed. This change was done to make explicit
dependency declaration always required in order to allow making relatively expensive services
lazily initialized (e.g. $cookie, $location), as well as remove 'magic' and reduce unnecessary
scope namespace pollution.
@@ -34,6 +34,9 @@
this.$invalidWidgets = this.$inject('$invalidWidgets');
}, {$creation: 'eager'});
+- In the light of the `eager-published` change, to complete the cleanup we renamed `$creation`
+ property of services to `eager` with its value being a boolean.
+ To transition, please rename all `$creation: 'eager'` declarations to `$eager: true`
# <angular/> 0.9.8 astral-projection (2010-12-23) #
diff --git a/src/Injector.js b/src/Injector.js
index c819d4f0..78858e86 100644
--- a/src/Injector.js
+++ b/src/Injector.js
@@ -37,7 +37,7 @@ function createInjector(providerScope, providers, cache) {
* none: same as object but use providerScope as place to publish.
*/
return function inject(value, scope, args){
- var returnValue, provider, creation;
+ var returnValue, provider;
if (isString(value)) {
if (!cache.hasOwnProperty(value)) {
provider = providers[value];
@@ -55,13 +55,12 @@ function createInjector(providerScope, providers, cache) {
returnValue = value.apply(scope, concat(returnValue, arguments, 2));
} else if (isObject(value)) {
foreach(providers, function(provider, name){
- creation = provider.$creation;
- if (creation == 'eager') {
+ if (provider.$eager)
inject(name);
- } else {
- if (isDefined(creation))
- throw "Unknown $creation value '" + creation + "' for service " + name;
- }
+
+ if (provider.$creation)
+ throw new Error("Failed to register service '" + name +
+ "': $creation property is unsupported. Use $eager:true or see release notes.");
});
} else {
returnValue = inject(providerScope);
diff --git a/src/services.js b/src/services.js
index e77baf38..0b983ffb 100644
--- a/src/services.js
+++ b/src/services.js
@@ -1,10 +1,10 @@
var URL_MATCH = /^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
HASH_MATCH = /^([^\?]*)?(\?([^\?]*))?$/,
DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp':21},
- EAGER = 'eager';
+ EAGER = true;
function angularServiceInject(name, fn, inject, eager) {
- angularService(name, fn, {$inject:inject, $creation:eager});
+ angularService(name, fn, {$inject:inject, $eager:eager});
}
/**
diff --git a/test/InjectorSpec.js b/test/InjectorSpec.js
index 275d98ff..765003cf 100644
--- a/test/InjectorSpec.js
+++ b/test/InjectorSpec.js
@@ -53,7 +53,7 @@ describe('injector', function(){
it('should autostart eager services', function(){
var log = '';
- providers('eager', function(){log += 'eager;'; return 'foo'}, {$creation: 'eager'});
+ providers('eager', function(){log += 'eager;'; return 'foo'}, {$eager: true});
inject();
expect(log).toEqual('eager;');
expect(inject('eager')).toBe('foo');