class Rake::CoffeeTask

Attributes

compile_opts[RW]
lint_opts[RW]
test_cmd[RW]
test_coverage_cmd[RW]

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/rake_coffee.rb, line 13
def initialize
  @test_cmd          = "mocha"
  @test_coverage_cmd = "istanbul cover _mocha"
  @lint_opts         = ""
  @compile_opts      = ""
  yield self if block_given?
  define
end

Public Instance Methods

define() click to toggle source
# File lib/rake_coffee.rb, line 22
def define
  task :default => :test

  coffee_files = ::Rake::FileList["**/*.coffee"]
  js_files     = coffee_files.ext("js")

  desc "compile CoffeeScript files"
  task :compile => js_files

  rule ".js" => ".coffee" do |t|
    sh "coffeelint #{lint_opts} #{t.source}"
    sh "coffee --compile #{compile_opts} #{t.source}"
  end

  desc "run unit test"
  task :test => :compile do
    sh test_cmd
  end

  desc "git commit"
  task :commit => :test do
    sh "git commit -v"
  end

  desc "push to a shared repository"
  task :push => :test do
    sh "git push"
  end

  desc "run unit test with coverage report"
  task :cov => :compile do
    sh test_coverage_cmd
  end
end