handler: function()

in tools/api-builder/links-package/inline-tag-defs/exampleTabs.js [18:46]


    handler: function(doc, tagName, tagDescription) {

      var tagArgs = parseArgString(tagDescription);
      var unnamedArgs = tagArgs._;
      var relativePaths = unnamedArgs[0].split(',');
      var regions = tagArgs.regions || (unnamedArgs.length > 1 ? unnamedArgs[1] : null);
      var titles = tagArgs.titles || (unnamedArgs.length > 2 ? unnamedArgs[2] : null);
      if (regions) {
        regions = regions.split(',');
      }

      // TODO: not yet implemented here
      var stylePatterns = tagArgs.stylePattern;

      var mixinPaths = relativePaths.map(function(relativePath, ix) {
        var fragFileName = getApiFragmentFileName(relativePath, regions && regions[ix]);
        if ( !fs.existsSync(fragFileName)) {
          log.warn(createDocMessage('Invalid example (unable to locate fragment file: ' + quote(fragFileName) + ")", doc));
        }
        return path.join('_api', relativePath);
      });

      var comma = ', '
      var pathsArg = quote(mixinPaths.join(','));
      var regionsArg = regions ? quote(regions.join(',')) : 'null';
      var titlesArg = titles ? quote(titles) : 'null';
      var res = [ "+makeTabs(", pathsArg, comma, regionsArg, comma, titlesArg, ")" ].join('');
      return res;
    }