0.0.4 • Published 11 years ago
bh-property-helpers v0.0.4
bh-property-helpers

This is helper for fast and nice property setter/getter creation in context object.
Usage
var Method = require('bh-property-helpers');
method = new Method({ protected: false });
funciton Context() {
function pickModsProperty() {
return '_object.' + (this._context.get('object').elem ? 'elemMods' : 'mods');
}
method(this)
.before(function () {
this._object = this._context.get('object');
})
.named('attr').changes('_object.attrs').property()
.named('attrs').changes('_object.attrs').property()
.named('bem').changes('_object.bem').value()
.named('cls').changes('_object.cls').value()
.named('content').changes('_object.content').value()
.named('js').changes('_object.js').value()
.named('param').changes('_object').property()
.named('tag').changes('_object.tag').value()
.named('mix').changes('_object.mix').array()
.named('mod').changes(pickModsProperty).property()
.named('mods').changes(pickModsProperty).object();
}API
Method(options)
Constructor of method builder.
Returns Builder.
Builder(context)
Returns builder for context object. All methods will be defined on this object.
Returns Builder.
.named(name)
Defines name for the method.
Returns Builder.
.changes(propertyPath)
Points created method to propertyPath, which can be String or Function. In case of Function property path will be resolved each time method is called.
Returns Builder.
.value() / .property() / .array() / .object()
This methods tells builder about value type, with which created method will be working.
| Type | What it does | Setter/getter signature |
|---|---|---|
| value() | Just sets passed value to property | function (value, force) |
| property() | Sets key-value in property object | function (key, value, force) |
| array() | Appends passed value to Array property | function (array, force) |
| object() | Extends property with passed object | function (object, force) |
By default this setters will not override previous property value (unless force is true).
Returns Builder.