code: function applyModelViewCollection (context, num, raw) {
      // if there are record views then execute them before collection
      if (this.hasRecord) {
          var recordPromise = this.applyModelViewRecord(raw)
      }
      // wait for record view to resolve
      return Promise.resolve(recordPromise)
      // apply collection view
      .then(recordRaw => {
          // if there is a record result use it
          if (recordRaw) {
              raw = recordRaw
          }
          // if there are synchronous collection views apply
          if (this.hasCollectionSynchronous) {
              this.applyModelViewCollectionSynchronous(context, num, raw)
          }
          // if there are asychronous views then do async apply
          if (this.hasCollectionAsynchronous) {
              return this.applyModelViewCollectionAsynchronous(context, num, raw)
          }
          // otherwise resolve with context
          else {
              return context
          }
      })
  }
docs: @function applyModelViewCollection
  
  apply views to results object
  
  @param {object} context
  @param {integer} num
  @param {array} raw
  
  @returns {Promise}