Skip to content

Commit

Permalink
Use buffers for much faster caches!
Browse files Browse the repository at this point in the history
  • Loading branch information
creationix committed Apr 13, 2010
1 parent 13c8b9b commit 5fda259
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions lib/wheat.js
Expand Up @@ -33,7 +33,8 @@ var ChildProcess = require('child_process'),
NodeRouter = require('node-router'),
Prettify = require('prettify'),
Graphviz = require('graphviz'),
MD5 = require('md5');
MD5 = require('md5'),
Buffer = require('buffer').Buffer;

var Data;
(function dataSources() {
Expand Down Expand Up @@ -127,35 +128,43 @@ var Data;
var Renderers;
(function pageRenderers() {

// Convert UTF8 strings to binary buffers for faster loading
function stringToBuffer(string) {
var buffer = new Buffer(Buffer.byteLength(string));
buffer.utf8Write(string);
return buffer;
}

Renderers = {
index: Git.safe(function (version, callback) {
sys.debug("Index");
Data.articles(version, function (err, articles) {
if (err) { callback(err); return; }
callback(null, "<h1>Index</h1>" + sys.inspect(articles));
callback(null, stringToBuffer("<h1>Index</h1>\n" + JSON.stringify(articles)));
// callback(null, "<h1>Index</h1>\n" + JSON.stringify(articles));
});
}),

feed: Git.safe(function (version, callback) {
Data.articles(version, function (err, articles) {
if (err) { callback(err); return; }
callback(null, "<h1>Feed</h1>" + sys.inspect(articles));
callback(null, stringToBuffer("<h1>Feed</h1>\n" + JSON.stringify(articles)));
});
}),

article: Git.safe(function (version, name, callback) {
Data.article(version, name, function (err, article) {
if (err) { callback(err); return; }
callback(null, "<h1>Article " + name + "</h1>" + sys.inspect(article));
callback(null, stringToBuffer("<h1>Article " + name + "</h1>\n" + version));
});
}),

staticFile: Git.safe(function (version, path, callback) {
callback(null, "<h1>Static File " + path + "</h1>");
callback(null, stringToBuffer("<h1>Static File " + path + "</h1>\n" + version));
}),

dotFile: Git.safe(function (version, path, callback) {
callback(null, "<h1>Dot File " + path + "</h1>");
callback(null, stringToBuffer("<h1>Dot File " + path + "</h1>\n" + version));
})
}

Expand Down Expand Up @@ -192,10 +201,10 @@ var Wheat = module.exports = function Wheat(repo, port, host) {
addRoute(/^\/()feed.xml$/, Renderers.feed);
addRoute(/^\/()([a-z0-9_-]+)$/, Renderers.article);
addRoute(/^\/([a-f0-9]{40})\/([a-z0-9_-]+)$/, Renderers.article);
addRoute(/^\/()([a-z0-9_-]+\/.+\.dot)$/, Renderers.dotFile);
addRoute(/^\/()([a-z0-9_-]+\/.+\.[a-z]{2,4})$/, Renderers.staticFile);
addRoute(/^\/([a-f0-9]{40})\/([a-z0-9_-]+\/.+\.dot)$/, Renderers.dotFile);
addRoute(/^\/([a-f0-9]{40})\/([a-z0-9_-]+\/.+\.[a-z]{2,4})$/, Renderers.staticFile);
addRoute(/^\/()([a-z0-9_-]+\.dot)$/, Renderers.dotFile);
addRoute(/^\/()([a-z0-9_-]+\.[a-z]{2,4})$/, Renderers.staticFile);
addRoute(/^\/([a-f0-9]{40})\/([a-z0-9_-]+\.dot)$/, Renderers.dotFile);
addRoute(/^\/([a-f0-9]{40})\/([a-z0-9_-]+\.[a-z]{2,4})$/, Renderers.staticFile);

server.get("/", function (request, response) {
Renderers.index("fs", function (err, html) {
Expand Down

0 comments on commit 5fda259

Please sign in to comment.