From ef41abec975ecfed7596b2c01a1e3801e44e3233 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Sat, 26 Sep 2009 01:31:52 -0700 Subject: [PATCH] Added loader.js Reviewed by me. --- .../objective-j/lib-js/objective-j/loader.js | 23 +++++++++++++++++++ Objective-J/CommonJS/objective-j/package.json | 5 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js diff --git a/Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js b/Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js new file mode 100644 index 000000000..47265122e --- /dev/null +++ b/Objective-J/CommonJS/objective-j/lib-js/objective-j/loader.js @@ -0,0 +1,23 @@ +var objj = null; + +function ObjectiveJLoader() { + var loader = {}; + var factories = {}; + + loader.reload = function(topId, path) { + if (!objj) objj = require("objj/objj"); + + //print("loading objective-j: " + topId + " (" + path + ")"); + factories[topId] = objj.make_narwhal_factory(system.fs.read(path), path); + } + + loader.load = function(topId, path) { + if (!factories.hasOwnProperty(topId)) + loader.reload(topId, path); + return factories[topId]; + } + + return loader; +}; + +require.loader.loaders.unshift([".j", ObjectiveJLoader()]); diff --git a/Objective-J/CommonJS/objective-j/package.json b/Objective-J/CommonJS/objective-j/package.json index b7223fe8d..87b64c4c8 100644 --- a/Objective-J/CommonJS/objective-j/package.json +++ b/Objective-J/CommonJS/objective-j/package.json @@ -2,9 +2,10 @@ "name": "objective-j", "dependencies": ["narwhal", "jack", "browserjs"], "lib": "lib-js", - "author": "280 North, Inc. (http://280north.com/)", - "description": "Objective-J module", + "preload": ["objective-j/loader"], + "description": "Objective-J and Cappuccino module", "keywords": ["objective-j", "objj", "objective j", "cappuccino"], + "author": "280 North, Inc. (http://280north.com/)", "contributors": [ "Francisco Tolmasky (http://tolmasky.com/)", "Ross Boucher (http://rossboucher.com/)",