backbone-http
Version:
An HTTP interface for BackboneORM
67 lines (57 loc) • 2.13 kB
text/coffeescript
fs = require 'fs'
path = require 'path'
_ = require 'underscore'
Queue = require 'queue-async'
es = require 'event-stream'
Wrench = require 'wrench'
gulp = require 'gulp'
gutil = require 'gulp-util'
shell = require 'gulp-shell'
requireSrc = require 'gulp-require-src'
compile = require 'gulp-compile-js'
concat = require 'gulp-concat'
wrapAMD = require 'gulp-wrap-amd-infer'
webpack = require 'gulp-webpack-config'
browserify = require 'gulp-browserify'
TEST_GROUPS = require '../test_groups'
module.exports = (options={}, callback) ->
queue = new Queue(1)
# compile coffeescript config
queue.defer (callback) ->
gulp.src(['./test/parameters.coffee'])
.pipe(compile({coffee: {bare: true}}))
.pipe(gulp.dest('_temp'))
.on('end', callback)
unless options.tags.indexOf('@quick') >= 0
# install backbone-http
queue.defer (callback) ->
gulp.src(['./backbone-http.js', './package.json'])
.pipe(gulp.dest('node_modules/backbone-http'))
.on('end', callback)
# build webpack
queue.defer (callback) ->
gulp.src(['config/builds/test/**/*.webpack.config.coffee'], {read: false, buffer: false})
.pipe(webpack())
.pipe(gulp.dest('_temp/webpack'))
.on('end', callback)
# build test browserify
for test in TEST_GROUPS.browserify or []
do (test) -> queue.defer (callback) ->
gulp.src(test.build.files)
.pipe(compile({coffee: {bare: true}}))
.pipe(concat(path.basename(test.build.destination)))
.pipe(browserify(test.build.options))
.pipe(gulp.dest(path.dirname(test.build.destination)))
.on('end', callback)
# wrap AMD tests
for test in TEST_GROUPS.amd or []
do (test) -> queue.defer (callback) ->
gulp.src(test.build.files)
.pipe(compile({coffee: {bare: true, header: false}}))
.pipe(wrapAMD(test.build.options))
.pipe(gulp.dest(test.build.destination))
.on('end', callback)
# uninstall backbone-http
queue.await (err) ->
Wrench.rmdirSyncRecursive('node_modules/backbone-http', true)
callback(err)