diff --git a/index.js b/index.js index 4f6fc9b..34a4d01 100644 --- a/index.js +++ b/index.js @@ -13,7 +13,6 @@ var object = {}; - // Regroupe les fonctions liées aux chemins object.paths = {}; @@ -33,6 +32,22 @@ return result; }; +// Regroupe les fonctions liées aux ressources +object.resources = {}; + +/** + * Charge toutes les ressources d'un module R&D + * @param {Object} paths Liste des chemins sous forme d'objet JSON (clé => valeur) + * @return {Object} L'objet contenant toutes les ressources + */ +object.resources.load = function(paths) { + var result = {}; + for (var k in paths) { + result[k] = require(paths[k]); + } + return result; +}; + // Regroupe les fonctions liées aux fichiers dans la chaine LoadIstex object.files = {}; diff --git a/test/dataset/in/resources/myResource.json b/test/dataset/in/resources/myResource.json new file mode 100644 index 0000000..b42f309 --- /dev/null +++ b/test/dataset/in/resources/myResource.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} \ No newline at end of file diff --git a/test/dataset/in/test.resources.json b/test/dataset/in/test.resources.json new file mode 100644 index 0000000..21288bc --- /dev/null +++ b/test/dataset/in/test.resources.json @@ -0,0 +1,13 @@ +{ + "load": [{ + "label": "Devrait charger toutes les ressources", + "arguments": { + "paths": { + "myResource": "./dataset/in/resources/myResource.json" + } + }, + "result": { + "length": 1 + } + }] +} \ No newline at end of file diff --git a/test/run.js b/test/run.js index 0154d51..b6684af 100644 --- a/test/run.js +++ b/test/run.js @@ -11,6 +11,7 @@ var docObject = require('./dataset/in/docObject.sample.json'), dataset = { "paths": require('./dataset/in/test.paths.json'), + "resources": require('./dataset/in/test.resources.json'), "files": require('./dataset/in/test.files.json'), "directories": require('./dataset/in/test.directories.json'), "XML": require('./dataset/in/test.XML.json'), @@ -22,6 +23,9 @@ "paths": { "init": testOf_pathsInit }, + "resources": { + "load": testOf_resourcesLoad + }, "files": { "selectAll": testOf_fileRepresentation, "select": testOf_fileRepresentation, @@ -76,6 +80,16 @@ /** * Fonction de test à appliquée pour : + * - myObject.resources.laod() + */ +function testOf_resourcesLoad(fn, item, cb) { + var paths = myObject.paths.init(item.arguments.paths, __dirname); + var result = fn(paths); + return cb(Object.keys(result)); +} + +/** + * Fonction de test à appliquée pour : * - myObject.XML.load() */ function testOf_xmlLoad(fn, item, cb) {