Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2011-03-25 02:06:26 +0300
committerisaacs <i@izs.me>2011-03-25 02:06:26 +0300
commit5630986a1a5c414f8a6185fda08096432da86d6b (patch)
tree0a43fee03e9e57cd4dbd9cecfa985b663a3bbf61
parent9e15a43b5a97279acaf310ecd281fdfbd414cd4b (diff)
Move abbrev to a submodule/dependency
-rw-r--r--.gitmodules3
-rw-r--r--lib/utils/abbrev.js106
-rw-r--r--lib/utils/parse-args.js2
m---------node_modules/abbrev0
-rw-r--r--npm.js2
-rw-r--r--package.json4
6 files changed, 7 insertions, 110 deletions
diff --git a/.gitmodules b/.gitmodules
index 67f8c059e..24407ab9a 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "node_modules/semver"]
path = node_modules/semver
url = git://github.com/isaacs/node-semver.git
+[submodule "node_modules/abbrev"]
+ path = node_modules/abbrev
+ url = git://github.com/isaacs/abbrev-js.git
diff --git a/lib/utils/abbrev.js b/lib/utils/abbrev.js
deleted file mode 100644
index 3d03fac38..000000000
--- a/lib/utils/abbrev.js
+++ /dev/null
@@ -1,106 +0,0 @@
-
-module.exports = exports = abbrev.abbrev = abbrev
-
-abbrev.monkeyPatch = monkeyPatch
-
-function monkeyPatch () {
- Array.prototype.abbrev = function () { return abbrev(this) }
- Object.prototype.abbrev = function () { return abbrev(Object.keys(this)) }
-}
-
-function abbrev (list) {
- if (arguments.length !== 1 || !Array.isArray(list)) {
- list = Array.prototype.slice.call(arguments, 0)
- }
- for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {
- args[i] = typeof list[i] === "string" ? list[i] : String(list[i])
- }
-
- // sort them lexicographically, so that they're next to their nearest kin
- args = args.sort(lexSort)
-
- // walk through each, seeing how much it has in common with the next and previous
- var abbrevs = {}
- , prev = ""
- for (var i = 0, l = args.length ; i < l ; i ++) {
- var current = args[i]
- , next = args[i + 1] || ""
- , nextMatches = true
- , prevMatches = true
- if (current === next) continue
- for (var j = 0, cl = current.length ; j < cl ; j ++) {
- var curChar = current.charAt(j)
- nextMatches = nextMatches && curChar === next.charAt(j)
- prevMatches = prevMatches && curChar === prev.charAt(j)
- if (nextMatches || prevMatches) continue
- else {
- j ++
- break
- }
- }
- prev = current
- if (j === cl) {
- abbrevs[current] = current
- continue
- }
- for (var a = current.substr(0, j) ; j <= cl ; j ++) {
- abbrevs[a] = current
- a += current.charAt(j)
- }
- }
- return abbrevs
-}
-
-function lexSort (a, b) {
- return a === b ? 0 : a > b ? 1 : -1
-}
-
-
-// tests
-if (module === require.main) {
-
-var assert = require("assert")
- , sys
-sys = require(process.binding("native").util ? "util" : "sys")
-
-console.log("running tests")
-function test (list, expect) {
- var actual = abbrev(list)
- assert.deepEqual(actual, expect,
- "abbrev("+sys.inspect(list)+") === " + sys.inspect(expect) + "\n"+
- "actual: "+sys.inspect(actual))
- actual = abbrev.apply(exports, list)
- assert.deepEqual(abbrev.apply(exports, list), expect,
- "abbrev("+list.map(JSON.stringify).join(",")+") === " + sys.inspect(expect) + "\n"+
- "actual: "+sys.inspect(actual))
-}
-
-test([ "ruby", "ruby", "rules", "rules", "rules" ],
-{ rub: 'ruby'
-, ruby: 'ruby'
-, rul: 'rules'
-, rule: 'rules'
-, rules: 'rules'
-})
-test(["fool", "foom", "pool", "pope"],
-{ fool: 'fool'
-, foom: 'foom'
-, poo: 'pool'
-, pool: 'pool'
-, pop: 'pope'
-, pope: 'pope'
-})
-test(["a", "ab", "abc", "abcd", "abcde", "acde"],
-{ a: 'a'
-, ab: 'ab'
-, abc: 'abc'
-, abcd: 'abcd'
-, abcde: 'abcde'
-, ac: 'acde'
-, acd: 'acde'
-, acde: 'acde'
-})
-
-console.log("pass")
-
-} \ No newline at end of file
diff --git a/lib/utils/parse-args.js b/lib/utils/parse-args.js
index 52dd1aefb..6dfe2a6ee 100644
--- a/lib/utils/parse-args.js
+++ b/lib/utils/parse-args.js
@@ -3,7 +3,7 @@
var url = require("url")
, path = require("path")
, Stream = require("stream").Stream
- , abbrev = require("./abbrev")
+ , abbrev = require("abbrev")
, log = require("./log")
module.exports = exports = parseArgs
diff --git a/node_modules/abbrev b/node_modules/abbrev
new file mode 160000
+Subproject 3d509ef6a503703e357f2ffa1df05e4f09a43bb
diff --git a/npm.js b/npm.js
index de6703359..09b3a7991 100644
--- a/npm.js
+++ b/npm.js
@@ -18,7 +18,7 @@ var EventEmitter = require("events").EventEmitter
, log = require("./lib/utils/log")
, fs = require("./lib/utils/graceful-fs")
, path = require("path")
- , abbrev = require("./lib/utils/abbrev")
+ , abbrev = require("abbrev")
, which = require("./lib/utils/which")
, semver = require("semver")
, findPrefix = require("./lib/utils/find-prefix")
diff --git a/package.json b/package.json
index de4355b9c..10971eb78 100644
--- a/package.json
+++ b/package.json
@@ -49,8 +49,8 @@
}
, "main" : "npm"
, "bin" : "./bin/npm.js"
-, "dependencies" : { "semver" : "1" }
-, "bundleDependencies" : [ "semver" ]
+, "dependencies" : { "semver" : "1", "abbrev" : "1" }
+, "bundleDependencies" : [ "semver", "abbrev" ]
, "devDependencies" : { "ronn" : "" }
, "engines" : { "node" : "0.4 || 0.5", "npm" : "1" }
, "scripts" : { "test" : "make test"