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

  buf = compressor buf, 'js'

  # TODO: make output folder dynamic
  output_path = path.normalize("public/js/templates.js")
  mkdirp.sync path.dirname(output_path)
  fs.writeFileSync output_path, buf


   * 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'
      templates: undefined # an array of template filenames

    _.extend @, defaults, options
