API Docs for:
Show:

File: /Users/dmp/dev/jsboot/gulp-yuidoc/lib/parser.js

/**
 * This is the document parser
 * Should be fed an options object, a list of files and dirs
 */

(function(){
  'use strict';

  var Y = require('yuidocjs');

  var Parser = function(options){
    options = options || {};
    // Be sure NOT to write the resulting JSON file to disk
    options.writeJSON = false;
    // Shut it
    options.lint = false;
    // Shut it, really
    options.quiet = true;

    options.syntaxtype = options.syntaxtype || 'js';

    // Set file list up
    var filemap = {};
    var dirmap = {};

    // Init yui
    var ydoc = new Y.YUIDoc(options);

    // Accumulate files
    this.parse = function(vinyl){
      var data = vinyl.contents.toString('utf8');
      // Don't treat empty files
      if (data.length){
        filemap[vinyl.path] = data;
        dirmap[vinyl.path] = vinyl.cwd;
      }
    };

    // Finally parse them up
    this.complete = function(){
      // Return the generated json
      return ydoc.writeJSON(new Y.DocParser({
        syntaxtype: ydoc.options.syntaxtype,
        filemap: filemap,
        dirmap: dirmap
      }).parse());
    };
  };

  module.exports = Parser;

}());