Home

Awesome

Coffee Percolator

Coffee Percolator is a CoffeeScript CakeFile which allows you to use import directives to easily manage dependancies in your CoffeeScript project.

#import core.base
#import utils.*

class App extends Base
	constructor: -> utils.hello()

Just edit the CakeFile to point to your main source file and it will use topological sort to concatenate and compile all required sources in the correct order.

Syntax

You can define imports using CoffeeScript comments in any .coffee file

#import thing

and import sources from any depth

#import bits.bobs.stuff.thing

or use wildcards to import entire directories

#import stuff.*

and if you prefer slashes to dots, that's fine

#import bits/bobs/stuff/*

Check out the example for a ridiculous hypothetical project that makes use of imports.

Usage

You probably just want the CakeFile, so grab that first

curl -o CakeFile https://raw.github.com/soulwire/Coffee-Percolator/master/CakeFile

then use it in the usual cakey manner: cake {task name}

Currently there are two tasks available, build and watch and you've probably already guessed what they do.

cake build will process your main source and follow all dependancies, concatenate them into a single file in the correct order required to run your app then compile this merged file into JavaScript using the CoffeeScript compiler.

cake watch will watch all source files for changes and invoke the build command when it detects them.

So that's it! It's just a CakeFile - grab the code, add any funky business you like that you would normally use and enjoy CoffeeScripting...