1 | 'use strict';
|
2 | var gulp = require('gulp');
|
3 | var jshint = require('gulp-jshint');
|
4 | var istanbul = require('gulp-istanbul');
|
5 | var coveralls = require('gulp-coveralls');
|
6 | var mocha = require('gulp-spawn-mocha');
|
7 | var batch = require('gulp-batch');
|
8 | var betterConsole = require('better-console');
|
9 | var jsdoc = require('gulp-jsdoc');
|
10 | var jsPaths = ['*.js', 'lib/**/*.js', 'test/**/*.js'];
|
11 |
|
12 | var test = function(cb) {
|
13 | return gulp.src(['lib/**/*.js', 'index.js'])
|
14 | .pipe(istanbul())
|
15 | .on('finish', function() {
|
16 | gulp.src(['test/*.js'])
|
17 | .pipe(mocha({reporter: 'spec', istanbul: true}))
|
18 | .on('end', cb);
|
19 | });
|
20 | };
|
21 |
|
22 | var lint = function() {
|
23 | return gulp.src(jsPaths)
|
24 | .pipe(jshint())
|
25 | .pipe(jshint.reporter('jshint-stylish'));
|
26 | };
|
27 |
|
28 | var clear = function() {
|
29 | betterConsole.clear();
|
30 | };
|
31 |
|
32 | gulp.task('default', ['lint', 'test', 'jsdoc']);
|
33 |
|
34 | gulp.task('ci', ['lint', 'test', 'coveralls']);
|
35 |
|
36 | gulp.task('watch', function() {
|
37 | gulp.watch(jsPaths, batch(function(events, cb) {
|
38 | clear();
|
39 | lint();
|
40 | test(function() {
|
41 | cb();
|
42 | });
|
43 | }));
|
44 | });
|
45 |
|
46 | gulp.task('lint', function() {
|
47 | lint();
|
48 | });
|
49 |
|
50 | gulp.task('test', function(cb) {
|
51 | test(function() {
|
52 | cb();
|
53 | });
|
54 | });
|
55 |
|
56 | gulp.task('coveralls', ['test'], function() {
|
57 | return gulp.src('coverage/lcov.info').pipe(coveralls());
|
58 | });
|
59 |
|
60 | gulp.task('jsdoc', function() {
|
61 | return gulp.src(['lib/goldwasher.js', 'README.md'])
|
62 | .pipe(jsdoc('./docs'));
|
63 | }); |
\ | No newline at end of file |