code: function evalModel(currentScope, scopeDefinition, partialModel, partialName) {
      if (!partialModel) { return; }
  
      var user = currentScope && currentScope.user;
      var activeUser = user ? {
          _id: user._id,
          name: user.username,
          role: user.role,
          user: user
      } : {};
  
      var opts = { dependencies: { currentScope: currentScope, activeUser: activeUser }};
      var me = this;
  
      // if its a function, then its our injection point
      if (_.isFunction(partialModel)) {
          updateScope(this.pancakes.cook(partialModel, opts), scopeDefinition, currentScope, partialName);
      }
      // else if its an object, we want to loop through the object values
      else if (_.isObject(partialModel)) {
          _.each(partialModel, function (partialModelVal, partialModelName) {
  
              // if the name is in the scope definition, throw error because it means we are trying to modify a parent scope value in the model
              if (scopeDefinition[partialModelName]) {
                  throw new Error(partialName + 'mode() value ' + partialModelName + ' is from the parent scope and should not be modified in the mode().');
              }
  
              // any function in the object is an injection point
              if (_.isFunction(partialModelVal)) {
                  updateScope(me.pancakes.cook(partialModelVal, opts), scopeDefinition, currentScope, partialName, partialModelName);
              }
              // else just set the value on the scope
              else {
                  currentScope[partialModelName] = partialModelVal;
              }
          });
      }
      else {
          throw new Error(partialName + ' invalid model() format');
      }
  }
docs: Modify a model according to a partial's model() function
  @param currentScope
  @param scopeDefinition
  @param partialModel
  @param partialName