backbone-kinview
Version:
A backbone.js view with built in lifecycle management of child views
101 lines (92 loc) • 2.65 kB
JavaScript
var browserify = require('browserify'),
cover = require('gulp-coverage'),
gulp = require('gulp'),
gutil = require('gulp-util'),
gulpif = require('gulp-if'),
jsdom = require('jsdom'),
jshint = require('gulp-jshint'),
minimist = require('minimist'),
mocha = require('gulp-mocha'),
source = require('vinyl-source-stream'),
through2 = require('through2')
var args = minimist(process.argv.slice(3), {
default: {
cover: true,
html: false
}
})
var processCover = through2.obj(function (stats, enc, done) {
var lines = stats.coverage.sloc
var total = stats.coverage.coverage
total = isNaN(parseFloat(total)) ? 0 : total.toFixed(2)
gutil.log(
'Test coverage:',
gutil.colors.magenta(total),
gutil.colors.magenta('%'),
'(',
gutil.colors.magenta(lines),
gutil.colors.magenta('lines'),
')'
)
if (stats.coverage.uncovered.length) {
gutil.log('Untestd files:', stats.coverage.uncovered)
}
done()
},
function (done) {
// keep on piping!
done()
})
gulp.task('build', function() {
var b = browserify({
entries: [
'index.js'
],
paths: [
'src/'
]
})
.ignore('backbone')
.ignore('underscore')
.ignore('jquery')
.bundle()
.pipe(source('kinView.js'))
.pipe(gulp.dest('./'))
})
gulp.task('lint', function(){
return gulp.src([
'src/**/*.js'
])
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(jshint.reporter(''))
})
gulp.task('test', ['lint'], function(){
// set up document and window
global.document = jsdom.jsdom('')
global.window = document.defaultView
return gulp.src(['tests/*Test.js'], { read: false })
.pipe(mocha({
reporter: 'spec'
}))
})
gulp.task('testc', ['lint'], function(){
// set up document and window
global.document = jsdom.jsdom('')
global.window = document.defaultView
return gulp.src(['tests/*Test.js'], { read: false })
.pipe(gulpif(args.cover, cover.instrument({
pattern: [
'src/**'
]
})))
.pipe(mocha({
reporter: 'spec'
}))
.pipe(gulpif(args.cover, cover.gather()))
.pipe(gulpif(args.cover, processCover))
.pipe(gulpif(args.cover && args.html, cover.report({
outFile: 'coverage.html',
reporter: 'html'
})))
})