text: // Generated by CoffeeScript 1.9.0
  var Capabilities, Util, path, _,
    __extends = 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;
  
  _ = require('lodash')._;
  
  path = require('path');
  
  Capabilities = (function(_super) {
    __extends(Capabilities, _super);
  
    Capabilities.prototype.__modules = [];
  
    Capabilities.prototype.__loaded_modules = [];
  
    function Capabilities() {
      var name, _i, _len, _ref;
      _ref = ['mongoose', 'mongodb', 'rikki-tikki-client'];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        name = _ref[_i];
        if (_.map(_.pluck(require.cache, 'filename'), function(p) {
          return path.dirname(p).split(path.sep).pop();
        }).indexOf("" + name) > -1) {
          this.__modules = _.union(this.__modules, name);
        }
        if (Util.detectModule(name)) {
          this.__loaded_modules.push(name);
        }
      }
    }
  
    Capabilities.prototype.detectedModules = function() {
      return this.__modules;
    };
  
    Capabilities.prototype.loadedModules = function() {
      return this.__loaded_modules;
    };
  
    Capabilities.prototype.clientSupported = function() {
      return 0 <= this.detectedModules().indexOf('rikki-tikki-client');
    };
  
    Capabilities.prototype.clientLoaded = function() {
      return 0 <= this.loadedModules().indexOf('rikki-tikki-client');
    };
  
    Capabilities.prototype.mongooseSupported = function() {
      return 0 <= this.detectedModules().indexOf('mongoose');
    };
  
    Capabilities.prototype.mongooseLoaded = function() {
      return 0 <= this.loadedModules().indexOf('mongoose');
    };
  
    Capabilities.prototype.nativeSupported = function() {
      return 0 <= this.detectedModules().indexOf('mongodb');
    };
  
    Capabilities.prototype.nativeLoaded = function() {
      return 0 <= this.loadedModules().indexOf('mongodb');
    };
  
    Capabilities.prototype.expressSupported = function() {
      return 0 <= this.detectedModules().indexOf('express');
    };
  
    Capabilities.prototype.expressLoaded = function() {
      return 0 <= this.loadedModules().indexOf('express');
    };
  
    Capabilities.prototype.hapiSupported = function() {
      return 0 <= this.detectedModules().indexOf('hapi');
    };
  
    Capabilities.prototype.hapiLoaded = function() {
      return 0 <= this.loadedModules().indexOf('hapi');
    };
  
    return Capabilities;
  
  })(Object);
  
  module.exports = Capabilities;
  
  Util = require('./Modules');
  