// first resolve the module making the call and determine layout/purl
var purlClass = layouts;
var purlLayout = layouts.standard();
+ var mainPath = path.dirname(require.main.filename) + "/purls/";
+
+ console.log("main purl path is ", mainPath);
if(purl.pathname == "/") {
if(defaultMainPurl == null) {
// find and load the purl
}
- if(typeof purlClass.layout == "undefined") {
- console.log("set via undefined");
- purlLayout = layouts.standard();
- } else {
- // find and resolve the layout
- }
} else {
// handle the purls
+ var newPurlPath = mainPath+"/"+path.basename(purl.pathname.replace(/\/$/, ""))+".js";
+ console.log("attempting to require: ", newPurlPath);
+ try {
+ var newPurlClass = require(newPurlPath);
+ purlClass = newPurlClass;
+ } catch(err) {
+ console.log("tried to load '%s' for request '%s', but this has failed, returning 302 to /", newPurlPath, purl.pathname);
+ response.writeHead("302", { 'Location': '/' });
+ response.end();
+ return;
+ }
+
+ }
+
+ if(typeof purlClass.layout == "undefined") {
+ console.log("set via undefined");
+ purlLayout = layouts.standard();
+ } else {
+ // find and resolve the layout
+ purlLayout = purlClass.layout();
}
// now we should have a layout and a class
console.log("begin process layout");
if(offset >= splitup.length) {
- response.write("end of caller");
+ //response.write("end of caller");
response.end();
return;
} else if(offset == 0) {
function resolveAndCall(request, response, caller, purlClass, callback) {
//response.write("resolving: \"" + caller + "\"");
+
+ // TODO: do this properly.
if(typeof purlClass[caller] != "undefined") {
purlClass[caller](request, response, callback);
- } else if(typeof purlClass[caller] != "undefined"){
+ } else if(typeof layouts[caller] != "undefined"){
layouts[caller](request, response, callback);
} else {
- response.write("<hr><br>Undefined layout section<br><hr>");
+ response.write("<!-- ERROR:Undefined layout section -->");
callback();
}
//callback();