0.0.4 • Published 10 years ago

bh-property-helpers v0.0.4

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

bh-property-helpers NPM version Build Status Coveralls Status

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.

TypeWhat it doesSetter/getter signature
value()Just sets passed value to propertyfunction (value, force)
property()Sets key-value in property objectfunction (key, value, force)
array()Appends passed value to Array propertyfunction (array, force)
object()Extends property with passed objectfunction (object, force)

By default this setters will not override previous property value (unless force is true).

Returns Builder.