import base = require("./base"); declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; var gulp = require('gulp'); var path = require('path'); var $ = require('gulp-load-plugins')({lazy: true}); var compileCoffee = require('./compilers/coffee'); var _ = require('lodash'); var logs = require('./helpers/logs'); var glob = require('glob'); class CoveragePlato extends base.BaseTask { constructor() { super(); return this; } static taskName:string = 'coveragePlato'; static async:boolean = false; static required:Array = [ 'plato' ]; static config(task, tasks, userOptions) { return { globPath: "/**/*.js", excludeFiles: /.*\.spec\.js/ }; } static gulp(options, settings, task, tasks, done):void { CoveragePlato.checkArguments(options, settings, task, tasks, done); var plato = require('plato'); var title = options.bower.name; var coverageArea = path.normalize(options.dist) + "/" + settings.globPath; var files = glob.sync(coverageArea); var outputDir = options.tmp + "/coverage/plato"; var platoConfig = { title: "Plato Inspections Report " + title, exclude: settings.excludeFiles }; logs('Analyzing source with Plato'); logs('Browse to /report/plato/index.html to see Plato results'); logs('Running Plato ' + title); logs('root path: ' + options.dist); logs('coverage: ' + coverageArea); logs('file count: ' + files.length); if(files.length === 0) { return null; } function platoCompleted(report) { var overview = plato.getOverviewReport(report); if(options.verbose) { logs(overview.summary); } if(done) { done(); } } plato.inspect(files, outputDir, platoConfig, platoCompleted); } } export = CoveragePlato;