lib/tooling.js
function(conn) {
  this._conn = conn;
  this._logger = conn._logger;
  var delegates = [
    "query",
    "queryMore",
    "create",
    "insert",
    "retrieve",
    "update",
    "upsert",
    "del",
    "delete",
    "destroy",
    "describe",
    "describeGlobal",
    "sobject"
  ];
  delegates.forEach(function(method) {
    this[method] = conn.constructor.prototype[method];
  }, this);

  this.cache = new Cache();

  var cacheOptions = {
    key: function(type) { return type ? "describe." + type : "describe"; }
  };
  this.describe$ = this.cache.makeCacheable(this.describe, this, cacheOptions);
  this.describe = this.cache.makeResponseCacheable(this.describe, this, cacheOptions);
  this.describeSObject$ = this.describe$;
  this.describeSObject = this.describe;

  cacheOptions = { key: 'describeGlobal' };
  this.describeGlobal$ = this.cache.makeCacheable(this.describeGlobal, this, cacheOptions);
  this.describeGlobal = this.cache.makeResponseCacheable(this.describeGlobal, this, cacheOptions);

  this.initialize();
}
function(conn) {
  this._conn = conn;
  this._logger = conn._logger;
  var delegates = [
    "query",
    "queryMore",
    "create",
    "insert",
    "retrieve",
    "update",
    "upsert",
    "del",
    "delete",
    "destroy",
    "describe",
    "describeGlobal",
    "sobject"
  ];
  delegates.forEach(function(method) {
    this[method] = conn.constructor.prototype[method];
  }, this);

  this.cache = new Cache();

  var cacheOptions = {
    key: function(type) { return type ? "describe." + type : "describe"; }
  };
  this.describe$ = this.cache.makeCacheable(this.describe, this, cacheOptions);
  this.describe = this.cache.makeResponseCacheable(this.describe, this, cacheOptions);
  this.describeSObject$ = this.describe$;
  this.describeSObject = this.describe;

  cacheOptions = { key: 'describeGlobal' };
  this.describeGlobal$ = this.cache.makeCacheable(this.describeGlobal, this, cacheOptions);
  this.describeGlobal = this.cache.makeResponseCacheable(this.describeGlobal, this, cacheOptions);

  this.initialize();
}
function ( conn ) { this . _conn = conn ; this . _logger = conn . _logger ; var delegates = [ "query" , "queryMore" , "create" , "insert" , "retrieve" , "update" , "upsert" , "del" , "delete" , "destroy" , "describe" , "describeGlobal" , "sobject" ] ; delegates . forEach ( function ( method ) { this [ method ] = conn . constructor . prototype [ method ] ; } , this ) ; this . cache = new Cache ( ) ; var cacheOptions = { key : function ( type ) { return type ? "describe." + type : "describe" ; } } ; this . describe$ = this . cache . makeCacheable ( this . describe , this , cacheOptions ) ; this . describe = this . cache . makeResponseCacheable ( this . describe , this , cacheOptions ) ; this . describeSObject$ = this . describe$ ; this . describeSObject = this . describe ; cacheOptions = { key : 'describeGlobal' } ; this . describeGlobal$ = this . cache . makeCacheable ( this . describeGlobal , this , cacheOptions ) ; this . describeGlobal = this . cache . makeResponseCacheable ( this . describeGlobal , this , cacheOptions ) ; this . initialize ( ) ; }
API class for Tooling API call

@class
@param {Connection} conn - Connection
API class for Tooling API call