code: function () {
      var appConfigPath = this.root.join('config', 'application'),
          envConfigPath = this.root.join('config', 'environment', this.env + '.js'),
          config, appConfig, envConfig;
  
      debug('configuring');
  
      // require the config object, given as the argument to exported `configure`
      // functions in application/environment config files
      config = require(this._root.join('lib', 'config'))(this);
  
      // only load application config if we're in an app
      if (this.inApp) {
        // application.js configuration
        appConfig = require(appConfigPath)(config);
  
        // environmental override configs are optional
        if (fs.existsSync(envConfigPath)) {
          // environment config overrides eg development.js
          // should export a function that takes the config object as an arg
          envConfig = require(envConfigPath)(config);
        }
      }
  
      this.config = config;
  
      return config;
    }
docs: requires the appropriate configuration files, calls the exported function
  providing the config module. first the application.js and then the
  {environment}.js file if it exists.
  
  @param  {Object} args application options as passed in via constructor