|
| 1 | +"use strict" |
| 2 | + |
| 3 | +gulp = require 'gulp' |
| 4 | +coffee = require 'gulp-coffee' |
| 5 | +concat = require 'gulp-concat' |
| 6 | +header = require 'gulp-header' |
| 7 | +jasmine = require 'gulp-jasmine' |
| 8 | +uglify = require 'gulp-uglify' |
| 9 | +karma = require('karma').server |
| 10 | +gutil = require 'gulp-util' |
| 11 | +pkg = require './package.json' |
| 12 | + |
| 13 | + |
| 14 | +path = |
| 15 | + bower : './bower' |
| 16 | + temp : './build' |
| 17 | + coffee : ['./source/*.coffee' |
| 18 | + './spec/*.coffee'] |
| 19 | + modules : ['./source/quo.coffee' |
| 20 | + './source/quo.ajax.coffee' |
| 21 | + './source/quo.css.coffee' |
| 22 | + './source/quo.element.coffee' |
| 23 | + './source/quo.environment.coffee' |
| 24 | + './source/quo.events.coffee' |
| 25 | + './source/quo.output.coffee' |
| 26 | + './source/quo.query.coffee'] |
| 27 | + gestures: ['./source/quo.gestures.coffee' |
| 28 | + './source/quo.gestures.*.coffee'] |
| 29 | + spec : ['./spec/*.coffee'] |
| 30 | + |
| 31 | +banner = [ |
| 32 | + "/**" |
| 33 | + " * <%= pkg.name %> - <%= pkg.description %>" |
| 34 | + " * @version v<%= pkg.version %>" |
| 35 | + " * @link <%= pkg.homepage %>" |
| 36 | + " * @author <%= pkg.author.name %> (<%= pkg.author.site %>)" |
| 37 | + " * @license <%= pkg.license %>" |
| 38 | + " */" |
| 39 | + "" |
| 40 | +].join("\n") |
| 41 | + |
| 42 | + |
| 43 | +gulp.task 'modules', -> |
| 44 | + gulp.src path.modules |
| 45 | + .pipe coffee().on 'error', gutil.log |
| 46 | + .pipe gulp.dest path.temp |
| 47 | + .pipe uglify mangle: true |
| 48 | + .pipe header banner, pkg: pkg |
| 49 | + .pipe gulp.dest path.bower |
| 50 | + |
| 51 | + |
| 52 | +gulp.task 'gestures', -> |
| 53 | + gulp.src path.gestures |
| 54 | + .pipe concat 'quo.gestures.coffee' |
| 55 | + .pipe coffee().on 'error', gutil.log |
| 56 | + .pipe gulp.dest path.temp |
| 57 | + .pipe uglify mangle: true |
| 58 | + .pipe header banner, pkg: pkg |
| 59 | + .pipe gulp.dest path.bower |
| 60 | + |
| 61 | + |
| 62 | +gulp.task 'standalone', -> |
| 63 | + gulp.src path.modules.concat path.gestures |
| 64 | + .pipe concat 'quo.standalone.coffee' |
| 65 | + .pipe coffee().on 'error', gutil.log |
| 66 | + .pipe gulp.dest path.temp |
| 67 | + .pipe uglify mangle: true |
| 68 | + .pipe header banner, pkg: pkg |
| 69 | + .pipe gulp.dest path.bower |
| 70 | + |
| 71 | + |
| 72 | +gulp.task 'spec', -> |
| 73 | + gulp.src path.spec |
| 74 | + .pipe concat 'spec.coffee' |
| 75 | + .pipe coffee().on 'error', gutil.log |
| 76 | + .pipe gulp.dest path.temp |
| 77 | + |
| 78 | +gulp.task 'karma', ['modules', 'spec'], (done) -> |
| 79 | + karma.start |
| 80 | + configFile: __dirname + '/karma.js', |
| 81 | + files : [ './build/quo.standalone.js', |
| 82 | + './build/spec.js'] |
| 83 | + singleRun : false |
| 84 | + , done |
| 85 | + |
| 86 | + |
| 87 | +gulp.task 'init', ['modules', 'gestures', 'standalone', 'spec', 'karma'] |
| 88 | + |
| 89 | + |
| 90 | +gulp.task 'default', -> |
| 91 | + gulp.watch path.coffee, ['karma'] |
| 92 | + gulp.watch path.modules, ['modules', 'standalone'] |
| 93 | + gulp.watch path.gestures, ['gestures', 'standalone'] |
| 94 | + gulp.watch path.spec, ['spec'] |
0 commit comments