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
path: root/lib
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 /lib
parent9e15a43b5a97279acaf310ecd281fdfbd414cd4b (diff)
Move abbrev to a submodule/dependency
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/abbrev.js106
-rw-r--r--lib/utils/parse-args.js2
2 files changed, 1 insertions, 107 deletions
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