code: function (opts) {
              var self = this;
              opts.meta.modules = [];
              opts.meta.allModules = [];
              Y.each(this.data.modules, function (v) {
                  if (v.external) {
                      return;
                  }
                  opts.meta.allModules.push({
                      displayName: v.displayName || v.name,
                      name: self.filterFileName(v.name),
                      description: v.description
                  });
                  if (!v.is_submodule) {
                      var o = {
                          displayName: v.displayName || v.name,
                          name: self.filterFileName(v.name)
                      };
                      if (v.submodules) {
                          o.submodules = [];
                          Y.each(v.submodules, function (i, k) {
                              var moddef = self.data.modules[k];
                              if (moddef) {
                                  o.submodules.push({
                                      displayName: k,
                                      description: moddef.description
                                  });
                                  // } else {
                                  //     Y.log('Submodule data missing: ' + k + ' for ' + v.name, 'warn', 'builder');
                              }
                          });
                          o.submodules.sort(self.nameSort);
                      }
                      opts.meta.modules.push(o);
                  }
              });
              opts.meta.modules.sort(this.nameSort);
              opts.meta.allModules.sort(this.nameSort);
              return opts;
          }
docs: Populate the meta data for modules
  @method populateModules
  @param {Object} opts The original options
  @return {Object} The modified options