From 67290317c8530501f9582fa79a61466a3d34720d Mon Sep 17 00:00:00 2001 From: Raynos Date: Sat, 2 Jun 2012 19:33:48 +0100 Subject: [PATCH] v2.2.0 Updated dependencyMapper again --- modules/dependencyMapper.js | 21 ++++++++++++++++++++- package.json | 2 +- test/dependencyMapper.js | 7 +++++++ test/modules/dependency.json | 3 ++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/modules/dependencyMapper.js b/modules/dependencyMapper.js index c7fd8d4..ae3c078 100644 --- a/modules/dependencyMapper.js +++ b/modules/dependencyMapper.js @@ -143,7 +143,26 @@ function findProxyObject(uri, proxyName, callback) { var proxyObject = {}, folderUri = path.join(uri, proxyName) - fs.readdir(folderUri, mapIntoProxyObject) + iterateFiles(folderUri, function (fileName) { + var relativePropertyName = path.relative(folderUri, fileName), + relativeValue = path.relative(uri, fileName) + + relativePropertyName = relativePropertyName.replace(isFile, "") + var props = relativePropertyName.split("/") + + props.reduce(function (memo, value, index) { + if (index === props.length - 1) { + memo[value] = relativeValue + } else { + return (memo[value] = memo[value] || {}) + } + }, proxyObject) + + }, function (err) { + callback(err, proxyObject) + }) + + //fs.readdir(folderUri, mapIntoProxyObject) function mapIntoProxyObject(err, files) { if (err) { diff --git a/package.json b/package.json index 3789459..8e35e7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ncore", - "version": "2.1.0", + "version": "2.2.0", "description": "Core library for your application", "keywords": ["core", "architecture", "infrastructure"], "author": "Raynos ", diff --git a/test/dependencyMapper.js b/test/dependencyMapper.js index 90bce9c..050c541 100644 --- a/test/dependencyMapper.js +++ b/test/dependencyMapper.js @@ -49,6 +49,13 @@ suite("dependencyMapper", function () { "baz": "shallow/foo/baz.js" }) + assert.deepEqual(json["deep/foo.js"]["tree"], { + foo: { + bar: "shallow/foo/bar.js", + baz: "shallow/foo/baz.js" + } + }) + assert.equal(json["shallow/foo/bar.js"]["deep"], "deep/foo.js") assert.equal(json["shallow/foo/baz.js"]["deep"], "deep/foo.js") diff --git a/test/modules/dependency.json b/test/modules/dependency.json index bcbce13..331c659 100644 --- a/test/modules/dependency.json +++ b/test/modules/dependency.json @@ -10,7 +10,8 @@ "foobar": "bar" }, "deep": { - "shallow": "shallow" + "shallow": "shallow", + "tree": ["shallow"] }, "shallow": { "deep": "deep"