Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Guard::CoffeeScript compiles or validates your CoffeeScripts automatically when files are modified.

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.rdoc

Guard::CoffeeScript

Guard::CoffeeScript compiles you CoffeeScripts automatically when files are modified.

  • Tested on Ruby 1.8.7 & 1.9.2.

Install

Please be sure to have guard installed before continue.

Install the gem:

gem install guard-coffeescript

Add it to your Gemfile (inside test group):

gem 'guard-coffeescript'

Add guard definition to your Guardfile by running this command:

guard init coffeescript

JSON

The json library is also required but is not explicitly stated as a gem dependency. If you're on Ruby 1.8 you'll need to install the json or json_pure gem. On Ruby 1.9, json is included in the standard library.

CoffeeScript

Guard::CoffeeScript uses Ruby CoffeeScript to compile the CoffeeScripts, that in turn uses ExecJS to pick the best runtime to evaluate the JavaScript.

node.js

Please refer to the CoffeeScript documentation for more information about how to install the latest CoffeeScript version on node.js.

JavaScript Core

JavaScript Core is only available on Mac OS X. To use JavaScript Core you don't have to install anything, because JavaScript Core is packaged with Mac OS X.

V8

To use CoffeeScript on V8, simple add `therubyracer` to your Gemfile. The Ruby Racer acts as a bridge between Ruby and the V8 engine, that will be automatically installed by the Ruby Racer.

group :development do
  gem 'therubyracer'
end

Mozilla Rhino

If you're using JRuby, you can embed the Mozilla Rhino runtime by adding `therubyrhino` to your Gemfile:

group :development do
  gem 'therubyrhino'
end

Microsoft Windows Script Host

Microsoft Windows Script Host is available on any Microsoft Windows operating systems.

Usage

Please read guard usage doc

Guardfile

CoffeeScript guard can be adapated to all kind of projects. Please read guard doc for more info about Guardfile DSL.

Standard ruby gems

guard 'coffeescript' do
  watch(%r{coffeescripts/.+\.coffee})
end

Rails app

guard 'coffeescript', :output => 'public/javascripts/compiled' do
  watch(%r{app/coffeescripts/.+\.coffee})
end

Options

There following options can be passed to the CoffeeSCript Guard:

:output => 'javascripts'            # Relative path to the output directory
:bare => true                       # Compile without the top-level function wrapper
:shallow => true                    # Do not create nested output directories

Nested directories

The guard detects by default nested directories and creates these within the output directory. The detection is based on the match of the watch regular expression:

A file

/app/coffeescripts/ui/buttons/toggle_button.coffee

that has been detected by the watch

watch(%r{app/coffeescripts/.+\.coffee})

with an output directory of

:output => 'public/javascripts/compiled'

will be compiled to

public/javascripts/compiled/ui/buttons/toggle_button.js

This behaviour can be switched off by passing the option `:shallow => true` to the guard, so that all JavaScripts will be compiled directly to the output directory.

Development

Pull requests are very welcome! Make sure your patches are well tested.

Author

Michael Kessler

Contributors

Aaron Jensen

Acknowledgment

Many thanks to the Guard Team and all the authors of the numerous Guards

Something went wrong with that request. Please try again.