Sha256: 276b9795d9f05d94a5737d070c2066f848d18c3b26d719d29c7b373d7e16359e

Contents?: true

Size: 1.36 KB

Versions: 19

Compression:

Stored size: 1.36 KB

Contents

/** internal
 *  class Paths
 *
 *  Subclass of [[NormalizedArray]].
 *  Internal collection for tracking path strings.
 *  Each element is a valid absolute path.
 *
 *      var paths = new Paths("/usr/local");
 *
 *      paths.append('tmp');
 *      paths.append('/tmp');
 *
 *      paths.toArray();
 *      // -> ["/usr/local/tmp", "/tmp"]
 **/


'use strict';


var resolvePath   = require('path').resolve;
var normalizePath = require('path').normalize;


var NormalizedArray = require('./normalized_array');


/**
 *  new Paths(root = ".")
 **/
var Paths = module.exports = function Paths(root) {
  NormalizedArray.call(this);

  Object.defineProperty(this, '__root__', {value: root});
};


require('util').inherits(Paths, NormalizedArray);


/**
 *  Paths#clone() -> Paths
 *
 *  Return copy of the instance.
 **/
Paths.prototype.clone = function () {
  var obj = new Paths(this.__root__);
  obj.prepend(this.toArray());
  return obj;
};


/**
 *  Paths#normalize(path) -> String
 *
 *  Relative paths added to this array are expanded relative to `root`.
 *
 *      paths = new Paths("/usr/local");
 *
 *      paths.append("tmp");
 *      paths.append("/tmp");
 *
 *      paths.toArray();
 *      // -> ["/usr/local/tmp", "/tmp"]
 **/
Paths.prototype.normalize = function (path) {
  if ('/' !== path[0]) {
    path = resolvePath(this.__root__, path);
  }

  return normalizePath(path);
};

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 node_modules/hike/lib/hike/paths.js
ela-4.1.5 node_modules/hike/lib/hike/paths.js
ela-4.1.4 node_modules/hike/lib/hike/paths.js
ela-4.1.3 node_modules/hike/lib/hike/paths.js
ela-4.1.2 node_modules/hike/lib/hike/paths.js
ela-4.1.1 node_modules/hike/lib/hike/paths.js
ela-4.1.0 node_modules/hike/lib/hike/paths.js
ela-4.0.0 node_modules/hike/lib/hike/paths.js
ela-3.4.3 node_modules/hike/lib/hike/paths.js
ela-3.4.2 node_modules/hike/lib/hike/paths.js
ela-3.4.0 node_modules/hike/lib/hike/paths.js
ela-3.3.1 node_modules/hike/lib/hike/paths.js
ela-3.3.0 node_modules/hike/lib/hike/paths.js
ela-3.2.0 node_modules/hike/lib/hike/paths.js
ela-3.1.1 node_modules/hike/lib/hike/paths.js
ela-3.1.0 node_modules/hike/lib/hike/paths.js
ela-3.0.0 node_modules/hike/lib/hike/paths.js
ela-2.0.0 node_modules/hike/lib/hike/paths.js
ela-1.1.0 node_modules/hike/lib/hike/paths.js