|
@@ -17,9 +17,9 @@ How
|
|
===
|
|
===
|
|
|
|
|
|
Brikz aims to be minimal, so just copy it and include it where appropriate (it is just one `Brikz` constructor). Then instantiate it:
|
|
Brikz aims to be minimal, so just copy it and include it where appropriate (it is just one `Brikz` constructor). Then instantiate it:
|
|
-```js
|
|
|
|
-var api = /* skeleton of my object */;
|
|
|
|
-var brikz = new Brikz(api);
|
|
|
|
|
|
+```
|
|
|
|
+ var api = /* skeleton of my object */;
|
|
|
|
+ var brikz = new Brikz(api);
|
|
```
|
|
```
|
|
|
|
|
|
Then, you should have some parts:
|
|
Then, you should have some parts:
|
|
@@ -30,27 +30,28 @@ function Foo(brikz, api) {
|
|
}
|
|
}
|
|
|
|
|
|
function Bar(brikz, api) {
|
|
function Bar(brikz, api) {
|
|
- brikz.ensure("foo");
|
|
|
|
this.internalBar = function () { ... };
|
|
this.internalBar = function () { ... };
|
|
api.publishedBar = function () {
|
|
api.publishedBar = function () {
|
|
...;
|
|
...;
|
|
// use brikz.foo and brikz.foo.internalFoo as you see fit
|
|
// use brikz.foo and brikz.foo.internalFoo as you see fit
|
|
// it now contains the object, not the factory
|
|
// it now contains the object, not the factory
|
|
- // of course, you can use api.externalFoo as well
|
|
|
|
|
|
+ // You can _not_ use api.publishedFoo directly in Bar,
|
|
|
|
+ // but you can use it in any code to be run later.
|
|
...;
|
|
...;
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
+Bar.deps = ["foo"];
|
|
```
|
|
```
|
|
|
|
|
|
-The `ensure` function synchronously tries to include part named `foo` before continuing. Thus, if you have circular dependencies, you end up with stack overflow. Don't have them. :wink:
|
|
|
|
|
|
+The `deps` array synchronously tries to process part named `foo` before processing bar. Thus, if you have circular dependencies, you end up with stack overflow. Don't have them. :wink:
|
|
|
|
|
|
You then put the parts in `brikz` object, rebuild it and you have `api` ready for use:
|
|
You then put the parts in `brikz` object, rebuild it and you have `api` ready for use:
|
|
```
|
|
```
|
|
-brikz.foo = Foo;
|
|
|
|
-brikz.bar = Bar;
|
|
|
|
-brikz.rebuild();
|
|
|
|
|
|
+ brikz.foo = Foo;
|
|
|
|
+ brikz.bar = Bar;
|
|
|
|
+ brikz.rebuild();
|
|
|
|
|
|
-api.publishedBar(...);
|
|
|
|
|
|
+ api.publishedBar(...);
|
|
```
|
|
```
|
|
|
|
|
|
You can add / delete / change parts later and call `rebuild` again. Parts that are not functions, are left as is (their internal as well as API part); parts that are functions are instantiated again and merged in. Parts that are `null`ed are removed.
|
|
You can add / delete / change parts later and call `rebuild` again. Parts that are not functions, are left as is (their internal as well as API part); parts that are functions are instantiated again and merged in. Parts that are `null`ed are removed.
|