    * deals with setting up the variables for options
    * @param {Object} options = {} an object holding all the options to be
      passed to the compiler. 'templates' must be specified.
+   * @constructor
   ###
   constructor: (options = {}) ->
     defaults =
       include_helpers: true
       inline: false
       debug: false
-      namespace: "templates"
+      namespace: 'templates'
       templates: undefined # an array of template filenames
 
     _.extend @, defaults, options

   * compile individual templates
   * @param {String} template the full filename & path of the template to be compiled
   * @return {String} source of the template function
  ###
  compileTemplate: (template) ->
    templateNamespace = path.basename(template, '.jade').replace(/\//g, '.') # Replaces '/' with '.'

jade = require "jade"
fs = require "fs"
path = require "path"
_ = require "underscore"
mkdirp = require "mkdirp"
compressor = require './utils/compressor'

###*
 * compile jade templates into JS functions for use on the client-side, and
   save it to a specified file
###
module.exports = ->
  global.options.debug.log 'precompiling templates', 'yellow'
  return false if not global.options.templates?
  template_dir = path.join process.cwd(), global.options.templates

  precompiler = new Precompiler(
