var namespace = require('{%= name %}');
var Base = require('base');
var base = new Base();
base.use(namespace());
Default
By default, namespace
uses the app._name
property, which is uses the constructor name (set in [base][]):
console.log(base.namespace);
//=> 'base'
Alias
If alias
is defined, it will be used instead of app._name
:
base.alias = 'foo';
console.log(base.namespace);
//=> 'foo'
Parent namespace
If a parent
instance is defined, namespace
is created from parent.namespace
+ alias
:
var foo = new Base();
foo.alias = 'whatever';
base.parent = foo;
base.alias = 'foo';
console.log(base.namespace);
//=> 'whatever.foo'
Multiple ancestors
When an app has multiple ancestors, its namespace
might look something like this:
var foo = new Base();
foo.alias = 'foo';
var bar = new Base();
bar.alias = 'bar';
bar.parent = foo;
var baz = new Base();
baz.alias = 'baz';
baz.parent = bar;
var qux = new Base();
qux.alias = 'qux';
qux.parent = baz;
console.log(qux.namespace);
//=> 'foo.bar.baz.qux'