lib/boilerplate.view.js
function buildViewAttribsFire( def, code ) {
    code.pm = true;
    const attribs = def[ "view.attribs" ];
    if ( typeof attribs !== 'object' ) return;
    try {
        for ( const attName of Object.keys( attribs ) ) {
            const camelCaseAttName = camelCase( attName );
            if ( !code.isAction( attName ) ) {
                buildViewAttribsInitFire( camelCaseAttName, code );
            }
        }
    } catch ( ex ) {
        bubble( ex, `...in buildViewAttribsFire - view.attribs: ${JSON.stringify(attribs, null, "  ")}` );
    }
}
function buildViewAttribsFire( def, code ) {
    code.pm = true;
    const attribs = def[ "view.attribs" ];
    if ( typeof attribs !== 'object' ) return;
    try {
        for ( const attName of Object.keys( attribs ) ) {
            const camelCaseAttName = camelCase( attName );
            if ( !code.isAction( attName ) ) {
                buildViewAttribsInitFire( camelCaseAttName, code );
            }
        }
    } catch ( ex ) {
        bubble( ex, `...in buildViewAttribsFire - view.attribs: ${JSON.stringify(attribs, null, "  ")}` );
    }
}
function buildViewAttribsFire ( def , code ) { code . pm = true ; const attribs = def [ "view.attribs" ] ; if ( typeof attribs !== 'object' ) return ; try { for ( const attName of Object . keys ( attribs ) ) { const camelCaseAttName = camelCase ( attName ) ; if ( ! code . isAction ( attName ) ) { buildViewAttribsInitFire ( camelCaseAttName , code ) ; } } } catch ( ex ) { bubble ( ex , ` ${ JSON . stringify ( attribs , null , "  " ) } ` ) ; } }
Trigger the fire event on each attribute.

@param   {[type]} def  [description]
@param   {[type]} code [description]
@returns {undefined}
Trigger the fire event on each attribute .