"use strict"

gulp = require("gulp")
coffeelint = require("gulp-coffeelint")
coffee = require("gulp-coffee")
concat = require("gulp-concat")
mocha = require('gulp-mocha')
fs = require("fs")

rm = (file)-> fs.unlinkSync file if fs.existsSync file

gulp.task "clean", ->
  rm "lib/assert.js"
  rm "lib/signature.js"

gulp.task "test", ["clean"], ->
  gulp.src "test/spec.coffee", read: false
    .pipe mocha(reporter: 'dot')

gulp.task "coffee", ["test"], ->
  gulp.src "src/**/*.coffee"
    .pipe coffeelint()
    .pipe coffeelint.reporter()
    .pipe coffee().on("error", console.log)
    .pipe gulp.dest "./lib"

gulp.task "build", ["coffee"]

gulp.task "default", ["build"]
