text: // Generated by CoffeeScript 1.9.3
  (function() {
    var Adapter, Jade, UglifyJS, W, fs, path,
      extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
      hasProp = {}.hasOwnProperty;
  
    Adapter = require('../adapter_base');
  
    path = require('path');
  
    fs = require('fs');
  
    W = require('when');
  
    UglifyJS = require('uglify-js');
  
    Jade = (function(superClass) {
      var compile;
  
      extend(Jade, superClass);
  
      function Jade() {
        return Jade.__super__.constructor.apply(this, arguments);
      }
  
      Jade.prototype.name = 'jade';
  
      Jade.prototype.extensions = ['jade'];
  
      Jade.prototype.output = 'html';
  
      Jade.prototype.supportedEngines = ['yade', 'jade'];
  
      Jade.prototype._render = function(str, options) {
        return compile((function(_this) {
          return function() {
            return _this.engine.render(str, options);
          };
        })(this));
      };
  
      Jade.prototype._compile = function(str, options) {
        return compile((function(_this) {
          return function() {
            return _this.engine.compile(str, options);
          };
        })(this));
      };
  
      Jade.prototype._compileClient = function(str, options) {
        return compile((function(_this) {
          return function() {
            return _this.engine.compileClient(str, options);
          };
        })(this));
      };
  
      Jade.prototype.clientHelpers = function() {
        var runtime, runtime_path;
        runtime_path = path.join(this.engine.__accord_path, 'runtime.js');
        runtime = fs.readFileSync(runtime_path, 'utf8');
        return UglifyJS.minify(runtime, {
          fromString: true
        }).code;
      };
  
      compile = function(fn) {
        var err, res;
        try {
          res = fn();
        } catch (_error) {
          err = _error;
          return W.reject(err);
        }
        return W.resolve({
          result: res
        });
      };
  
      return Jade;
  
    })(Adapter);
  
    module.exports = Jade;
  
  }).call(this);
  